javascript - 如何让同一类的两个 div 在屏幕上移动?

标签 javascript jquery html css animation

我希望某些 div 在 Javascript 中在屏幕上移动,有点像 this website (向下滚动),仅水平滚动,或类似 here (也是垂直的,但我更喜欢水平的)

这是我的 HTML:

<div id = "creators" class = "big-part">
    <h3>Creators</h3>
    <div class = "creator_name">
        <h4>Name</h4>
        <p>Text</p>
    </div>
    <div class = "creator_name">
        <h4>Name</h4>
        <p>Text</p>
    </div>
    <div class = "creator_name">
        <h4>Name</h4>
        <p>Text</p> 
    </div>
</div>

我的 CSS:

.big-part {
    color: rgb(230, 230, 230);
    background-color: #3c3c91;
    border-radius: 21px;
    padding: 0.5% 1.5%; 
    margin-top: 2%;
}
.creator_name {
    background-color: rgb(230, 230, 230);
    height: 300px;
    color: #3c3c91;
    border-radius: 15px;
    padding: 1%;
}
.creator_name {
    width: 25%;
    display: inline-block;
    margin: 2% 2%;
}

和我在 script 标签中的 javascript:

var creatorEl= document.getElementsByClassName("creator_name");

var startTime = new Date().getTime();
var moveTheDiv = function() {
    var currTime = new Date().getTime();
    var secondsElapsed = ((currTime - startTime)/1000);
    var newLeft = parseFloat(secondsElapsed) * 30 + "px";
    creatorEl.style.left = newLeft;
    window.requestAnimationFrame(walkTheCat);
};
moveTheDiv();

谢谢!

顺便说一下,如果只有当客户端/用户向下滚动并且 div 可见时才显示此动画,那就太好了。 如果你愿意,你可以回答一半的问题,我会接受任何帮助。

编辑: 只有当我为每个 ID 添加一个 ID 并使用 ID 移动它们时,我才能让它们移动,有没有办法同时移动它们但只使用一个类?

最佳答案

您可能会发现动画引擎 Velocity.js 很有帮助。 http://julian.com/research/velocity/ (我不隶属于创作者)。

您实现类似于 jQuery 的 .animate() 方法的功能。

这是一个如何旋转 div 的例子:

$(document).ready(function(){   
   $('#divToAnimate').velocity(
    { rotateX: "+=0", 
      rotateY: "+=360",
      height: '+=50px',
      width: '+=100px'
    }, 
    {
      duration:4000,
      loop:false,
      easing:'linear'
  });
});
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Sample animation with Velocity.js</title>

  <!-- jQuery CDN -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
  </script>

  <!-- Velocity.js CDN -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.3/velocity.min.js"></script>
</head>

<body>
  <div id="divToAnimate">Example Div to Animate</div>
</body>

</html>

希望对您有所帮助,祝您好运!

关于javascript - 如何让同一类的两个 div 在屏幕上移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34424821/

相关文章:

javascript - 通过删除相关 DOM 来重新初始化 jQuery 插件

jquery - 将绝对定位的元素居中

javascript - d3 剪辑路径不适用于填充折线图

jquery - 获取父div的高度

javascript - 使用嵌套对象进行 MongoDB 映射缩减

javascript - 如何通过滚动使标题背景不透明

jquery - 想要在不同的 div 框中单击按钮时显示列表

javascript - 用javascript中的随机词替换段落标签内容

javascript - 如何在 javascript for 循环中从字符串创建 if 条件语句而不使用 eval()

javascript - Codeigniter 中的组合框