javascript - 使用函数更改 div 属性?

标签 javascript setinterval

我不确定为什么我的移动功能没有更改我的“玩具”的 style.left 或 style.top 属性

有关如何为 div 制作动画的任何提示或一般信息/链接?我正在把我的头发拉到这里。 :)

var ref;
var timer;
var velocity = 50;
var deltaX = 5;
var deltaY = 5;
var left = 0;
var top = 0;
//var moveX = math.random() * velocity;
//var moveY = math.random() * velocity;

function init() {
  alert("in init fucntion");
  ref = document.getElementById("toy");
  alert("ref = " + ref.valueOf());
  timer = setInterval(move, 50);
}

function move() {
  alert("called move");
  var left = parseInt(ref.style.left);
  var top = parseInt(ref.style.top);
  alert("left = " + left.valueOf() + " top = " + top.valueOf());

  left += 5;
  top += 5;
  alert("left =" + left.valueOf() + "top = " + top.valueOf());

  ref.style.left += left;
  ref.style.top += 5;
  alert("ref.style.left = " + ref.style.left.valueOf() + " ref.style.top = " + ref.style.top.valueOf());

  ref.style.left = (left + deltaX) % posEnd;

}

var posEnd = 0;
var objWidth = 100;

if (window.innerWidth) {
  posEnd = window.innerWidth
} else if (window.document.body.clientWidth) {
  posEnd = window.document.body.clientWidth
}
<body onload="init()">

  <div style="width: 100px; height: 100px; position:absolute; left: 0px; top: 0px;" id="toy">
    <img src="http://images.all-free-download.com/images/graphiclarge/mouse_clip_art_6054.jpg" style="max-height: 100%; max-width: 100%;">
  </div>

最佳答案

您只需指定位置所在的单位。例如,style.left = 10 不起作用 - 您需要 style.left = '10px' >;

这是 move() 函数的稍微简化版本,显示了这一点:

function move() {
    var left = parseInt(ref.style.left);
    var top = parseInt(ref.style.top);

    left += 5;
    top += 5;

    ref.style.left = left + 'px';
    ref.style.top = top + 'px';
}

还有一个完整的工作片段:

var ref;
var timer;
var velocity = 50;
var deltaX = 5;
var deltaY = 5;
var left = 0;
var top = 0;

function init() {
  ref = document.getElementById("toy");
  timer = setInterval(move, 500);
}

function move() {
  var left = parseInt(ref.style.left);
  var top = parseInt(ref.style.top);

  left += 5;
  top += 5;

  ref.style.left = left + 'px';
  ref.style.top = top + 'px';
}

var posEnd = 0;
var objWidth = 100;

if (window.innerWidth) {
  posEnd = window.innerWidth
} else if (window.document.body.clientWidth) {
  posEnd = window.document.body.clientWidth
}
<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title></title>
</head>

<body onload="init()">

  <div style="width: 100px; height: 100px; position:absolute; left: 0px; top: 0px;" id="toy">
    <img src="http://images.all-free-download.com/images/graphiclarge/mouse_clip_art_6054.jpg" style="max-height: 100%; max-width: 100%;">
  </div>

</body>

</html>

关于javascript - 使用函数更改 div 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516747/

相关文章:

javascript - Angular JS Controller 功能未进入

javascript - 在 XmlHttpRequest ReadyState 4 中调用 chrome ChooseEntry

javascript - 文字对象函数范围,如何将函数和上下文传递给第三个

javascript设置间隔 session 管理

javascript setInterval() 未在计时器上触发

javascript倒计时器,点击事件后间隔加快

javascript - 带进度条的 slider 上的 Jquery setInterval

javascript - jQuery click() 不适用于 JSON

javascript - 每次都拒绝在我自己的谷歌脚本中授予权限

javascript - 在 JavaScript 间隔内等待