>웹 프론트엔드 >JS 튜토리얼 >JS 진행률 표시줄 효과 구현 코드 organization_javascript 기술

JS 진행률 표시줄 효과 구현 코드 organization_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:06:281157검색

첫 번째 방법:
Loading.js

코드 복사 코드는 다음과 같습니다.

/ /빈도
var 빈도 = 50;//단계 크기
var 단계 = 3
//배경 색상
var loadingBgcolor = "#ffffff" Width
var loadingWidth = 354;

/*
*매개변수 설명:
*content: 콘텐츠 표시, 비어 있을 수 있음
*imageURL: 참조된 경로만 설정합니다. JS 파일
*left: 진행률 표시줄 표시 위치 왼쪽
*top: 진행률 표시줄 표시 위치 위쪽
*/
function Loading(content, imageURL, left, top)
{
imageURL = imageURL "Loading.jpg";

LoadTable(content, imageURL, 왼쪽, 상단)
showimage.style.display=""
window.setInterval("RefAct() ;" , 주파수);
}

function RefAct()
{
imgAct.width = step;
if(imgAct.width > loadingWidth-4)
{
imgAct.width = 0;
}
}

함수 LoadTable(content, imageURL, left, top)
{
var strLoading; "" ;
strLoading = "" ;

document.getElementById("loading_div").innerHTML = strLoading;
}


사용 페이지:


