2013-10-10 47 views
1

有沒有一個地方可以看到實際的代碼以及如何構建JQuery方法?例如,如何編碼fadeIn()和slideUp()方法?我希望它用於學習/學習的目的,我試着查看JQuery.js文件,這是難以閱讀的方式。然後,我嘗試去和閱讀這裏:在哪裏可以找到JQuery方法的實際代碼?

http://code.jquery.com/jquery-2.0.3.js

但我無法找到的效果基本show和淡入方法的實際代碼。

+0

這是因爲fadeIn和slideUp方法調用動畫方法 –

+0

它就在那裏,它只是僞裝 - 搜索'fadeIn'並仔細查看。 –

回答

3

如果你看一下代碼,你會看到效果基本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函數,以便更好地瞭解這些函數發生了什麼。

4

我相信這是它(這是鏈接的文件中,將張貼此作爲一個評論,但它太難以破解):

// 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; 
} 

我猜它調用了其他方法,涵蓋了常見的功能。這是我發現的唯一的聲明。

相關問題