有沒有一個地方可以看到實際的代碼以及如何構建JQuery方法?例如,如何編碼fadeIn()和slideUp()方法?我希望它用於學習/學習的目的,我試着查看JQuery.js文件,這是難以閱讀的方式。然後,我嘗試去和閱讀這裏:在哪裏可以找到JQuery方法的實際代碼?
http://code.jquery.com/jquery-2.0.3.js
但我無法找到的效果基本show和淡入方法的實際代碼。
有沒有一個地方可以看到實際的代碼以及如何構建JQuery方法?例如,如何編碼fadeIn()和slideUp()方法?我希望它用於學習/學習的目的,我試着查看JQuery.js文件,這是難以閱讀的方式。然後,我嘗試去和閱讀這裏:在哪裏可以找到JQuery方法的實際代碼?
http://code.jquery.com/jquery-2.0.3.js
但我無法找到的效果基本show和淡入方法的實際代碼。
如果你看一下代碼,你會看到效果基本show和淡入方法是通過動態創建:
jQuery.each({
slideDown: genFx("show"),
slideUp: genFx("hide"),
slideToggle: genFx("toggle"),
fadeIn: { opacity: "show" },
fadeOut: { opacity: "hide" },
fadeToggle: { opacity: "toggle" }
}, function(name, props) {
jQuery.fn[ name ] = function(speed, easing, callback) {
return this.animate(props, speed, easing, callback);
};
});
如上所述,這些只是使用jQuery的animate功能快捷方法。對於上面jQuery.each方法內部的每個屬性,該值都作爲props參數傳遞,並傳遞給this.animate的props字段。 genFx返回一個帶有屬性的對象,以便以相同的方式工作。您可能想要像@ Kyle所描述的那樣檢查動畫函數和genFx函數,以便更好地瞭解這些函數發生了什麼。
我相信這是它(這是鏈接的文件中,將張貼此作爲一個評論,但它太難以破解):
// Generate shortcuts for custom animations
jQuery.each({
slideDown: genFx("show"),
slideUp: genFx("hide"),
slideToggle: genFx("toggle"),
fadeIn: { opacity: "show" },
fadeOut: { opacity: "hide" },
fadeToggle: { opacity: "toggle" }
}, function(name, props) {
jQuery.fn[ name ] = function(speed, easing, callback) {
return this.animate(props, speed, easing, callback);
};
});
genFx是指這個方法(效果基本show \下):
// Generate parameters to create a standard animation
function genFx(type, includeWidth) {
var which,
attrs = { height: type },
i = 0;
// if we include width, step value is 1 to do all cssExpand values,
// if we don't include width, step value is 2 to skip over Left and Right
includeWidth = includeWidth? 1 : 0;
for(; i < 4 ; i += 2 - includeWidth) {
which = cssExpand[ i ];
attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
}
if (includeWidth) {
attrs.opacity = attrs.width = type;
}
return attrs;
}
我猜它調用了其他方法,涵蓋了常見的功能。這是我發現的唯一的聲明。
這是因爲fadeIn和slideUp方法調用動畫方法 –
它就在那裏,它只是僞裝 - 搜索'fadeIn'並仔細查看。 –