【问题标题】:Position:fixed and horizontal scrolling位置:固定和水平滚动
【发布时间】:2014-01-19 22:39:40
【问题描述】:

我正在尝试实现折纸鸟图像的效果,该图像似乎从徽标向下延伸,当查看器滚动时,该徽标沿页面向下延伸。我已经设法使用 z 轴和固定定位使这个工作相当好,但是一旦页面放大或调整大小,效果就会被破坏,导致水平滚动开始。我非常业余,花了几个小时阅读非常相似的问题和答案,但没有成功。

这是我想要创建 http://www.debbiekate.com/indextest.html 的想法(我已经发布了特定的网站,而不是 JFiddle,以更清楚地说明我想要实现的目标)。

我最接近的方法是将“鸟”元素的位置更改为绝对位置并在 JavaScript 中滚动它。 (您可以通过删除 js in 的注释标签并将 #bird 的位置样式更改为绝对样式来看到这一点)。这可以按我的意愿工作 - 垂直滚动时小鸟保持固定位置,但在需要时向左滚动,使其与标题徽标保持一致,并且不会遮挡页面的其余部分。问题是滚动性能非常不稳定,因为据我了解,JS 需要更长的时间才能赶上滚动事件。我希望效果像使用 position:fixed 时一样平滑。

我已经阅读了很多类似的主题,我认为最接近的主题在这里:

Fixing a menu in one direction in jquery

这听起来像是一个相同的问题和完美的解决方案,但将 Jsarma 的代码添加到我的网站似乎没有任何效果,我无法弄清楚我做错了什么。我没有接受过网络开发方面的正式培训,也不太会使用 JavaScript,非常感谢您对新手的任何帮助和耐心。

【问题讨论】:

  • 你能提供你的代码吗?
  • @Fransico Corrales,效果依赖于图像,据我所知,我不能在此处或 JSFiddle 的示例中包含这些图像?包含指向页面源的链接,如果您可以查看,我们将不胜感激。

标签: jquery css scroll position fixed


【解决方案1】:

您可以将鸟的位置更改为绝对位置而不是固定位置。

然后构建一个 jquery 函数来监听窗口滚动并改变小鸟在滚动上的顶部位置。

$(document).ready(function(){
    $(window).scroll(function(){
        //get the current scroll position
        var scrollPosition=$(window).scrollTop();
        //change the top of the bird
        $('#bird').css('top',(-1*scrollPosition)+"px");
    })
});

【讨论】:

  • 您好 rgbflawed,感谢您抽出宝贵时间查看。不幸的是,您的答案似乎与我在之前的 js 解决方案中提到的效果相同——它确实有效,但性能确实很滞后,尤其是在移动设备上。我已经用你的代码更新了页面,所以你可以明白我的意思。我认为我需要的是保持位置不变,但要实现一个脚本,它将水平的事情作为一个单独的问题来处理。似乎 Jsarma 在我提到的链接中描述了这个确切的想法,但我无法让它发挥作用。
  • @user3213168 首先,事实证明你确实需要做 (-1*scrollPosition)。我已经更新了我的答案。其次,我在我的 chrome 桌面浏览器和我的 chrome 移动浏览器上都试过了,似乎都运行得非常顺利。
  • 我准确地插入了您的代码,但是当我滚动时,这只鸟似乎实际上向相反的方向(向上)移动?我尝试了 (+1*scrollPosition) ,它确实解决了这个问题,这只鸟现在再次跟随滚动方向,但它肯定仍然滞后。我正在 iPad(Chrome 和 Safari)上进行测试,它非常明显 - 当鸟实际上挂在底部时,向上滚动到顶部时情况更糟,破坏了延伸超过视口顶部的线的效果。对不起,如果我遗漏了什么!
  • @user3213168 有没有可能通过关闭 css 中的水平滚动来解决这个问题(overflow-x: hidden;)?然后也许一些 jquery 来检测窗口宽度,如果它是一个非常窄的窗口,它将知道调整内容以适应窄窗口。
  • 这听起来像是一个很好的解决方案,但是当视口被放大时,鸟儿是否仍会“脱离”徽标(再次特别考虑移动/平板设备)?
猜你喜欢
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 2015-02-15
  • 2018-04-08
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 2011-07-11
相关资源
最近更新 更多