javascript延時重複執行函數 lLoopRun.js

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.