首页 >web前端 >css教程 >如何使用 jQuery 使固定位置 Div 与内容一起水平滚动?

如何使用 jQuery 使固定位置 Div 与内容一起水平滚动?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 09:30:30519浏览

How to Make a Fixed Position Div Scroll Horizontally with Content Using jQuery?

使用 jQuery 的固定位置 Div 的水平滚动

在本文中,我们将解决固定位置内水平内容滚动的问题使用 jQuery 定位 div。

用户有一个类为 scroll_fixed 的 div,并希望在它到达页面顶部时修复它。以下CSS样式div:

.scroll_fixed {
    position:absolute
    top:210px
}
.scroll_fixed.fixed {
    position:fixed;
    top:0;
}

jQuery代码用于在div到达顶部时添加固定类:

$(window).scroll(function (event) {
    // Check if the scroll position is greater than the top offset of the div
    if ($(this).scrollTop() >= top) {
        $('.scroll_fixed').addClass('fixed');
    } else {
        $('.scroll_fixed').removeClass('fixed');
    }
});

这对于垂直滚动效果很好,但会导致当浏览器窗口较小时,与 div 右侧的内容发生冲突。用户希望div随内容水平滚动。

/解决方案:

要使div水平滚动,我们需要保持其position:fixed并进行操作左侧属性而不是顶部属性。以下更新的 jQuery 代码可实现此目的:

var leftInit = $(".scroll_fixed").offset().left;

$(window).scroll(function (event) {
    // Get the current scroll positions
    var x = 0 - $(this).scrollLeft();
    var y = $(this).scrollTop();

    // Fix the div when it reaches the top
    if (y >= top) {
        $('.scroll_fixed').addClass('fixed');
    } else {
        $('.scroll_fixed').removeClass('fixed');
    }

    // Adjust the left offset of the div based on the scroll position
    $(".scroll_fixed").offset({
        left: x + leftInit
    });
});

通过使用 leftInit,我们可以考虑 div 上的任何左边距。尝试此解决方案:http://jsfiddle.net/F7Bme/

以上是如何使用 jQuery 使固定位置 Div 与内容一起水平滚动?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn