让一个 DIV 缓慢向右移动 300px 就停止的javascript 代码 怎么写?

我写的代码为什么不停止?... 我写的代码为什么不停止? 展开
 我来答
eaTong谈前端
推荐于2017-09-07 · 超过33用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:52.9万
展开全部

你的代码结构有问题,帮你修改一下。。。

var oDiv1 = ducument.getElementById("div1):
var timer = null;
oDiv1.onclick=function(){
    timer = setInterval(function(){
        if(oDiv1.offsetLeft < 300){
            oDiv1.style.left = oDiv1.offsetLeft + 5 +'px';
        }else{
            clearInterval(timer);
        }
    },30);
}

另外,一定要确认你的div1的position是absolute。


你的代码之所以无法让这个div停止是因为你的判定是在点击的刚开始,那时候自然是小于300的,所以进不到你的else的语句块里面,所以你应该讲if判定放到setInterval的function里面,这样他才会重复判定

追问
嗯,我也想明白了,是我的编程思想还不成熟,判断应该在定时器里边的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式