【问题标题】:Parallax scroll on background image while scrolling page滚动页面时背景图像上的视差滚动
【发布时间】:2017-01-30 20:22:28
【问题描述】:

我陷入了视差问题,似乎找不到我想要的具体内容。

我的页面顶部有一张背景图片。我目前有background-position: fixed 所以它有视差效果但是我需要这个图像在页面滚动时滚动? ...现在我被困住了。

我相信这可以通过 JavaScript 和 background-position: scroll 来完成,但我只是不知道从哪里开始。

在我的基本小提琴中,您可以看到视差效果,但我需要图像随着页面滚动而滚动。

感谢您的帮助。

.image {
  height: 100px;
  width: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  background-image: url('http://www.navipedia.net/images/a/a9/Example.jpg');
}
<section>
  <p>"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo."</p>
</section>

<div class="image"></div>

<section>
  <p>"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta."</p>

  <br><br>
  
<p>"Sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est."</p>
</section>

【问题讨论】:

标签: javascript jquery html css parallax


【解决方案1】:

此功能将为您完成工作。 (根据您的选择更改速度变量的值)

(function(){

  var parallax = document.querySelectorAll(".image"),
      speed = 0.5;

  window.onscroll = function(){
    [].slice.call(parallax).forEach(function(el,i){

      var windowYOffset = window.pageYOffset,
          elBackgrounPos = "50% " + (windowYOffset * speed) + "px";

      el.style.backgroundPosition = elBackgrounPos;

    });
  };

})();

查看实际操作:https://jsfiddle.net/ksugkmoh/

【讨论】:

  • 太棒了!谢谢你。
猜你喜欢
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 2021-10-21
  • 1970-01-01
相关资源
最近更新 更多