【问题标题】:parallax-js : make the element moving by itselfparallax-js : 让元素自行移动
【发布时间】:2020-06-06 19:48:34
【问题描述】:

按照教程:https://github.com/wagerfield/parallax/issues/277

我尝试制作一些视差,当我的鼠标移动时它会起作用,但我想让它像云一样自行移动:https://codepen.io/CSS_Masters/pen/dCEoK

这是我的 html 文件:

<div id="scene" data-relative-input="true">
    <div data-depth="0.2" class="left-position" ><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic ") %></div>
    <div data-depth="0.4" class="left-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
    <div data-depth="0.7" class="left-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "big-pic") %></div>
    <div data-depth="0.8" class="left-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic") %></div>
    <div data-depth="0.1" class="left-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
    <div data-depth="0.6" class="middle-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "big-pic") %></div>
    <div data-depth="0.2" class="middle-position-1"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic") %></div>
    <div data-depth="0.4" class="middle-position-6"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
    <div data-depth="0.7" class="middle-position-5"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "big-pic") %></div>
    <div data-depth="0.8" class="middle-position-3"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic") %></div>
    <div data-depth="0.1" class="middle-position-4"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
    <div data-depth="0.6" class="bottom-position"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "big-pic") %></div>
    <div data-depth="0.2" class="bottom-position-1"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic") %></div>
    <div data-depth="0.4" class="bottom-position-2"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
    <div data-depth="0.7" class="bottom-position-3"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "big-pic") %></div>
    <div data-depth="0.8" class="bottom-position-4"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "small-pic") %></div>
    <div data-depth="0.1" class="bottom-position-5"><%= image_tag("https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png", class: "middle-pic") %></div>
</div>

我的打字稿文件:

import Parallax from 'parallax-js'

export default () => {
    var scene = document.getElementById('scene');
    var parallaxInstance = new Parallax(scene, {
        relativeInput: true, 
        calibrationThreshold: 100,
        calibrationDelay: 500,
        supportDelay: 500,
        calibrateX: false,
        calibrateY: true,
        invertX: true,
        invertY: true,
        limitX: false,
        limitY: false,
        scalarX: 10.0,
        scalarY: 10.0,
        frictionX: 0.4,
        frictionY: 0.4
    });
}

如何让它像示例中的云一样自行移动?我尝试设置属性摩擦X 和摩擦Y,但它不起作用。

【问题讨论】:

    标签: typescript parallax parallax.js


    【解决方案1】:

    有点难以理解您遇到的确切问题是什么。所以我会回答这个问题:

    “我怎样才能让它像示例中的云一样自行移动?”

    您看到的“运动”与视差无关,完全与CSS keyframes rule有关。

    This documentation 有一些关于如何使用关键帧配置动画的优秀示例和演示。由于您没有向我们提出具体问题,因此很难提供任何其他建议。

    您可以执行以下操作以使图像看起来“摇摆”:

    .small-pic {
      height: 150px;
      width: 150px;
      -moz-animation: 5s ease 0s normal none infinite swing;
      -moz-transform-origin: center top;
      -webkit-animation: swing 5s infinite ease-in-out;
      -webkit-transform-origin: top;
    }
    
    @-moz-keyframes swing {
      0% {
        -moz-transform: rotate(-15deg);
      }
      50% {
        -moz-transform: rotate(15deg);
      }
      100% {
        -moz-transform: rotate(-15deg);
      }
    }
    @-webkit-keyframes swing {
      0% {
        -webkit-transform: rotate(-15deg);
      }
      50% {
        -webkit-transform: rotate(15deg);
      }
      100% {
        -webkit-transform: rotate(-15deg);
      }
    }
    
    
    .align-center {
      text-align: center;
    }
    <div class="align-center">
      <img 
        src="https://ekladata.com/15mPtZjqIvkzXob44Uk7C8LTSOg.png" 
        class="small-pic" 
      />
    </div>

    话虽如此,您提供的示例是一个非常复杂的示例,您所询问的部分与视差无关(特别是指云的运动)。此外,该示例包含了解它们如何实现这一目标所需的所有代码。

    如果您愿意,可以花一些时间挑选您提供的示例,以便更熟悉它是如何完成的。

    【讨论】:

    • 谢谢,帮了大忙!这就是我试图做的,我想我混淆了视差和css制作的动画,真的以为示例中的所有运动都是用视差效果制作的。再次感谢!
    • 没问题!视差本质上是指背景以与前景不同的速度滚动。您的示例确实使用了视差,但这并不是产生云“摇摆”效果的原因。 Here is a 简单视差效果的好演示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多