jQuery 平滑水平滚动

标签 jquery horizontal-scrolling smooth-scrolling jquery-easing

我创建了一个长水平页面并使用 anchor 导航到页面内的部分。我添加了jQuery平滑滚动功能但没有生效?

这是导航:

<ul class="nav">
<li><a href="#starters">Starters</a></li>
<li><a href="#main">Main Dishes</a></li>
<li><a href="#special">Special Dishes</a></li>
<li><a href="#side">Side Dishes</a></li>
</ul>

在内容中我添加了相应的 anchor :

<a name="starters"></a>

这是 jQuery 函数:

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

    $('html, body').stop().animate({
        scrollLeft: $($anchor.attr('href')).offset().left
    }, 1500, "easeInOutExpo");
    event.preventDefault();
});
});

anchor 工作正常,单击导航会将您带到所需的部分,但它跳跃而不是滚动。

有什么想法吗?

最佳答案

很简单,将类添加到需要滚动的 div 中,例如下面的示例:

<ul class="nav">
<li class="a"><a href="#starters">Starters</a></li>
<li class="b"><a href="#main">Main Dishes</a></li>
<li class="c"><a href="#special">Special Dishes</a></li>
<li class="d"><a href="#side">Side Dishes</a></li>
</ul>

现在,你的js将是这样的:

$(function() {
$('#clickable element').bind('click',function(event){
    $('#targetelement or div').stop().animate({
        scrollLeft: $('.a').offset().left
    }, 500);
    event.preventDefault();
});
});

同样,你可以为 b、c、d 类构建 js。

关于jQuery 平滑水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364508/

相关文章:

Jquery SlideToggle 在停止调用后未完全打开

javascript - 在 Facebook/Twitter 上分享并确认已分享

css - Firefox 中的水平滚动条由 #fb-root 引起

jquery - 平滑的 Div 滚动暂停/播放

javascript - 将字符串附加到元素属性的末尾

javascript - 以文件形式提交 HTML 表单数据/合并表单数据 + 文件并在 Javascript 中作为单个文件发送

flutter - 具有动态宽度的Flutter水平gridview

html - CSS 额外的水平空白

javascript - 如何即时滚动到位置?

javascript - 使用 javascript 滚动 HTML 页面?