js动画问题

clipboard.png

我这里把a.style.left = a.offsetLeft + 10 + 'px';
但是div没有移动
然后我
console.log(a.style.left+"--"+a.offsetLeft)
发现a.style.left和a.offsetLeft一直没变

clipboard.png

这是为什么??
是不是我用的flex布局然后style.left不会变???

这样??
clipboard.png
还是一样的

阅读 1.8k
3 个回答

CSS 定位了解一下?

看来题主并没有搞清楚 position display 这些属性的作用。position 为 static 的情况下你改 left 是不会有效果的。top right bottom left 并不参与 flex 布局的控制。如果你既希望元素本身参与 flex 布局,又想让元素产生位移动画,那首选应该是 transform 。transform 是在布局后对元素进行视觉层面的改变,不影响布局和定位本身。

offset是205,加10之后不就是215吗?两个各自都是原来的值,当然不会变

数值运算和字符串要有分隔如下:

a.style.left = (a.offsetLeft + 10) + 'px'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题