2015-03-16 2 views
0

здесь код и linkJQuery прокрутки, чтобы функционировать, кроме специальной ссылки

$('a[href^="#"]').on("click", function() { 
    var target = $($(this).attr("href")); 
    if(target.length) { 
    $("html, body").animate({scrollTop: target.offset().top}, 500); 
    } 
}); 

простой прокрутки, чтобы функционировать, когда-то, когда нажмите #top не будет прокручиваться вверх полностью, возможно, другие функции сделали задержку в верхней части, я стараюсь $("html, body").animate({ scrollTop: 0 }, "500");, которые работают идеально, и у меня есть два вопроса

  1. если мне нужно #top Dont эффект на этой функции, как проверить HREF = «#» не #top?

  2. Мне нужно нажать #top, а затем сделать это $("html, body").animate({ scrollTop: 0 }, "500");, а не scrollTop: target.offset().top функции, любой простой способ сделать это?

большое спасибо

+0

Вы хотите, чтобы вы прокручивали верхнюю часть тела, когда вы нажимаете «сверху» вместо вершины '# top' div? – Brewal

+0

Да, потому что когда-то другой эффект функции сделал некоторое отставание, прокрутите верхнюю часть на #top не полностью, но используйте $ ("html, body"). Animate ({scrollTop: 0}, "500"); работа безупречный, спасибо :) – aboutjquery

ответ

0

Проверить, если HREF не равно '#top'. Вы можете сделать что-то вроде этого

$('a[href^="#"]').on("click", function() { 
    var target = $($(this).attr("href")); 
    if(target.length && $(this).attr("href") != '#top') { 
    $("html, body").animate({scrollTop: target.offset().top}, 500); 
    }else{ 
    $("html, body").animate({scrollTop: 0}, 500); 
    } 
}); 

Вот demo

+1

it работа, работа безупречный !!! спасибо вам много, спасибо, спасибо – aboutjquery

0

Вы можете использовать jquery.scrollTo плагин, вот как:

<!-- Include jQuery from somewhere, must use version 1.8 or above --> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<!-- Include latest jquery.scrollTo, currently 2.1.0, can download from https://github.com/flesler/jquery.scrollTo/releases --> 
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js"></script> 
<!-- Initialize the scroll on click, this can go in a js file instead of inline of course --> 
<script type="text/javascript"> 
    // You can avoid the document.ready if you put the script at the bottom of the page 
    $(document).ready(function() { 
    $('a[href^="#"]').click(function(e) { 
     // Prevent the jump and the #hash from appearing on the address bar 
     e.preventDefault(); 
     // Scroll the window, stop any previous animation, stop on user manual scroll 
     // Check https://github.com/flesler/jquery.scrollTo for more customizability 
     var dest = this.hash === '#top' ? 0 : this.hash; 
     $(window).stop(true).scrollTo(dest, {duration:1000, interrupt:true}); 
    }); 
    }); 
</script> 

Это должно помочь вам осуществить это.

Смежные вопросы