【Web】js 简单动画,犯了低级错误

犯了个错误,蒙了好久才弄明白

刚接触js动画,本来想简单实现一下看看,结果却出现了令我费解的bug…

代码如下:

在这里插入图片描述
一个很简单的的平移,每秒(方便debug才设置这么长时间)移动 1px。
上面是一个闭包,我为一个按钮注册了 click 事件,控制动画的播放与暂停。

看一下效果:

在这里插入图片描述
这不管怎么说也不可能是一像素啊…

后来发现移动的距离与盒子 margin 有关,margin 越大,移动距离越大。
我量了量距离,发现是 margin + 1。

在 chrome 里单步调试:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,每次 margin 都涨了一百零一,而我的 CSS 是这样的:
在这里插入图片描述
要平移,肯定要 absolute,而 absolute 会脱离标准流。
于是我的按钮会掉上去,被盒子盖住。我懒得再布局,所以给了个 margin。

问题就出在 margin 上,注意我回调函数里的代码:
在这里插入图片描述
众所周知,offset 是不带 margin 的…
在这里插入图片描述
我还做过笔记,太丢人了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高厉害

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值