JavaScript 振荡

标签 javascript animation

我有以下动画:

<!DOCTYPE HTML>
<html>
<head>
<style>
.example_path {
    position: relative;
    overflow: hidden;
    width: 530px;
    height: 30px;
    border: 3px solid #000;
}

.example_path .example_block {
    position: absolute;
    background-color: blue;
    width: 30px;
    height: 20px;
    padding-top: 10px;
    text-align: center;
    color: #fff;
    font-size: 10px;
    white-space: nowrap;
}
</style>
<script>
function move(elem) {

  var left = 0

  function frame() {

    left+=10  // update parameters 

    elem.style.left = left + 'mm' // show frame 

    if (left == 10000)  // check finish condition
      clearInterval(id)
  }

  var id = setInterval(frame, 1) // draw every 1ms
}
</script>
</head>

<body>
<div onclick="move(this.children[0])" class="example_path">
    <div class="example_block"></div>
</div>
</body>
</html>

正如你所看到的,如果蓝色 block 穿过矩形,它就会移出矩形。我如何让蓝色 block 围绕矩形边框来回摆动,并始终保持速度恒定......

(在我的例子中,速度为 10 m/s 又名 10 mm/ms)

最佳答案

您需要将代码更新为:Here is working JSfiddle

function move(elem) {

        var left = 0
        var fwdMove = true;

        function frame() {
            if (left < 0) {
                fwdMove = true;
            } else if (left > 520) {
                fwdMove = false;
            }

            fwdMove?left += 10:left -= 10
            elem.style.left = left + 'px' // show frame
        }    
        var id = setInterval(frame, 1) // draw every 1ms
    }

关于JavaScript 振荡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17252683/

相关文章:

javascript - 错误 : FS. 集合无法删除属于: "images"的文件,而不是: "cfs.images.filerecord"

javascript - 加载 React 组件后,如何调用 javascript 文件中存在的函数?

php - 添加箭头以链接到子项

ios - 带有平移手势的 CATransition Cube

c# - 使用 Xbox Controller 播放动画

javascript - 如何为一组对象制作动画?

javascript - WebStorm 2016.1.3 React 属性错误自动完成

javascript - 如何结合正负正则表达式?

wpf - 更改绑定(bind)属性的值时如何为文本 block 的背景设置动画?

Android 3d 动画,如 Google Now Launcher 菜单动画