亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何寫一個通用的JavaScript效果庫!(2/2)

 更新時間:2007年04月12日 00:00:00   作者:  
在上個隨筆中貼出了效果庫的整體框架,和一個簡單的opacity插件. 今天這個隨筆主要是擴展其他常用
效果插件,畢竟框架只能是個空殼,內容還是要自己充實。
如果看過了我上篇的實現細節(jié),這里就不多說廢話了,來段代碼先:
復制代碼 代碼如下:

/**//****************************************************/ 
// 移動, 這里是move to  就是移動到 x,y 當然,大家也可以再擴展一個move by  移動x個象素 
Effect.Init.move=function(effect){   //初始化 
    if (effect.options.x!==undefined || effect.options.y!==undefined){         
        var pos=Position.cumulativeOffset(effect.element); 
        effect.setting.left       =pos[0]; 
        effect.setting.top          =pos[1]; 
        effect.setting.position =effect.element.style.position;      
        effect.element.style.position    ="absolute" 
        effect.options.x=(effect.options.x===undefined)?effect.setting.left:effect.options.x; 
        effect.options.y=(effect.options.y===undefined)?effect.setting.top :effect.options.y;                         
    } 

Effect.Fn.move=function(effect,pos){     //效果 
    if (effect.options.x===undefined && effect.options.y===undefined) return         
    effect.element.style.left=effect.setting.left + (effect.options.x-effect.setting.left) * pos +"px"; 
    effect.element.style.top =effect.setting.top  + (effect.options.y-effect.setting.top ) * pos +"px"; 

/**//****************************************************/ 

/**//****************************************************/ 
// zoom   by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
Effect.Init.zoom=function(effect){     
    effect.setting.zoom      =effect.element.style.zoom || 1; 
    // firefox 不支持 css的 zoom 用  改變 width,height的方式代替  
    if (effect.options.zoom!==undefined && navigator.userAgent.toLowerCase().indexOf('firefox') != -1){                     
        effect.options.w=effect.element.offsetWidth  * effect.options.zoom; 
        effect.options.h=effect.element.offsetHeight * effect.options.zoom;     
    } 

Effect.Fn.zoom=function(effect,pos){ 
    if (effect.options.zoom===undefined) return; 
    effect.element.style.zoom=effect.setting.zoom+(effect.options.zoom-effect.setting.zoom)*pos 

/**//****************************************************/ 
/**//****************************************************/ 
// size  同上,是 size to, 改變到指定大小 by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
Effect.Init.size=function(effect){ 
    if (effect.options.w!==undefined || effect.options.h!==undefined){ 
        effect.setting.overflow   =effect.element.style.overflow || 'visible'; 
        effect.setting.width      =effect.element.offsetWidth; 
        effect.setting.height      =effect.element.offsetHeight;  
        effect.element.style.overflow ="hidden"     
        effect.options.w=(effect.options.w===undefined)?effect.setting.width :effect.options.w; 
        effect.options.h=(effect.options.h===undefined)?effect.setting.height:effect.options.h;             
    } 

Effect.Fn.size=function(effect,pos){     
    if (effect.options.w===undefined && effect.options.h===undefined) return; 
    effect.element.style.width =effect.setting.width + (effect.options.w-effect.setting.width ) * pos +"px"; 
    effect.element.style.height=effect.setting.height+ (effect.options.h-effect.setting.height) * pos +"px"; 

/**//****************************************************/ 
/**//****************************************************/ 
// 背景色 by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
Effect.Init.bgcolor=function(effect){ 
    if (effect.options.bgcolor!==undefined && /^\#?[a-f0-9]{6}$/i.test(effect.options.bgcolor)){ 
        var color =effect.element.style.backgroundColor || "#ffffff"; 
        //FireFox 下,即使css樣式設置背景為 #ffffff格式,但程序取到的是 rgb(255,255,255)格式, 這里把他轉化為 #ffffff格式 
        if (/rgb/i.test(color)){               // "rgb(255, 0, 255)" 
            //var arr=color.replace(/[rgb\(\s\)]/gi,"").split(",") 
            var arr=eval(color.replace("rgb","new Array"))        
            color="#"+Number(arr[0]).toColorPart()+Number(arr[1]).toColorPart()+Number(arr[2]).toColorPart() 
        } 
        effect.setting.bgcolor=color 
    } 

Effect.Fn.bgcolor=function(effect,pos){     
    if (effect.options.bgcolor===undefined) return; 
    var c1=effect.setting.bgcolor,c2=effect.options.bgcolor 
    var arr1=[parseInt(c1.slice(1,3),16),parseInt(c1.slice(3,5),16),parseInt(c1.slice(5),16)] 
    var arr2=[parseInt(c2.slice(1,3),16),parseInt(c2.slice(3,5),16),parseInt(c2.slice(5),16)] 
    var r=Math.round(arr1[0]+(arr2[0]-arr1[0])*pos) 
    var g=Math.round(arr1[1]+(arr2[1]-arr1[1])*pos) 
    var b=Math.round(arr1[2]+(arr2[2]-arr1[2])*pos) 
    effect.element.style.backgroundColor="#"+r.toColorPart()+g.toColorPart()+b.toColorPart() 

/**//****************************************************/ 
/**//****************************************************/ 
// 透明度,這個上個貼過了   by Go_Rush(阿舜) from http://ashun.cnblogs.com/ 
Effect.Init.opacity=function(effect){ 
    if (effect.options.opacity===undefined) return; 
    effect.setting.opacity=Opacity(effect.element);     

Effect.Fn.opacity=function(effect,pos){ 
    if (effect.options.opacity===undefined) return; 
    Opacity(effect.element,effect.setting.opacity+(effect.options.opacity-effect.setting.opacity)*pos);     

/**//****************************************************/ 

這里 effect.setting 是非常有用而且非常重要的冬冬,所有的通過options傳進來自定義函數都可以
通過effect.setting來獲取element最初的設置。 在很多場合,我們需要在 options 中傳一個 onComplete
函數進來, 用來在效果執(zhí)行完畢后,打掃戰(zhàn)場,恢復一些設置。
這些效果是可以重疊的,大家可以看看下面我寫的例子。
寫了十來個例子,應該很詳細了。
完整的,可調試代碼和例子如下:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

相關文章

  • JS實現淡入淡出圖片效果的方法分析

    JS實現淡入淡出圖片效果的方法分析

    這篇文章主要介紹了JS實現淡入淡出圖片效果的方法,結合實例形式分析了js鼠標響應實現圖片淡入淡出效果的原理與相關實現技巧,需要的朋友可以參考下
    2016-12-12
  • 兩種js監(jiān)聽滾輪事件的實現方法

    兩種js監(jiān)聽滾輪事件的實現方法

    下面小編就為大家?guī)硪黄獌煞Njs監(jiān)聽滾輪事件的實現方法。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • js實現3D圖片環(huán)展示效果

    js實現3D圖片環(huán)展示效果

    本文主要介紹了js實現3D圖片環(huán)展示效果的實例,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • javascript中return,return true,return false三者的用法及區(qū)別

    javascript中return,return true,return false三者的用法及區(qū)別

    這篇文章主要介紹了javascript中return,return true,return false三者的用法及區(qū)別的相關資料,需要的朋友可以參考下
    2015-11-11
  • js中的this關鍵字詳解

    js中的this關鍵字詳解

    this是Javascript語言的一個關鍵字它代表函數運行時,自動生成的一個內部對象,只能在函數內部使用,下面分四種情況,詳細討論this的用法,感興趣的朋友可以了解下
    2013-09-09
  • JS 將偽數組轉換成數組的實現示例

    JS 將偽數組轉換成數組的實現示例

    這篇文章主要介紹了JS 將偽數組轉換成數組,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • JavaScript的基礎語法和數據類型詳解

    JavaScript的基礎語法和數據類型詳解

    這篇文章主要介紹了JavaScript的基礎語法和數據類型,保姆級的詳細教程,萬字長文詳細的列出了JavaScript的各種語法,建議收藏系列,希望可以有所幫助
    2021-09-09
  • JavaScript獲取鍵盤按鍵的鍵碼(參照表)

    JavaScript獲取鍵盤按鍵的鍵碼(參照表)

    JS獲取鍵盤按鍵的鍵碼event.keyCode,記錄-方便查找。需要的朋友參考下本教程吧
    2017-01-01
  • 圖片旋轉、鼠標滾輪縮放、鏡像、切換圖片js代碼

    圖片旋轉、鼠標滾輪縮放、鏡像、切換圖片js代碼

    這篇文章主要為大家介紹了圖片旋轉、鼠標滾輪縮放、鏡像、切換圖片js代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JS數組方法slice()用法實例分析

    JS數組方法slice()用法實例分析

    這篇文章主要介紹了JS數組方法slice()用法,結合實例形式分析了JavaScript數組slice()方法具體功能、用法及相關操作注意事項,需要的朋友可以參考下
    2020-01-01

最新評論