layer扩展打开/关闭动画的方法


Posted in Javascript onSeptember 23, 2019

1. 打开窗口时,支持自定义或者第三方动画

打开layer.js,定位到函数: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时需传入新增参数: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('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扩展打开/关闭动画的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的标签语句用法分析
Feb 10 Javascript
javascript对象的创建和访问
Mar 08 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
Jul 24 Javascript
使用vue-router设置每个页面的title方法
Feb 11 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 #Javascript
解决layer.confirm快速点击会重复触发事件的问题
Sep 23 #Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 #Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 #Javascript
layui内置模块layim发送图片添加加载动画的方法
Sep 23 #Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 #Javascript
微信小程序如何获取用户头像和昵称
Sep 23 #Javascript
You might like
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
JS随机数产生代码分享
2018/02/24 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
星球大战与Python之间的那些事
2016/01/07 Python
python的多重继承的理解
2017/08/06 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
小学三年级数学教学反思
2014/01/31 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
台风停课通知
2015/04/24 职场文书
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技
PHP 时间处理类Carbon
2022/05/20 PHP