为了账号安全,请及时绑定邮箱和手机立即绑定

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
66666 以前真没注意过 老师讲的不错~
js/move.js那里有分享一下,谢谢
想看0.5速度的,连续点击空格,你就知道了,让我上去

最新回答 / 慕丝2053625
你好,我也遇到了这个问题。正如老师所讲的那样,一定是有属性在到达自己的位置的时候,立刻触发了清除定时器,导致其他的属性虽然还没有到达target,就被终止了运行。当你再次用鼠标指向的时候,定时器只会被触发一次,for循环一遍,就遇到opacity属性已经变成1,因此目标宽度只被遍历1次,增长1,所以需要移入移出4次,这个情况将会在你把目标宽度修改成201时相当明显。
我发现用onmouseover会出现bug,就是onmouseover事件会一直触发,用onmouseenter就不会了
有没有源代码
没必要搞那么麻烦,可以直接定义一个itrue判断已达到目标值的属性个数,itrue定义在定时器外itrue=0;
if(icur!=json[attr]{继续执行运动函数}
else itrue++;
if(itrue==json.length) {关闭定时器;fn();}
针对一些运算会出 小数点的运动
需要使用Math.ceil+Math.floor函数来向上向下取整
自定义封装函数时 应该要精简
做的东西在火狐和IE上完美运行,在谷歌却不行。。。
怎么让它边运动 颜色边变呢?
为什么我按照老师的方法可以全部出去,但是不能全部缩回来,用别人的代码试也是这样,求指教

已采纳回答 / Madlen
//以下是老师封装的函数,其余的css代码自己写就好了function startMove(obj,json,fn) { /* obj为要改变的元素对象 json为属性/值对,即要改变的属性和值。用于同步运动 fn为回调函数,用于设置链式运动 ...
给大家分享一个一句可以代替判断速度正负代码的
源代码为:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};

可以精简为
oDiv.offsetLeft>target?speed=-10:speed=10;
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消