JS 非画像動的読み込み効果の実装 code_javascript スキル

WBOY
リリース: 2016-05-16 18:30:05
オリジナル
1417 人が閲覧しました

代幣如下:
最初实この機能のjs对象LoadingMsg:

复制代 代幣如下:

var Class = {
create: function() {
return function() { this.init.apply(this,arguments); }
}
}
var LoadingMsg = Class.create();
LoadingMsg.prototype = {
init: function(spanId, spanMsg) {
this.intervalID = -10000;
this.spanId = spanId;
this.spanMsg = spanMsg;
this.timespan = 1000;
this.pointNum = 3;
this.initPointMsg = "...";
},
Loading: function() {
var maxLength = this.spanMsg.length this.pointNum;
var currentSpanMsg = document.getElementById(this.spanId).innerHTML;
if (currentSpanMsg.length < maxLength) {
document.getElementById(this.spanId).innerHTML = ".";
}
else {
document.getElementById(this.spanId).innerHTML = this.spanMsg;
}
},
Start: function() {
document.getElementById(this.spanId).innerHTML = this.spanMsg this.initPointMsg;
var callObj = this;
this.intervalID = setInterval(function() { callObj.Loading(); }, this.timespan);
},
End: function() {
document.getElementById(this.spanId).innerHTML = "";
clearInterval(this.intervalID);
}
}

关键点:
如果ハンドル
复制代 代码如下:

var callObj = this;
this.intervalID = setInterval(function() { callObj.Loading(); }, this.timespan);

写成:
复制代码代码如下:

this .intervalID = setInterval(this.Loading, this.timespan);

は、Loading メソッドの実行時に this.spanMsg に到達しない場合があります。
は、setInterval の最初のパラメータにあるこれは、LoadingMsg オブジェクトではなく Windows オブジェクトであるためです。
このメソッドを使用します:
代価代次のように:

<本文>











来源prototype.js里经典创建Js对オブジェクトの
复制代码代码如下:

var Class = {
create: function() {
return function() { this.init.apply(this,arguments); }
}
}
var LoadingMsg = Class.create();

Class.create() の時点で 2 件の事、1 つは LoadingMsg を作成したオブジェクト、つまり var LoadingMsg = function() {};
外部一件事です。
これを実現できた場合は、LoadingMsg の init メソッドを使用して、c# の構築関数に相当する LoadingMsg の静的変数を初期化します。例:
复制代代码如下:

var LoadingMsg = function() { };
LoadingMsg.prototype = {
init: function(spanId, spanMsg) {
this.intervalID = -10000;
this.spanId = spanId;
this.spanMsg = spanMsg;
this.timespan = 1000;
this.pointNum = 3;
this.initPointMsg = "...";
},
Loading: function() {
var maxLength = this.spanMsg.length this.pointNum;
var currentSpanMsg = document.getElementById(this.spanId).innerHTML;
if (currentSpanMsg.length < maxLength) {
document.getElementById(this.spanId).innerHTML = ".";
}
else {
document.getElementById(this.spanId).innerHTML = this.spanMsg;
}
},
開始: function(spanId, spanMsg) {
this.init(spanId, scanMsg);
document.getElementById(this.spanId).innerHTML = this.spanMsg this.initPointMsg;
var callObj = this;
this.intervalID = setInterval(function() { callObj.Loading(); }, this.timespan);
},
End: function() {
document.getElementById(this.spanId).innerHTML = "";
clearInterval(this.intervalID);
}
}

とは異なりますが、init の手順调から開始時間実行、したがってこの调用の時間気象也就变成了
复制代码代码如下:

varloadingMsgObj = new LoadingMsg();
function StartLoading() {
loadingMsgObj.Start("spanId", "loading");
}

面からオブジェクトへのアクセス、私たち人間は、オブジェクトを実行する方法の時間ではなく、オブジェクトの時間に即時にパラメータを入力する、最初の書法です。
さらに、setInterval メソッドのパラメータを渡す場合、パラメータが単一の文字列の場合、
setInterval("DisplayXYZ('xyz')",1000); を指定できます。
結果パラメータがオブジェクトである場合、
setInterval(function(){DisplayXYZ(obj);},1000);
LoadingMsg も主に Ajax で使用され、リクエストの送信後のloadingMsgObj.Start()、および正常に取得された際のloadingMsgObj.End()を実行するために使用されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート