博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js setTimeout函数
阅读量:4693 次
发布时间:2019-06-09

本文共 1605 字,大约阅读时间需要 5 分钟。

最近在看JS DOM编程艺术,在第十章的动画里面有个setTimeout函数的例子中涉及了很多的引号,研究了好大一会才看明白,综合网上各个大神的解释和自己的理解,其原理是这样的:

首先看下程序源代码:

1 function moveElement(elementID,final_X,final_Y,interval){ 2     if(!document.getElementById) return false; 3     if(!document.getElementById(elementID)) return false; 4     var elem = document.getElementById(elementID); 5     var xpos = parseInt(elem.style.left); 6     var ypos = parseInt(elem.style.top); 7     if (xpos==final_X && ypos==final_Y){ 8         return true; 9     }10     if(xpos
final_X){14 xpos--;15 }16 if(ypos
final_Y){20 ypos--;21 }22 elem.style.left = xpos +"px";23 elem.style.top = ypos +"px";24 var repeat = "moveElement('"+elementID+"',"+final_X+","+final_Y+","+interval+")";25 moveMent = setTimeout(repeat,interval);26 } 这段代码的功能是通过elementID获得元素每隔interval的时间移动元素的位置至final_X,final_Y。 为了使函数能够一直执行到最终位置需要调用setTimeout来循环执行,可能很多初学者像我一样卡在了repeat变量这里。我们首先看setTimeout(code,millisec),其中code可以为字符串或者函数,在本例中作者采用了字符串的形式来传值。如果我们相用字符串的话需要将变量 elementID final_X final_Y interval 和其他的常量一起拼起来做成如下的效果: setTimeout(moveElement('elementID',final_X,final_Y,interval),interval). 也就是说setTimeout 里面的repeat = moveElement('elementID',final_X,final_Y,interval) 那么拼接前是这样的: moveElement(' elementID ', final_X , final_Y , interval ) 字符串的拼接只需要在每个字符上面加上双引号就行了 最终就是: repeat = "moveElement('"+elementID+"',"+final_X+","+final_Y+","+interval+")"; 特别注意不要把 "" 给弄混掉了。 另外如果直接传给setTimeout变量函数的话是这样的: repeat = function(){moveElement(elementID,final_X,final_Y,interval)}; 这样更容易读一些,效果也完全一样。

 

转载于:https://www.cnblogs.com/laowu-blog/p/5064071.html

你可能感兴趣的文章
route add 172.17.0.1/16 192.168.0.117
查看>>
llinux下solr7.7.2使用命令创建core
查看>>
Android蓝牙传感应用(转)
查看>>
STM32 定时器用于外部脉冲计数(转)
查看>>
DDR工作原理(转)
查看>>
(Frontend Newbie) Web三要素(一)
查看>>
(转载-学习)python wsgi 简介
查看>>
ASP.NET如何进行性能优化问题
查看>>
QPushButton 控制两种状态
查看>>
一点小基础
查看>>
PHP 自动加载类 __autoload() 方法
查看>>
JDK中的Timer和TimerTask详解(zhuan)
查看>>
【python练习】ATM&购物商城程序
查看>>
nginx 日志问题(\x22)
查看>>
CSU 1120 病毒
查看>>
装饰器、迭代器、生成器
查看>>
对闭包的一点小认识
查看>>
HDOJ---1203 I NEED A OFFER![01背包问题]
查看>>
Reading List on Automated Program Repair
查看>>
element UI table组件后端排序
查看>>