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 相关文章推荐
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
深入探究使JavaScript动画流畅的一些方法
Jun 30 Javascript
详解JavaScript函数对象
Nov 15 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
JS平滑无缝滚动效果的实现代码
May 06 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
js 连续赋值的简单实现
Jun 13 Javascript
js,jq,css多方面实现简易下拉菜单功能
May 13 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
Mar 19 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
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
substr()函数中文版
2006/10/09 PHP
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
php商品对比功能代码分享
2015/09/24 PHP
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
在Django框架中编写Context处理器的方法
2015/07/20 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python文件的读写和异常代码示例
2017/10/31 Python
使用numba对Python运算加速的方法
2018/10/15 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
外语系毕业生找工作的求职信
2013/11/28 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
迎新生欢迎词
2015/01/23 职场文书