jquery - 使用 CSS 和 jQuery 的横向滚动菜单

标签 jquery html css menu scroll

我想创建一个横向滚动菜单,如 here .我有什么:

HTML:

<div class="scroll">
<p class="scroll_item" id="1">&nbsp;</p>
<p class="scroll_item" id="2">&nbsp;</p>
<p class="scroll_item" id="3">&nbsp;</p>
<p class="scroll_item" id="4">&nbsp;</p>
</div>

<div id="first"> 1 </div>
<div id="second"> 2 </div>
<div id="third"> 3 </div>
<div id="fourth"> 4 </div>

CSS:

    .scroll{
        position:fixed;
        height:48%;
        right:4px;
        top:48%
    }


    .scroll_item{
        margin-bottom:10px;
        width:10px;
        height:10px;
        border: 3px solid #FFF;
    }
    .scroll_item_active{
        width:10px;
        height:10px;
        border:3px solid #FFF;
        background-color: #FFF;
        margin-bottom: 10px;
    }

这应该如何工作: 当您点击 <p>使用 ID 3,它将滚动到 ID 为“third”的 div,并且该框将具有 scroll_item_active类(class)。另一方面,如果你使用浏览器的滚动条,框的类仍然会改变。

我需要你的帮助来编写 jQuery 脚本。 我做了什么:

$('#1').onclick(function(.scrollTo('#first');)
$('#2').onclick(function(.scrollTo('#second');)
$('#3').onclick(function(.scrollTo('#third');)
$('#4').onclick(function(.scrollTo('#fourth');)

最佳答案

此函数导航到具有垂直偏移和平滑度的时间元素的部分

  function scrollTo(selector, time, verticalOffset) {
    time = typeof(time) != 'undefined' ? time : 1000;
    verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0;
    element = $(selector);
    offset = element.offset();
    offsetTop = offset.top + verticalOffset;
    $('html, body').animate({
        scrollTop: offsetTop
    }, time);
}

将其用作点击功能

$('#1').click(function () {
    scrollToElement('#content');
});

要切换类,请使用 .addClass ( here )

这是一个示例,我相信您可以根据自己的需要进行更改:

$( "p" ).addClass( "myClass yourClass" );
$( "p" ).removeClass( "myClass noClass" )

关于jquery - 使用 CSS 和 jQuery 的横向滚动菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057604/

相关文章:

jquery - 在触摸设备上禁用 jQuery 滚动条插件?

javascript - .click jQuery 未按预期工作

jquery - jQgrid 在表单 View 中显示隐藏列

php - 使用 jquery ajax 通过 GET 更新动态创建的图像

javascript - 如何屏蔽一个 div 并使其所有子元素不可编辑

javascript - 缓存过期 header CSS 和 JS 不工作

javascript - 用 jquery 加载填充 div 中的值

javascript - 无法将 EventListener 添加到 javascript 中的对象

html - 如何使容器 <p> 标签的宽度与它包含的 <span> 的宽度相匹配?

html - FlexBox:按左 Angular 对齐图标并在它们之后保持相同的间距