首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery scrolltop与prev next不能正常滚动

Jquery scrolltop与prev next不能正常滚动
EN

Stack Overflow用户
提问于 2018-10-24 06:15:15
回答 1查看 42关注 0票数 0

我正在尝试使用“上一步”和“下一步”按钮来设置jquery scrolltop,这样用户就可以在可滚动的div中滚动。

我偶然发现了这篇文章LINK,并试图为我的应用程序设置,但它似乎无法滚动到下一个/上一个div的顶部。

有没有人能指出问题所在,或许有解决方案?任何意见都将不胜感激,谢谢。

CSS:

代码语言:javascript
复制
.image_holder {
display: block;
height: 100%;
}

.section{
position: relative;
height: 80vh;
background: rgba(255, 226, 57, 0.0);
overflow-y: scroll;
margin: 0 auto;
border: #000000 solid thin;
}

HTML:

代码语言:javascript
复制
<div class="page_scroller">
<ul >
<li class="list-unstyled col-lg-6 bg-primary"><a href="#" id="prev" class="arrow-up prev">Up</a></li>
<li class="list-unstyled col-lg-6 bg-primary"><a href="#" id="next" class="arrow-down next">Down</a></li>
</ul>
</div>

<div class="section" >

        <div id="highlight-1" class="current image_holder">A</div>
        <div id="highlight-2" class="image_holder ">B</div>
        <div id="highlight-3" class="image_holder ">C</div>
        <div id="highlight-4" class="image_holder ">D</div> 

</div>

Jquery:

代码语言:javascript
复制
var scrollTo = function(element) {
    console.log(element);
    $('.section').animate({
        scrollTop: element.offset().top
    }, 500);
}

$('.next').click(function(event) {
    event.preventDefault();
    var $current = $('.section > .image_holder.current');
    var $next = $current.next().first();
    if ($next.length!=0) {
        $current.removeClass('current')
        $next.addClass('current');
        scrollTo($next);
    }
});

$('.prev').click(function(event) {
    event.preventDefault();
    var $current = $('.section > .image_holder.current');
    var $prev = $current.prev().first();
    if ($prev.length!=0) {
        $current.removeClass('current')
        $prev.addClass('current');
        scrollTo($prev);
    }
});

My JSFiddle

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 07:38:17

我认为它实际上像预期的那样工作:它滚动到部分,但它滚动基于视区的顶端边缘,而不是基于溢出的div。

尝试替换

代码语言:javascript
复制
$('.section').animate({
    scrollTop: element.offset().top
}, 500);

使用

代码语言:javascript
复制
$('.section').animate({
    scrollTop: element.position().top
}, 500);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52958555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档