2017-09-17 112 views
0

我想问一下关于防止滚动元素。 我有一个元素,当窗口滚动和所有网站都有自动滚动,因为这是默认的。窗口滚动时,所有元素都可以滚动,对吗? 现在,我想阻止在滚动窗口时自动滚动元素,但我不想将该元素位置设置为固定。 我该怎么做?任何想法 ?jQuery - 防止滚动元素当窗口滚动没有固定位置

例如:

$(window).scroll(function(){ 
     if($(this).scrollTop() == 100){ 
     $(element) // How to prevent scroll this element without position fixed ? 
     } 
    }); 
+0

你能分享你的html并显示元素是什么。 – lpradhap

回答

0

有一个称为位置的新位置CSS3属性:粘 - 施加时(添加偏移量为一个数据属性),其。从开发

链接笔记从CSS技巧 https://css-tricks.com/position-sticky-2/

https://developer.mozilla.org/en-US/docs/Web/CSS/position

链接所以基本上,当你滚过偏移 - 元素是“粘性”。这实现了与应用位置相同的效果:固定样式规则,但不重写DOM。

它遭受与位置相同的问题:固定,但是因为当元素被“卡住”时需要将填充应用到主体,因为它将其从页面流中移出并且所有元素在页面中位置更高因为元素不再以高度计算。

但结果是,你可以在没有javascript/jquery的情况下应用粘性类,而不需要在页面上滚动lisener的代价。

+0

我的意思是防止没有固定位置或其他位置的滚动元素没有设置顶部,左侧,右侧或底部。粘滞的位置必须像固定一样将元素设置在顶部。因为我的元素处于中心位置,并且只是希望防止在滚动窗口时自动滚动此元素。任何其他想法? – user8455694

+0

您需要使用position属性来将元素从其父项中分离出来,如果您没有使用position属性,那么如果父项开始滚动,则子项也会执行。 – lpradhap