当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript延时重复执行函数 lLoopRun.js

Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
JavaScript 撑出页面文字换行
JavaScript 高级语法介绍
Javascript 表格操作实现代码
javascript 获取鼠标的绝对位置 event
Input 特殊事件onpopertychange和oninput
javascript 一段左右两边随屏滚动的代码
JS 分号引起的一段调试问题
根据服务器时间作为起始,显示时钟的小程序
js 匿名调用实现代码
javascript 缓冲效果 实现代码
javascript htmlencode函数(ff兼容版) 主要是编辑器中反转html代码
javascript 获取radio的value的函数 [已测]
Javascript 代码也可以变得优美的实现方法
使弱类型的语言JavaScript变强势
js 单引号 传递方法
利用WebBrowser彻底解决Web打印问题(包括后台打印)
web 页面分页打印的实现
可以拖动的div 实现代码
WordPress 照片lightbox效果的运用几点

Javascript 中的 javascript延时重复执行函数 lLoopRun.js


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 387 ::
收藏到网摘: n/a

function lLoopRun(sFuncLoop,sFuncEnd,nDelay) {
//writen by http://fengyan.iecn.cn
//sFuncLoop >> 字符串型,需要重复执行的Javascript函数或语句(多个函数或语句请用;分隔)
//sFuncEnd >> 字符串型,用于中止重复执行动作(sFuncLoop)的Javascript函数或语句
//nDelay >> 数字型,重复执行的时间间隔(毫秒数)
var vintervalId = null;
var runString = sFuncLoop;
var stopString = sFuncEnd;
var delayTime = nDelay;
//var nCount = 0;//执行次数//为便于测试,应用时就将此行注释掉
this._doLoop = function (){
if (vintervalId && !eval(stopString)){
eval(runString);
//nCount++;//记录执行次数//为便于测试,应用时就将此行注释掉
} else {
window.clearInterval(vintervalId);
vintervalId = null;
}
//document.getElementById("TestCount").innerHTML = nCount;//输出执行次数//为便于测试,应用时就将此行注释掉
}
window.clearInterval(vintervalId);
vintervalId = window.setInterval(this._doLoop,delayTime);
}
几个实例代码:
水平往复运动:
<html>
<head>
<title>lLoopRun.js 应用实例:水平往复运动</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Author" content="CnLei,枫岩" />
<style type="text/css">
#IECN {position:absolute;}
</style>
<script type="text/javascript" src="lLoopRun.js"></script>
</head>
<body>
<p>执行次数:<strong id="TestCount">0</strong></p>
<img id="IECN" src="http://bbs.iecn.net/attach-iecn/upload/7574.gif" style="left:0px;top:0px;" width="120" />
<script type="text/javascript">
<!--
function chgPos(sId,n){
var o = document.getElementById(sId);
o.style.left = (parseInt(o.style.left)+n)+"px";
}
function chgPosStop(sId,nMax){
var o = document.getElementById(sId);
if(parseInt(o.style.left)<0){isReBack = false;}
if(parseInt(o.style.left)>nMax){isReBack = true;}
if(isReBack) {
nNum=-Math.abs(nNum);
} else {
nNum=Math.abs(nNum);
}
}
var nNum=10;
var isReBack = false;
lLoopRun("chgPos(’IECN’,nNum);","chgPosStop(’IECN’,600)",20);
-->
</script>
</body>
</html>

自动伸缩大小:
<html>
<head>
<title>lLoopRun.js 应用实例:自动伸缩大小</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Author" content="CnLei,枫岩" />
<script type="text/javascript" src="lLoopRun.js"></script>
</head>
<body>
<p>执行次数:<strong id="TestCount">0</strong></p>
<img id="IECN" src="http://bbs.iecn.net/attach-iecn/upload/7574.gif" style="left:0px;top:0px;" width="120" />
<script type="text/javascript">
<!--
function chgPos(sId,n){
var o = document.getElementById(sId);
o.width = (parseInt(o.width)+n);
}
function chgPosStop(sId,nMax){
var o = document.getElementById(sId);
if(parseInt(o.width)<10){isReBack = false;}
if(parseInt(o.width)>nMax){isReBack = true;}
if(isReBack) {
nNum=-Math.abs(nNum);
} else {
nNum=Math.abs(nNum);
}
//return parseInt(o.style.left)>nMax || (parseInt(o.style.top)>nMax-200);
}
var nNum=10;
var isReBack = false;
lLoopRun("chgPos(’IECN’,nNum);","chgPosStop(’IECN’,500)",20);
-->
</script>
</body>
</html>

垂直往复运动:
<html>
<head>
<title>lLoopRun.js 应用实例:垂直往复运动</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Author" content="CnLei,枫岩" />
<style type="text/css">
#IECN {position:absolute;}
</style>
<script type="text/javascript" src="lLoopRun.js"></script>
</head>
<body>
<p>执行次数:<strong id="TestCount">0</strong></p>
<img id="IECN" src="http://bbs.iecn.net/attach-iecn/upload/7574.gif" style="left:0px;top:0px;" width="120" />
<script type="text/javascript">
<!--
function chgPos(sId,n){
var o = document.getElementById(sId);
o.style.top = (parseInt(o.style.top)+n)+"px";
}
function chgPosStop(sId,nMax){
var o = document.getElementById(sId);
if(parseInt(o.style.top)<0){isReBack = false;}
if(parseInt(o.style.top)>nMax){isReBack = true;}
if(isReBack) {
nNum=-Math.abs(nNum);
} else {
nNum=Math.abs(nNum);
}
//return parseInt(o.style.top)>nMax || (parseInt(o.style.top)>nMax-200);
}
var nNum=10;
var isReBack = false;
lLoopRun("chgPos(’IECN’,nNum);","chgPosStop(’IECN’,300)",20);
-->
</script>
</body>
</html>

渐变显示(图片):
<html>
<head>
<title>lLoopRun.js 应用实例: 渐变显示效果</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Author" content="CnLei,枫岩" />
<style type="text/css">
body{background:#080;color:#fff;}
#IECN {
background:#fff;
filter: Alpha(opacity=10);
-moz-opacity:.10;
opacity:.10;
}
</style>
<script type="text/javascript" src="lLoopRun.js"></script>
</head>
<body>
<p>执行次数:<strong id="TestCount">0</strong></p>
<img id="IECN" src="http://bbs.iecn.net/attach-iecn/upload/7574.gif" style="left:0px;top:0px;" width="120" /><br /><br />刷新再次查看演示效果
<script type="text/javascript">
<!--
function chgOpacity(sId,n){
var o = document.getElementById(sId);
if (o.filters) {
o.filters[0].Opacity = parseInt(o.filters[0].Opacity) + n;
} else {
o.style.opacity= eval(document.defaultView.getComputedStyle(o,null).getPropertyValue(’opacity’)) + (n*100/10000);
}
}
function chgOpacityStop(sId){
var o = document.getElementById(sId);
if (o.filters) {
return parseInt(o.filters[0].Opacity)>=99;
} else {
return eval(o.style.opacity)>=0.99;
}
}
lLoopRun("chgOpacity(’IECN’,1);","chgOpacityStop(’IECN’)",20);
-->
</script>
</body>
</html>

原文:http://fengyan.iecn.cn/blog-html-do-showone-uid-35653-type-blog-itemid-2320.html