
求高手 帮忙修改一下js的代码
<divstyle="position:absolute;top:-149px;"id="divP"><imgsrc="1.png"></div><scripttype=...
<div style="position:absolute; top:-149px;" id="divP"><img src="1.png" ></div>
<script type="text/javascript">
var divP = document.getElementById("divP");
function move(){
divP.style.top = divP.style.top.replace('px','') - 0 + 1;
var av=0;
av++;//每循环一次就加1
}
var timer = window.setInterval("move()",35);
if(av==10)
{clearInterval(timer);}//av循环到10次的时候 结束 为什么没效果
</script> 展开
<script type="text/javascript">
var divP = document.getElementById("divP");
function move(){
divP.style.top = divP.style.top.replace('px','') - 0 + 1;
var av=0;
av++;//每循环一次就加1
}
var timer = window.setInterval("move()",35);
if(av==10)
{clearInterval(timer);}//av循环到10次的时候 结束 为什么没效果
</script> 展开
3个回答
展开全部
<div style="position:absolute; top:-149px;" id="divP"><img src="1.png" ></div>
<script type="text/javascript">
var divP = document.getElementById("divP");
var av=0;
var timer;
function move(){
divP.style.top = (divP.style.top.replace('px','') - 0 + 1)+'px';
av++;//每循环一次就加1
if(av==10)
{clearInterval(timer);}
}
timer = window.setInterval("move()",35);
</script>
首先把循环变量定义在循环外面,不然就是死循环。
其次要把判断AV值的语句放在循环里面
改写距离长度这样的数值不要忘了加上 'px’
<script type="text/javascript">
var divP = document.getElementById("divP");
var av=0;
var timer;
function move(){
divP.style.top = (divP.style.top.replace('px','') - 0 + 1)+'px';
av++;//每循环一次就加1
if(av==10)
{clearInterval(timer);}
}
timer = window.setInterval("move()",35);
</script>
首先把循环变量定义在循环外面,不然就是死循环。
其次要把判断AV值的语句放在循环里面
改写距离长度这样的数值不要忘了加上 'px’
更多追问追答
追问
哇 高手啊~
对了 里面一段代码我看不懂 想请高手解释一下
divP.style.top = (divP.style.top.replace('px','') - 0 + 1)+'px';
这段的意思是什么
我都不理解 求高手详细的解释一些麻烦你了
追答
这句话的意思就是重新设置该div离上边框的距离,每次循环top+1,效果就是图片向下移动一段距离
因为获得的距离都是 数字加px格式的,所以要先把px去掉,所以用了replace方法,
-0 是比较偷懒的方法,把数字字符串转化成数字,比如'33'-0结果就是 33,再加上1再加上'px'就是新的距上边框的数值34px了。如果没有 -0就是 '33'+1+'px' 这个是 331px

2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
因为你的av值永远不会等于10,应该是等于1
因为,你是用循环来执行函数
每循环一次,函数就执行一次,函数没执行一次,就声明变量 av,并且赋值为0 (var av = 0),那么每次循环av的值都被你弄成了0,然后再 av++,那么每次循环av值都是:av = 0+1,那么这样av的值永远都是1,那么
if(av==10)
永远不会成立,那当然没效果了
解决的办法是,只给av变量声明一次,那么,你的,var av = 0;就应该放到函数外,也就是函数上面。
因为,你是用循环来执行函数
每循环一次,函数就执行一次,函数没执行一次,就声明变量 av,并且赋值为0 (var av = 0),那么每次循环av的值都被你弄成了0,然后再 av++,那么每次循环av值都是:av = 0+1,那么这样av的值永远都是1,那么
if(av==10)
永远不会成立,那当然没效果了
解决的办法是,只给av变量声明一次,那么,你的,var av = 0;就应该放到函数外,也就是函数上面。
追问
好的 我懂了 谢谢~ 高手
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是var av=0;变量定义的问题,每次循环,av都初始化为0,应该将变量定义放到function的外面,即:
var av=0;
function move(){
divP.style.top = divP.style.top.replace('px','') - 0 + 1;
av++;//每循环一次就加1
}
var av=0;
function move(){
divP.style.top = divP.style.top.replace('px','') - 0 + 1;
av++;//每循环一次就加1
}
追问
还是不行 你看
var divP = document.getElementById("divP");
var av=0;
function move(){
divP.style.top = divP.style.top.replace('px','') - 0 + 1;
av++;
}
var timer = window.setInterval("move()",35);
if(av==10){clearInterval(timer);}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询