layer弹出层(Layerjs:让弹出层变得更简单)

Layer.js:让弹出层变得更简单

弹出层是我们在进行页面开发时经常会用到的一个组件,譬如说当我们需要展示某个商品详情、进行登录验证或者是提示用户一些操作的确认时,都可能需要通过弹出层的形式来实现。

在过去,通过手写JS或者一些库来实现弹出层的逻辑是一件比较困难、繁琐的事情,但是现在,有了Layer.js这个第三方库的帮助,让我们实现弹出层功能变得更简单。

首先,介绍一下Layer.js的基本用法

使用Layer.js,我们只需要先在head中引入layer.js文件:



然后就可以通过以下方式来弹出一个层:

layer.open({
  title: '弹窗标题',
  content: '弹窗内容',
  btn: ['按钮一', '按钮二', '按钮三'],
  yes: function(index, layero){
    // 按钮一的回调函数
  },
  btn2: function(index, layero){
    // 按钮二的回调函数
    return false; //如果需要阻止关闭,那么实现该函数并返回false
  },
  btn3: function(index, layero){
    // 按钮三的回调函数
  },
  cancel: function(){ 
    // 点击右上角 X 取消时的回调函数
  }
});

如上代码所示,一个最基本的弹出层,需要我们定义标题、内容,以及按钮的样式和回调函数等信息,其中,btn、yes、btn2、btn3这些属性表示了弹出层中的按钮以及它们对应的回调函数。

其次,Layer.js的高级用法

除了上述基本功能之外,Layer.js还提供了丰富的高级功能,满足我们对弹出层进行更多的个性化定制。

1. 自定义层的样式

通过设置area属性可以控制层的大小,同时,我们还可以通过设置skin属性来自定义弹出层的样式。

layer.open({
  title: false, //去掉默认标题
  type: 1, //弹出层类型
  skin: 'custom-layer',
  area: ['500px', '300px'],
  shade: [0.7, '#000'], //遮罩层颜色和透明度
  content: '弹窗内容',
  closeBtn: 1, //右上角关闭按钮
  btn: ['确定', '取消'],
  yes: function(index, layero) {
    // 点击“确定”按钮的回调函数
  }
});

通过设置skin属性的值,我们可以自定义弹出层的样式,代码中的.custom-layer,对应的就是我们在CSS中设置的弹出层样式:

.layui-layer.custom-layer {
  background-color: #eee!important; /*修改背景颜色*/
  border-radius: 5px!important; /*圆角边框*/
  box-shadow: 0px 0px 10px #aaa!important; /*阴影效果*/
  overflow: hidden!important; /*内容超出隐藏*/
}

2. 弹出层类型

除了基本的弹出层类型之外,Layer.js还支持自定义弹出层类型,其中最常用的就是iframe类型以及加载层类型。

2.1 iframe类型

通过type=2来指定iframe类型的弹出层:

layer.open({
  title: '弹窗标题',
  type: 2, //弹出层类型
  area: ['600px', '400px'],
  content: 'http://www.example.com',
});

代码中的content属性可以定义想要打开的iframe页面的URL地址。

2.2 加载层类型

我们经常会在一些数据加载较慢的情况下,使用Layer.js的加载层提示用户正在加载数据,避免用户的等待时间浪费。

layer.msg('加载中,请稍候...', {
  icon: 16, //加载层的一个icon
  shade: [0.5, '#000'], //半透明黑色背景
  time: 2000 //至少显示2秒
});

代码中的layer.msg表示弹出一个消息框,其中通过设置icon属性的值来指定该消息框的样式,16表示加载层图标,其它数字对应不同的样式和icon。time属性表示弹出层的时间,单位为毫秒。

3. 对弹出层进行定位

有时候我们会需要对弹出层进行定位,Layer.js也提供了该功能,我们可以通过offset属性来对弹出层进行定位。

layer.open({
  title: '弹窗标题',
  type: 1, //弹出层类型
  offset: 't', //定位方式:上
  content: '弹出层内容',
  area: ['500px', '300px'],
  btn: ['确定', '取消'],
  yes: function(index, layero) {
    // 点击“确定”按钮的回调函数
  }
});

代码中的offset属性表示定位方式,t表示在弹出层上方进行定位。

总结

Layer.js提供了非常简单、直观、易用的API和丰富的扩展功能,极大地减少了我们在弹出层开发中代码的编写量和开发时间,同时还保证了弹出层的高度定制化,非常适合中小型项目。

值得注意的是,弹出层本身是比较占用空间的,不宜在一个页面中多次嵌套使用,容易导致页面加载缓慢或页面出现问题,因此需要根据用户需求来选择使用场景。

本文标题:layer弹出层(Layerjs:让弹出层变得更简单) 本文链接:http://www.cswwyl.com/meiwei/21079.html

注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意

< 上一篇 launchpad(Launchpad - Empowering Startups to Reach Great Heights)
下一篇 > lbe安全大师(LBE安全守护,给你行走于云端的信心与底气)