如何获得固定位置div与内容水平滚动?使用jQuery

前端之家收集整理的这篇文章主要介绍了如何获得固定位置div与内容水平滚动?使用jQuery前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个div.scroll_fixed与下面的CSS
.scroll_fixed {
    position:absolute
    top:210px

}
.scroll_fixed.fixed {
    position:fixed;
    top:0;
}

当div到达页面的顶部时,我使用以下jQuery代码设置.fixed类。

var top = $('.scroll_fixed').offset().top - parseFloat($('.scroll_fixed').css('margin-top').replace(/auto/,0));

$(window).scroll(function (event) {
    // what the y position of the scroll is
    var y = $(this).scrollTop();

    // whether that's below the form
    if (y >= top) {
        // if so,ad the fixed class
        $('.scroll_fixed').addClass('fixed');
    } else {
        // otherwise remove it
        $('.scroll_fixed').removeClass('fixed');
    }
});

这对于垂直滚动固定非常有用。但是使用小的浏览器窗口,水平滚动会导致与此固定div右侧的内容发生冲突。

我想要div与内容水平滚动。

任何人都可以指向正确的方向。仍然让我的脚潮湿与JS / JQuery。

我基本上希望它像在这个example的第二个框工作。

解决方法

演示保持元素的位置:固定和操作元素的左属性
var leftInit = $(".scroll_fixed").offset().left;
var top = $('.scroll_fixed').offset().top - parseFloat($('.scroll_fixed').css('margin-top').replace(/auto/,0));


$(window).scroll(function(event) {
    var x = 0 - $(this).scrollLeft();
    var y = $(this).scrollTop();

    // whether that's below the form
    if (y >= top) {
        // if so,ad the fixed class
        $('.scroll_fixed').addClass('fixed');
    } else {
        // otherwise remove it
        $('.scroll_fixed').removeClass('fixed');
    }

    $(".scroll_fixed").offset({
        left: x + leftInit
    });

});

使用leftInit考虑可能的左边距。试试这里:http://jsfiddle.net/F7Bme/

猜你在找的CSS相关文章