jQuery 和CSS - 如何阻止相对元素左右浮动(当您滚动时)?

发布于 2024-10-31 20:27:37 字数 1058 浏览 1 评论 0原文

我很抱歉发布此内容 第二次,但我需要一个 jQuery 解决方案。 原始解决方案在 Chrome 中不起作用,但在 jsFiddle 网站上起作用(即使在 Chrome 中打开) )。

再次详细说明如下: 我有一个具有固定位置的父 div,在该 div 内部我有一个具有相对位置的主 div。当我上下滚动栏时,它会跟随我(这是我想要的),但当我从左向右(或从右向左)滚动栏时,我不希望它跟随我。

HTML:

<div id="wrapper">
   <div id="icons">
      icons
   </div>
</div

CSS:

#wrapper {
    position: fixed;
    z-index: 1000;
    top: 155px;
}
#icons  {
    width: 42px;
    position: relative;
    left: -67px;
}

jQuery:

    var initSL = $(window).scrollLeft();
var initOL = $('#wrapper').offset().left;

$(window).scroll(function () { 
      $('#wrapper').css('left', initOL - ($(window).scrollLeft() - initSL));
})(jQuery);

再次感谢您!!

I'm sorry for posting this for a second time but I need a jQuery solution. The original solution doesn't work in Chrome but works on the jsFiddle site (even when opened in Chrome).

Here are the details again:
I have a parent div with a fixed position and inside of that div I have the main div with a relative position. While I scroll the bar up and down it follows me (this I want) but I don't want it to follow me when I scroll the bar left to right (or right to left).

HTML:

<div id="wrapper">
   <div id="icons">
      icons
   </div>
</div

CSS:

#wrapper {
    position: fixed;
    z-index: 1000;
    top: 155px;
}
#icons  {
    width: 42px;
    position: relative;
    left: -67px;
}

jQuery:

    var initSL = $(window).scrollLeft();
var initOL = $('#wrapper').offset().left;

$(window).scroll(function () { 
      $('#wrapper').css('left', initOL - ($(window).scrollLeft() - initSL));
})(jQuery);

Thank you once again!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流绪微梦 2024-11-07 20:27:37

试试这个:

$(document).scroll(function(e){
    $('#wrapper').css('left', initOL - ($(document).scrollLeft() - initSL + ' px'));
});

jQuery .css 函数将 css 值设置为字符串。

从 $(document).scrollLeft() 检索的滚动值以像素为单位。

try this:

$(document).scroll(function(e){
    $('#wrapper').css('left', initOL - ($(document).scrollLeft() - initSL + ' px'));
});

The jQuery .css function sets the css values as strings.

The scroll values you retreive from $(document).scrollLeft() are in pixels.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文