0

我正在使用以下 jquery 使我的链接滚动到下一个 div。但是,我遇到了一个问题。从页面顶部开始,脚本可以正常工作。一旦我单击来自另一个 div 的链接(页面下方的另一个链接),脚本只会向上或向下滚动,但不会滚动到下一个指定的 div。如何使脚本从链接所在的当前位置完全滚动?

$(function() {
$('#nav a').bind('click',function(event){
    var $anchor = $(this);

    $('html, body, #container, .main').stop().animate({
        scrollTop: $($anchor.attr('href')).offset().top
    }, 1500,'easeInOutExpo');
    event.preventDefault();
 });
});
4

3 回答 3

1

你在这里有一个错误:

scrollTop: $($anchor.attr('href')).offset().top
     //------^^^^^^^---------------------------------this itself a selector

更改为此并尝试:

scrollTop: $anchor.attr('href').offset().top

或者这个也是:

 $('#nav a').bind('click',function(event){
    var $anchor = $(this).attr('href');
    $('html, body, #container, .main').stop().animate({
        scrollTop: $($anchor).offset().top
    }, 1500,'easeInOutExpo');
    event.preventDefault();
 });

在小提琴中结帐

于 2013-04-02T18:14:54.433 回答
0

你没有打电话给正确的地方......

这应该可以解决问题...首先设置锚点。

$(function() {
$('#nav a').bind('click',function(event){
    var $anchor = $(this).attr('href');

    $('html, body, #container, .main').stop().animate({
        scrollTop: $($anchor).offset().top
    }, 1500,'easeInOutExpo');
    event.preventDefault();
 });
});
于 2013-04-02T18:12:14.240 回答
0

好的,所以我给你做了一个 JSFiddle,我重写了下面代码的 js 代码,但是你可以在这里查看完整的东西:http: //jsfiddle.net/re7Xc/

$(function() {
     $('a.scrolltonext').click(function(event){
     event.preventDefault();
     var parentblock = $(this).parent();
     var nextblock = parentblock.next();
     //nextblock.css('background-color','#00f');

         if(nextblock.size()>0) {
              $('html, body').stop().animate({
                   'scrollTop': nextblock.offset().top
              }, 800);
         }
     }); 
});

不过,这个脚本中的问题是我将链接放在 div 本身中,所以它不在某个地方的 #nav 中。因此,如果您将链接放在#nav 中,则必须重写该部分!

我也在那里放了一个 if 语句,因为我认为在滚动之前先检查是否有下一个 div 会更好。

希望它有一些意义,让我知道它是否适合你!干杯

于 2013-04-03T10:07:16.060 回答