将marginLeft更改为滚动父div中的子div

时间:2016-07-19 14:54:57

标签: javascript jquery html css

我正在尝试在滚动div中放置一个position: absolute div,并在向左或向右滚动时使其保持在左侧。这是因为我希望div像一个单元一样移动(当向左,向右,向上,向下滚动时)。它在屏幕上工作得很好,低于2K,但在高清屏幕上(即2k,3k,4k ......),孩子们跳来跳去,看起来很糟糕。

有更好的方法吗?我应该对CSS for HD屏幕做出什么改变?

#parent {    
    overflow: auto;
    width: 100%;
    height: 100%;
    position: relative;
}
#child {    
    overflow: hidden;
    width: 20%;
    height: 100%;
    z-index:1;
    position: absolute;
}
<div id="parent">
    <div id="child"></div>
</div>
$("#parent").on('scroll', function (event) {
     $("#child")[0].style.marginLeft = this.scrollLeft+"px";
});

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery的css函数来设置值。并使用parent元素作为jQuery对象来使用scrollLeft()函数:

$("#parent").on("scroll", function() {
    $("#child").css("margin-left", $(this).scrollLeft() + "px");
});

但我根本不会使用jQuery。为什么不在css中使用fixed位置呢? Like in this example。它不应该闪烁在任何屏幕上。