当前位置: > > > layer - 简单好用的Web弹出层组件使用详解2(询问框、loading层、tip提示)

layer - 简单好用的Web弹出层组件使用详解2(询问框、loading层、tip提示)

四、询问框、确认框(confirm)

这种类型的提示框有点类似系统的 confirm,它除了有“确定”按钮外,还有个“取消”按钮。

1,基本用法

layer.confirm('确定要删除吗?', function(index){
  //点击确定后的回调
  //do something

  layer.close(index);
});

2,修改提示框的标题

layer.confirm('确定要删除吗?', {title:'我是标题'}, function(index){
  //点击确定后的回调
  //do something

  layer.close(index);
});

3,带有图标的提示

layer.confirm('确定要删除吗?', {icon: 0}, function(index){
  //点击确定后的回调
  //do something

  layer.close(index);
});

4,取消按钮点击回调

layer.confirm('确定要删除吗?', function(index){
  //点击确定后的回调
  //do something

  layer.close(index);
}, function(index){
  //点击取消后的回调
  //do something

  layer.close(index);
});

5,修改按钮文字

layer.confirm('确定要删除吗?', {
   btn: ['按钮1', '按钮2']
}, function(index){
  layer.msg("点击了第一个按钮");
}, function(index){
  layer.msg("点击了第二个按钮");
});

6,设置多个按钮

layer.confirm('确定要删除吗?', {
   btn: ['按钮1', '按钮2', '按钮3', '按钮4'],
   area: '450px',
   btn3: function(index, layero){
     layer.msg("点击了第三个按钮");
   },
   btn4: function(index, layero){
     layer.msg("点击了第四个按钮");
   },
}, function(index){
  layer.msg("点击了第一个按钮");
}, function(index){
  layer.msg("点击了第二个按钮");
});

7,综合使用

layer.confirm('确定要删除吗?', {
  title: '我是标题',
  icon: 3,
  btn: ['按钮1', '按钮2']
}, function(index){
  //点击第一个按钮后的回调
  //do something
  layer.close(index);
}, function(index){
  //点击第二个按钮后的回调
  //do something
  layer.close(index);
});

五、加载层(load)

加载层常用在 ajax 加载过程中给用户一个 loading 提示。

1,基本用法

注意:load 默认是不会自动关闭的,通常我们需要在 ajax 回调中关闭它。
//显示加载层
var index = layer.load();

//2秒后将其关闭
setTimeout(function(){
  layer.close(index);
}, 2000);

2,样式风格修改

layer 自带了下面三种加载样式,根据传入的值(0~2)自动改变,如果是 0 的话可以不用传。
//样式1
layer.load();

//样式2
layer.load(1);

//样式3
layer.load(2);

3,定时自动关闭

//2秒钟后自动关闭
layer.load(0, {time: 2*1000});

六、tip 提示层(tips)

tips 层有点类似于前面介绍的 msg,它同样会自动消失。不同的是,tips 层会智能定位,即灵活地判断它应该出现在哪里。

1,基本用法

tips 层默认是在元素右边弹出。下面样例当页面打开时,自动在 id username 的输入框右侧显示一个 tip 提示。
<script>
  window.onload = function() {
    layer.tips('用户名必须填写!', '#username');
  }
</script>

<input id="username" type="text" style="height:35px;">

2,修改显示位置

//提示tip在元素上方
layer.tips('用户名必须填写!', '#username', {tips: 1});

//提示tip在元素右侧
layer.tips('用户名必须填写!', '#username', {tips: 2});

//提示tip在元素下方
layer.tips('用户名必须填写!', '#username', {tips: 3});

//提示tip在元素左侧
layer.tips('用户名必须填写!', '#username', {tips: 4});


3,修改背景颜色

layer.tips('用户名必须填写!', '#username', {tips: [2,'#0FA6D8']});

4,同时显示多个 tips

默认情况下当显示新的 tips 时,之前的 tips 会自动销毁(其它类型的提示框也是一样)。我们可以通过 tipsMore: true 这个配置允许多个 tips 同时存在。
layer.tips('这是右侧的tips', '#username');
layer.tips('这是上方的tips', '#username', {tips:1, tipsMore: true});

5,修改自动消失的时间

layer.tips('用户名不能为空', '#username', {time: 2000}); //改成2秒(默认为3秒)

6,不自动消失

通过 time: 0 配置可以取消 tips 的自动关闭功能。下面样例,当鼠标移到输入框上时 tips 提示会一直显示,而鼠标移出后 tips 自动消失。
var index;

$("#username").on({
    mouseover : function(){
        var that = this;
        //鼠标移入自动显示tips
        index = layer.tips('用户名不能为空', that, {time: 0}); //不自动关闭
    } ,
    mouseout : function(){
        //鼠标移出自动关闭tips
        layer.close(index);
    }
}) ;
评论0