【问题标题】:jQuery Next/Prev Smooth Scrolling menujQuery Next/Prev 平滑滚动菜单
【发布时间】:2023-03-20 14:25:02
【问题描述】:

我找到了 jQuery Next/Prev Vertical Smooth Scrolling here 的完美示例,它对我有用(我在 WordPress 上有网站)。 Jsfiddle 但我对 JS 不太熟悉,需要菜单项方面的帮助。在这段代码中,我只有两个项目:下一个和上一个。如何在此 JQ 代码中向我的菜单项添加其他额外项目。我可以在 enloop.com/features 等一个地方修复我的菜单吗 Working example

<div id="home-block">
    <div class="current">Content Goes here</div>
    <div>A box of content</div>
    <div>Content</div>
    <div>More content...</div>
</div>

<div id="nav-right">
    <a href="#" id="prev">Previous</a>
    <a href="#" id="next">Next</a>
</div>

#home-block div{
width: 300px;
height: 400px;
border: 1px solid #000;
box-shadow: 1px 1px 3px #888;
margin: 10px 10px 10px 15px;
}

.post-contain{
position: relative;
margin: 0 auto;
width: 450px;
border: 1px solid #000;
}

#nav-right{
    position: fixed;
    right: 15px;
    top: 35%;
}

.current {
    color: red;
}

jQuery(document).ready(function($) {
    var scrollTo = function(element) {
        $('html, body').animate({
            scrollTop: element.offset().top
        }, 250);
    }
    $('#next').click(function(event) {
        event.preventDefault();
        var $current = $('#home-block > .current');
        if ($current.index() != $('#home-block > div').length - 1) {
            $current.removeClass('current').next().addClass('current');
            scrollTo($current.next());
        }
    });
    $('#prev').click(function(event) {
        event.preventDefault();
        var $current = $('#home-block > .current');
        if (!$current.index() == 0) {
           $current.removeClass('current').prev().addClass('current');
            scrollTo($current.prev());
        }
    });
})();

您的帮助将不胜感激!

【问题讨论】:

    标签: jquery wordpress scroll


    【解决方案1】:

    您的#next#prev 链接调用scrollTo(element)。您仍然可以使用该功能,您只需根据新菜单的外观更改识别要滚动到的元素的方式。

    您会注意到我将current 类的setter 移动到scrollTo 函数。如果您愿意,当然可以将其保留在菜单侦听器中...

    【讨论】:

    • 大卫,非常感谢!我有一个问题。在您的示例中,我看到平滑滚动。但是在我的页面上我无法做到这一点。 jsfiddle.net/Jjssd你能告诉我我犯了什么错误吗?在我的示例块跳转中,我将 JQ 代码与 WordPress 中的 html 代码放在同一页面中。我应该做哪些改变来实现像你的 jsfiddle 中的平滑滚动效果。 [工作示例][1] [1]:bpe24.ru/?page_id=647
    • 文档中没有包含 jQuery(左侧菜单)。 same code, fixed。由于您没有 jQuery,浏览器只需点击链接到 #plan(例如),如果链接到 ID,则滚动到该项目。因此,该解决方案甚至适用于未启用 JavaScript 的浏览器(尽管没有平滑滚动)。
    • 我明白了。我不知道 JQ,你能给我建议和代码示例,我如何将 JQ 放入我的代码中以使滚动移动平滑。
    • 你fiddle中的代码可以工作,你只需要确保文档中加载了jQuery库。
    • 我很抱歉这个问题,但我怎么能检查这个。 Previuos 代码工作正常。我将 JQ 放在页面上,而不是在标题或函数上。我怎么能检查这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多