layer扩展打开/关闭动画的方法
1.打开窗口时,支持自定义或者第三方动画
打开layer.js,定位到函数:Class.pt.creat,
找到代码:
//为兼容jQuery3.0的css动画影响元素尺寸计算 if(doms.anim[config.anim]){ varanimClass='layer-anim'+doms.anim[config.anim]; that.layero.addClass(animClass).one('webkitAnimationEndmozAnimationEndMSAnimationEndoanimationendanimationend',function(){ $(this).removeClass(animClass); }); }
修改为(此处只是针对css动画库animate):
//为兼容jQuery3.0的css动画影响元素尺寸计算 if(doms.anim[config.anim]){ varanimClass='layer-anim'+doms.anim[config.anim]; that.layero.addClass(animClass).one('webkitAnimationEndmozAnimationEndMSAnimationEndoanimationendanimationend',function(){ $(this).removeClass(animClass); }); }else{ //支持自定义的,或者第三方弹出动画 varanimClass=config.anim; varanimated='animated'; that.layero.addClass(animated); that.layero.addClass(animClass).one('webkitAnimationEndmozAnimationEndMSAnimationEndoanimationendanimationend',function(){ $(this).removeClass(animClass); $(this).removeClass(animated); }); }
至此,layer便可支持其他弹出动画。
2.关闭窗口时,支持自定义或者第三方动画(layer.open时需传入新增参数:closeAnim)
打开layer.js
定位到函数:Class.pt.config
新增参数:
closeAnim:'layer-anim-close',
定位到函数: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); }
定位函数到: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('webkitAnimationEndmozAnimationEndMSAnimationEndoanimationendanimationend',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扩展打开/关闭动画的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。