코드 복사
코드는 다음과 같습니다.
제목 없는 문서<div class="codebody" id="code82385"> <meta http-equiv="Content-Type" content="text/html; =gb2312"><script src="LoadingJS/Loading.js" type="text/javascript"></script> <br><br></head> <br><br><body> <br><input type="button" name="Button" value="Button" onclick="Loading('레이블 내용 표시', 'LoadingJS/', 20, 100)"> 🎜><div id="loading_div" ></div> <br></html> <br><br> <br>JS 구현 진행률 표시 기능 <br><br><br><br><br>코드 복사</div> <br><br> 코드는 다음과 같습니다.<br><div class="codebody" id="code60359"> <br>progress.js 클래스 파일: <br><br>$ = function (id) { <br>return document.getElementById(id); <br>} <br>//텍스트를 JSON 문자열로 변환 <br>String.prototype.toJson = function () { <br>if (this == ) { <br>return null <br>} <br>else { <br>try { <br>return eval(( this.replace(/rn/g, rn) )); <br>} <br>catch (err) { <br>} <br>} <br>}; String.prototype.format = function () { <br>var newStr = this; <br>var reg = null <br>for (var i = 0; i <args.length; i ) { <BR> reg = RegExp('{' (i) '}', 'gm'); <BR>newStr = newStr.replace(reg, 인수[i]) <BR>} <BR>return newStr; <BR>//진행률 표시줄 클래스<BR>function Progress(objId) { <BR>//window.setInterval 객체<BR>this.interval = null <BR>//진행률 표시줄 객체 ID <BR>this. = objId; <BR>//현재 진행 상황의 시작 진행률은 0입니다. <BR>this.progress = 0 <BR>//진행률 표시줄에는 진행 상황의 DIV ID가 표시됩니다. <BR>this.progressId = inner this .id <BR>//진행률 표시줄 테두리 ID <BR>this.progressFrameId = 프레임 this.id <BR>//진행률 표시줄 클래스 매개변수 구성<BR>this.config = { <BR>//Width<BR>너비: 150 , <BR>//높이<BR>높이: 20, <BR>//왼쪽 여백<BR>왼쪽: 0, <BR>//상단 여백<BR>상단: 0, <BR>/ /진행률 색상 <BR>progressColor: red, <BR>//테두리 색상<BR>borderColor: #ccc, <BR>//테두리 너비<BR>borderHeight: 2, <BR>//간격 후 진행률 숨기기 진행이 완료된 후 N초 동안 Bar 0이 즉시 숨겨집니다<BR>hiddenSplit:2000 <BR>} <BR>} <BR>//진행률 표시줄 클래스 초기화 방법<BR>Progress.prototype.init = function () { <BR>//새 진행 테두리 DIV <BR>var Progressdiv = document.createElement(div); <BR>//테두리 DIV 스타일 <BR>var Progressdiv_css_text = position:absolute;width:{0}px;height: {1}px;left: {2}px;top:{3}px;border:{4} {5}px solid;.format <BR>( <BR>this.config.width, <BR>this. config.height, <BR> this.config.left, <BR>this.config.top, <BR>this.config.borderColor, <BR>this.config.borderHeight <BR>); 0으로 진행 <BR> this.progress = 0; <BR>//테두리 ID 설정 <BR>progressdiv.id = this.progressFrameId <BR>//테두리 스타일 설정 <BR>progressdiv.style.cssText = Progressdiv_css_text; <BR>//진행 표시줄 HTML 설정 <BR>progressdiv.innerHTML = ' <BR><BR>'.format(this.progressId, this.config.height, this.config.progressColor); /본문에 추가 <BR>document .body.appendChild(progressdiv); <BR>}//진행률 표시줄 숨겨진 함수 <br>Progress.prototype.hiddenProgress = function () { <br>document.body. RemoveChild(document.getElementById(this.progressFrameId)); <BR>window.clearInterval(this.interval); <BR>} <BR>//진행이 끝나면 함수가 실행됩니다.<BR>Progress.prototype.complete = function () { <BR>window.clearInterval(this.interval); <BR>this.interval = window.setTimeout(this.id .hiddenProgress();,this.config.hiddenSplit) <BR>if(this.completeCallBack) <BR>this.completeCallBack( ); <BR>} <BR>} <BR>//각 진행 실행 후 콜백 함수 <BR>Progress.prototype.callback = function () { <BR>var ProgressDiv = document. getElementById(this.progressId) ; <BR>var ProgressFrameDiv = document.getElementById(this.progressFrameId); <BR>progressDiv.innerHTML = (this.progress*100) <BR>progressFrameDiv.title = 업로드 진행률: (this .progress*100) % ; <BR>progressDiv.style.width = (this.progress*100) % <BR>if (this.progress >= 1) { <br>this.complete(); >progressDiv.innerHTML = 파일 업로드 성공! <br>} <br>} <br>//진행률 표시줄 실행 기능. 사용자는 <br>Progress.prototype.run = function () { <br>alert(비동기 진행 요청을 구현하려면 this.id .run 메소드를 구현하고, 다시 게시할 때 this.id .callback 메소드를 다시 콜백하세요.) ); <br>window.clearInterval(this.interval); <br>} <br>//진행 시작<br>Progress.prototype.start = function () { <br>this.init(); this.interval = window.setInterval(this.id .run(), 1000) <br>} <br><br> <br>이미지 로딩 진행 상황이 실시간으로 표시됩니다<br><br><br><br><br> 코드 복사<br> </div> <br> 코드는 다음과 같습니다.<br><div class="codebody" id="code99880"> <br><스크립트> <br>var l=0; <br>var imgs; <br>var sum=0; <br>var imgs=new 배열(); <br>함수 chk(){ <br>l--; <br>document.getElementById("aa").innerText="" ((sum-l)*100/sum) "%" <br>if (l==0){ <br>for (var i=0 ;i<sumi ) <BR>document.body.innerHTML ="<img src='" imgs[i].src "'>" <br>} <br>} <br>if (document.images){ <br>imgs[0]=new Image() <br>imgs[1]=new Image() <br>imgs[2]= 새 이미지() <br>imgs[3]=새 이미지() <br>imgs[4]=새 이미지() <br>imgs[5]=새 이미지() <br>imgs[6]=새 이미지 () <br>imgs[7]=new Image() <br>imgs[0].src="/articleimg/2006/08/3859/01.jpg"; <br>imgs[1].src="/articleimg/2006/08/3859/02.jpg"; <br>imgs[2].src="/articleimg/2006/08/3859/03.jpg"; <br>imgs[3].src="/articleimg/2006/08/3859/04.jpg"; <br>imgs[4].src="/articleimg/2006/08/3859/05.jpg"; <br>imgs[5].src="/articleimg/2006/08/3859/06.jpg"; <br>imgs[6].src="/articleimg/2006/08/3859/07.jpg"; <br>imgs[7].src="/articleimg/2006/08/3859/08.jpg"; <br>} <br><br></script> <br><본문> <br><div id="aa">0%</div> <br><스크립트> <br>sum=l=imgs.length; <br>for (var i=0;i<l;i ){ <br>imgs[i].onload=chk; <br>imgs[i].onerror=chk;//无论图文是否加载成功,tour执行指정방법 <br>} <br></script> <br></body> <br> </div>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.