layer擴展打開/關閉動畫的方法
1. 打開窗口時,支持自定義或者第三方動畫
打開layer.js,定位到函數(shù):Class.pt.creat ,
找到代碼:
//為兼容jQuery3.0的css動畫影響元素尺寸計算 if (doms.anim[config.anim]) { var animClass = 'layer-anim ' + doms.anim[config.anim]; that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { $(this).removeClass(animClass); }); }
修改為(此處只是針對css動畫庫animate):
//為兼容jQuery3.0的css動畫影響元素尺寸計算 if (doms.anim[config.anim]) { var animClass = 'layer-anim ' + doms.anim[config.anim]; that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { $(this).removeClass(animClass); }); } else { //支持自定義的,或者第三方彈出動畫 var animClass = config.anim; var animated = 'animated'; that.layero.addClass(animated); that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { $(this).removeClass(animClass); $(this).removeClass(animated); }); }
至此,layer便可支持其他彈出動畫。
2.關閉窗口時,支持自定義或者第三方動畫(layer.open時需傳入新增參數(shù):closeAnim)
打開layer.js
定位到函數(shù):Class.pt.config
新增參數(shù):
closeAnim: 'layer-anim-close',
定位到函數(shù):Class.pt.creat
找到代碼:
//記錄關閉動畫 if (config.isOutAnim) { that.layero.data('isOutAnim', true); }
修改為:
//記錄關閉動畫 if (config.isOutAnim) { that.layero.data('isOutAnim', true); that.layero.data('closeAnim', config.closeAnim); }
定位函數(shù)到:layer.close
找到代碼:
if (layero.data('isOutAnim')) { layero.addClass('layer-anim ' + closeAnim); } $('#layui-layer-moves, #layui-layer-shade' + index).remove(); layer.ie == 6 && ready.reselect(); ready.rescollbar(index); if (layero.attr('minLeft')) { ready.minIndex--; ready.minLeft.push(layero.attr('minLeft')); } if ((layer.ie && layer.ie < 10) || !layero.data('isOutAnim')) { remove() } else { setTimeout(function () { remove(); }, 200); }
修改為:
if (layero.data('isOutAnim')) { if (layero.data("closeAnim") === closeAnim) { layero.addClass('layer-anim ' + closeAnim); } else { layero.addClass(layero.data("closeAnim") + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { $('#layui-layer-moves, #layui-layer-shade' + index).remove(); remove(); }); } } if (layero.data("closeAnim") === closeAnim) { $('#layui-layer-moves, #layui-layer-shade' + index).remove(); layer.ie == 6 && ready.reselect(); ready.rescollbar(index); if (layero.attr('minLeft')) { ready.minIndex--; ready.minLeft.push(layero.attr('minLeft')); } if ((layer.ie && layer.ie < 10) || !layero.data('isOutAnim')) { remove() } else { setTimeout(function () { remove(); }, 200); } }
好啦,關閉也可以支持第三方動畫啦。
以上這篇layer擴展打開/關閉動畫的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
一文詳解JavaScript的事件監(jiān)聽(最新整理)
Web頁面需要經(jīng)常和用戶之間進行交互,而交互的過程中我們可能想要捕捉這個交互的過程,比如用戶點擊了某個按鈕、用戶在輸入框里面輸入了某個文本、用戶鼠標經(jīng)過了某個位置,下面介紹下JavaScript的事件監(jiān)聽,感興趣的朋友一起看看吧2024-01-01JS PHP字符串截取函數(shù)實現(xiàn)原理解析
這篇文章主要介紹了JS PHP字符串截取函數(shù)實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08ionic js 復選框 與普通的 HTML 復選框到底有沒區(qū)別
本文通過實例給大家演示ionic js 復選框 與普通的 HTML 復選框到底有沒區(qū)別的相關知識,非常不錯具有參考借鑒價值,感興趣的朋友一起學習吧2016-06-06javascript:FF/Chrome與IE動態(tài)加載元素的區(qū)別說明
今天在寫一段js時,發(fā)現(xiàn)IE與FF在動態(tài)加載Html元素時,有一些差別,一起過來看看下面的代碼吧2014-01-01js+css 實現(xiàn)遮罩居中彈出層(隨瀏覽器窗口滾動條滾動)
本文為大家詳細介紹下使用js實現(xiàn)遮罩彈出層居中,且隨瀏覽器窗口滾動條滾動,示例代碼如下,感興趣的朋友可以參考下2013-12-12