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 验证上传图片大小[客户端]
Aug 01 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
Aug 15 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
Jun 07 Javascript
js简易版购物车功能
Jun 17 Javascript
Vue2.0 实现单选互斥的方法
Apr 13 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
10款实用的PHP开源工具
2015/10/23 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
JSON Web Tokens的实现原理
2017/04/02 Python
python实现倒计时小工具
2019/07/29 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
Farnell德国:电子元器件供应商
2018/07/10 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
学期自我评价
2014/01/27 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
学籍证明模板
2015/06/18 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
浅析Django接口版本控制
2021/06/26 Python