function sibling(cur, dir) {
while ((cur = cur[dir]) && cur.nodeType !== 1) {}
return cur;
}
屬實(shí)不知道這個(gè)函數(shù)想表達(dá)什么
while ((cur = cur[dir]) && cur.nodeType !== 1) {}
return cur;
}
屬實(shí)不知道這個(gè)函數(shù)想表達(dá)什么
2017-11-23
var remaining = Math.max(0, startTime + options.duration - createTime())
var temp = remaining / options.duration || 0;
var percent = 1 - temp;
var temp = remaining / options.duration || 0;
var percent = 1 - temp;
2017-11-16
兩方方法都是利用異步收集同步的代碼,區(qū)別就是一個(gè)是靠定時(shí)器,一個(gè)是靠動(dòng)畫自身,所以在精確度上來(lái)說(shuō)顯然是動(dòng)畫自身控制是最合理的。好比我們?nèi)ッ嬖嚕嬖嚬僦灰屆恳粋€(gè)面試完畢的人去通知后面的人繼續(xù)進(jìn)來(lái)面試一樣,如此反復(fù)
2017-11-16
_queueHooks: function(elem, type) {
var key = type + "queueHooks";
return data_priv.get(elem, key) || data_priv.access(elem, key, {
empty: jQuery.Callbacks("once memory").add(function() {
data_priv.remove(elem, [type + "queue", key]);
})
});
}
var key = type + "queueHooks";
return data_priv.get(elem, key) || data_priv.access(elem, key, {
empty: jQuery.Callbacks("once memory").add(function() {
data_priv.remove(elem, [type + "queue", key]);
})
});
}
2017-11-16
while (dataTypes[0] === "*") {
dataTypes.shift();
if (ct === undefined) {
ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
}
}
dataTypes.shift();
if (ct === undefined) {
ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
}
}
2017-11-15