关于Layer弹出框初探

  layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护、不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力。目前,layer已成为国内最多人使用的web弹层组件GitHub自然Stars3000+,官网累计下载量达20w+,大概有15万Web平台正在使用layer。

<html>
    <head>
        <title>弹窗效果</title>
    </head>
    <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
    <script src="layer/layer.js"></script>
    <style>
        .buttonValue{width:100%;display:inline-block;padding-top:20px;padding-bottom:20px;border-bottom:2px solid #666;}
        .buttonValue li{float:left;min-width:100px;height:50px;margin-left:20px;padding:0 10px;line-height:50px;font-size:16px;text-align:center;border-radius:10px;background-color:#666;color:#fff;cursor:pointer;}
        .buttonValue li:hover{background-color:#f54372;}

        //自定义样式一
        body .demo-class1 .layui-layer-title{background:#c00; color:#fff; border: none;}
        body .demo-class1 .layui-layer-btn{border-top:1px solid #E9E7E7;padding:10px;}
        body .demo-class1 .layui-layer-btn a{background:#333;}
        body .demo-class1 .layui-layer-btn .layui-layer-btn1{background:#999;}

        //自定义样式二
        body .demo-class2 .layui-layer-title{background:#c00; color:#0f0; border: none;}
        body .demo-class2 .layui-layer-btn{border-top:1px solid #E9E7E7;padding:10px;}
        body .demo-class2 .layui-layer-btn a{background:#333;}
        body .demo-class2 .layui-layer-btn .layui-layer-btn1{background:#666;}
        //加上body是为了保证优先级。你可以借助Chrome调试工具,定义更多样式控制层更多的区域
    </style>
    <body>
        <ul class="buttonValue type">
            <li rel="1">弹出框</li>
            <li rel="2">弹出框(信息层)</li>
            <li rel="3">弹出框(页面层)</li>
            <li rel="4">弹出框(iframe层)</li>
            <li rel="5">弹出框(加载层)</li>
            <li rel="6" id="id">弹出框(tips层)</li>
        </ul>

        <ul class="buttonValue skin">
            <li rel="1">样式(自定义全局)</li>
            <li rel="2">样式(自定义单个)</li>
            <li rel="3">样式(layui-layer-lan)</li>
            <li rel="4">样式(layui-layer-molv)</li>
        </ul>

        <ul class="buttonValue area">
            <li rel="1">宽高(默认)</li>
            <li rel="2">宽高(自定义)</li>
        </ul>

        <ul class="buttonValue offset">
            <li rel="1">坐标(左上)</li>
            <li rel="2">坐标(右上)</li>
            <li rel="3">坐标(左下)</li>
            <li rel="4">坐标(右下)</li>
            <li rel="5">坐标(居中)</li>
            <li rel="6">坐标(任意位置)</li>
        </ul>

        <ul class="buttonValue iconMse">
            <li rel="0">消息图标(提示信息)</li>
            <li rel="1">消息图标(成功信息-对勾)</li>
            <li rel="2">消息图标(错误信息-叉)</li>
            <li rel="3">消息图标(确认信息)</li>
            <li rel="4">消息图标(锁定信息)</li>
            <li rel="5">消息图标(失败信息-笑脸)</li>
            <li rel="6">消息图标(成功信息-沮丧)</li>
        </ul>

        <ul class="buttonValue iconLoad">
            <li rel="1">加载图标(0)</li>
            <li rel="2">加载图标(1)</li>
            <li rel="3">加载图标(2)</li>
        </ul>

        <ul class="buttonValue closeBtn">
            <li rel="0">关闭按钮(0)</li>
            <li rel="1">关闭按钮(1)</li>
            <li rel="2">关闭按钮(2)</li>
        </ul>

        <ul class="buttonValue shade">
            <li rel="1">遮罩层(默认)</li>
            <li rel="2">遮罩层(0)</li>
            <li rel="3">遮罩层(0.5)</li>
            <li rel="4">遮罩层(0.5,#393D49)</li>
        </ul>

        <ul class="buttonValue shadeClose">
            <li rel="false">遮罩层关闭(默认)</li>
            <li rel="true" value="遮罩层必须存在">遮罩层关闭(点击空白关闭)</li>
        </ul>

        <ul class="buttonValue anim">
            <li rel="0">动画(0)</li>
            <li rel="1">动画(1)</li>
            <li rel="2">动画(2)</li>
            <li rel="3">动画(3)</li>
            <li rel="4">动画(4)</li>
            <li rel="5">动画(5)</li>
            <li rel="6">动画(6)</li>
        </ul>

        <script>
            $(".type li").click(function(){
                var rel = $(this).attr("rel");
                switch(rel){
                    case "1" :
                        layer.open({
                            type:0,
                            title: [‘hello Layer‘, ‘font-size:14px;‘],
                            content: ‘传入任意的文本或html‘,//这里content是一个普通的String
                            skin: ‘layui-layer-lan‘,//目前layer内置的skin有:layui-layer-lan、layui-layer-molv
                            area: [‘500px‘, ‘300px‘],//遮罩层区域大小
                            shade: 0.5,//遮罩层透明度
                            shadeClose: true,//是否点击遮罩关闭
                            time: 5000,//自动关闭时间
                            maxmin: true,//最大最小化
                            id: ‘popup‘,//设置该值后,不管是什么类型的层,都只允许同时弹出一个。一般用于页面层和iframe层模式
                        });
                        break;

                    case "2" :
                        layer.open({
                            type:0,
                            title: ‘信息层‘,
                            content: ‘type = 0‘,
                        });
                        break;
                    case "3" :
                        layer.open({
                            type:1,
                            title: ‘页面层‘,
                            content: ‘type = 1‘,
                        });
                        break;
                    case "4" :
                        layer.open({
                            type:2,
                            title: ‘iframe层‘,
                            content: ‘http://www.baidu.com‘ //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: [‘http://www.baidu.com‘, ‘no‘],
                        });
                        break;
                    case "5" :
                        layer.open({
                            type:3,
                            title: ‘加载层‘,
                            content: ‘type = 3‘,
                        });
                        break;
                    case "6" :
                        layer.open({
                            type:4,
                            title: ‘tips层‘,
                            content: [‘tips层‘, ‘#id‘] //数组第二项即吸附元素选择器或者DOM
                        });
                        break;
                }
            });

            $(".skin li").click(function(){
                //单个使用
                //layer.open({
                //    skin: ‘demo-class2‘
                //});
                //全局使用。即所有弹出层都默认采用,但是单个配置skin的优先级更高
                layer.config({
                  skin: ‘demo-class1‘
                })
                var rel = $(this).attr("rel");
                switch(rel){
                    case "1" :
                        layer.open({
                            type:0,
                            title: ‘skin‘,
                            content: ‘demo-class1‘
                        });
                        break;
                    case "2" :
                        layer.open({
                            type:0,
                            title: ‘skin‘,
                            content: ‘demo-class2‘,
                            skin: ‘demo-class2‘
                        });
                        break;
                    case "3" :
                        layer.open({
                            type:0,
                            title: ‘skin‘,
                            content: ‘layui-layer-lan‘,
                            skin: ‘layui-layer-lan‘//目前layer内置的skin有:layui-layer-lan、layui-layer-molv
                        });
                        break;
                    case "4" :
                        layer.open({
                            type:0,
                            title: ‘skin‘,
                            content: ‘layui-layer-molv‘,
                            skin: ‘layui-layer-molv‘//目前layer内置的skin有:layui-layer-lan、layui-layer-molv
                        });
                        break;
                }
            });

            $(".area li").click(function(){
                var rel = $(this).attr("rel");
                switch(rel){
                    case "1" :
                        layer.open({
                            type:0,
                            title: ‘area‘,
                            content: ‘auto‘
                        });
                        break;
                    case "2" :
                        layer.open({
                            type:0,
                            title: ‘area‘,
                            content: ‘500px 300px‘,
                            area: [‘500px‘, ‘300px‘]
                        });
                        break;
                }
            });

            $(".offset li").click(function(){
                var rel = $(this).attr("rel");
                switch(rel){
                    case "1" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘左上‘,
                            offset:‘lt‘
                        });
                        break;
                    case "2" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘右上‘,
                            offset:‘rt‘
                        });
                        break;
                    case "3" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘左下‘,
                            offset:‘lb‘
                        });
                        break;
                    case "4" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘右下‘,
                            offset:‘rb‘
                        });
                        break;
                    case "5" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘居中‘
                        });
                        break;
                    case "6" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘auto‘,
                            offset:[‘100px‘,‘100px‘]
                        });
                        break;
                }
            });

            $(".iconMse li").click(function(){
                var rel = $(this).attr("rel");
                layer.open({
                    type: 0,
                    title: ‘icon‘,
                    content: ‘信息框:‘+rel,
                    icon: parseInt(rel)
                });
            });

            $(".iconLoad li").click(function(){
                var rel = $(this).attr("rel");
                layer.open({
                    type: 3,
                    icon: parseInt(rel)
                });
            });

            $(".closeBtn li").click(function(){
                var rel = $(this).attr("rel");
                layer.open({
                    type: 0,
                    title: ‘closeBtn‘,
                    content: ‘关闭按钮‘,
                    closeBtn: parseInt(rel)
                });
            });

            $(".shade li").click(function(){
                var rel = $(this).attr("rel");
                switch(rel){
                    case "1" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘遮罩层auto‘
                        });
                        break;
                    case "2" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘遮罩层0‘,
                            shade:0
                        });
                        break;
                    case "3" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘遮罩层0.5‘,
                            shade:0.5
                        });
                        break;
                    case "4" :
                        layer.open({
                            type:0,
                            title: ‘offset‘,
                            content: ‘遮罩层[0.8, #393D49]‘,
                            shade:[0.8, ‘#393D49‘]
                        });
                        break;
                }
            });

            $(".shadeClose li").click(function(){
                var rel = $(this).attr("rel");
                var b = false;
                if(rel == "true"){
                    b = true;
                }
                layer.open({
                    type: 0,
                    title: ‘shadeClose‘,
                    content: ‘关闭按钮‘+rel,
                    shadeClose: b,
                    shade:0.5
                });
            });

            $(".anim li").click(function(){
                var rel = $(this).attr("rel");
                layer.open({
                    type: 0,
                    title: ‘anim‘,
                    content: ‘弹出框出现动画‘+rel,
                    anim: parseInt(rel)
                });
            });
        </script>
    </body>
</html>

  源码下载地址:http://pan.baidu.com/s/1c2iOmK4     提取码:39zm

时间: 2024-10-25 01:44:02

关于Layer弹出框初探的相关文章

针对jquery绑定click事件执行两次,layer弹出框,以及img的map属性应用。

前不久使用jQuery与layer实现一个弹出框,发现在绑定弹出框事件时,事件执行了两次,准确的说是方法同时注册了两次,不分先后执行了两遍,导致弹出框弹出两次.请教同事后,发现原因有可能是jQuery的js与layer的js冲突(具体原因还需要深入了解),通过网络和请教同事,得到了三种处理方法. 方法一:不采用jQuery进行事件的绑定,直接在标签中添加onclick事件. 方法二:采用这种方式$("#item_add_button")[0].onclick = function(){

layer弹出框初体验

今天有需要用到了layer弹出框,要求:制作一个如图所示的弹出框: 首先,查看官方文档,官方演示讲解文档,链接: 关于皮肤设置拓展,链接: 使用layer.alert(),默认标题是"信息",还有配色不符合我的要求, 所以着手改标题和皮肤 标题用title:'';控制,因为是局部改变,直接在内部使用skin:'';在layer.css加上自定义的标题背景色,和按钮色 默认的弹窗框大小需要修改,用area['280px','150px'];控制,但是按钮会跑到框外,于是改为area['2

layer弹出框

layer: 下载js和layer库 弹出框类型: 警告: 对话框: 框架: //弹出窗口 $(document).ready(function(){ $("#login").click(function(){ $.layer({ type: 2, title: false, fix: false, border : [5, 0.3, '#666', true], offset: ['100px',''], area: ['300px','100px'], iframe: {src:

layer弹出框中icon数字参数说明

icon参数为0,如下代码: layer.msg('请选择要编辑的机构', {icon: 0}); 运行结果如图: icon参数为1,如下代码: layer.msg('请选择要编辑的机构', {icon: 1}); icon参数为2,如下代码: layer.msg('请选择要编辑的机构', {icon: 2}); 运行结果如图: icon参数为3,如下代码: layer.msg('请选择要编辑的机构', {icon: 3}); 运行结果如图: icon参数为4,如下代码: layer.msg('

弹出框layer的使用封装

layer弹出框官方网址:http://layer.layui.com/ layer常用方法的封装:layerTool.jsp layer.config({ extend: 'extend/layer.ext.js', //注意,目录是相对layer.js根目录.如果加载多个,则 [a.js, b.js, …] shift: 0//默认动画风格 }); function Layer(){} ; Layer.prototype = { toplayer : window.top.layer , /

layer弹出层详解

前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的). layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,layer已成为国内最多人使用的web弹层组件,GitHub自然Stars3000+,官网累计下载量达30w+,大概有20万Web平台正在使用layer. 具体请

layer弹出信息框API

首先向大家推荐layer,在这里也非常感谢贤心的贡献,非常不错的信息框及弹出层解决方案,为一些项目的前端开发提高了很大的效率,希望layer 越办越好! 下面是API,呵呵,官方抄袭过来的,为了自己看着方便. layer API之键值(仅在需要时配置,未配置的会用默认) 键 : 值 描述 skin : 0 层的皮肤编号,值为整数型.目前默认只提供一种皮肤,当你按照样式规则新增皮肤时(详见skin/layer.css),你可配置该参数. type : 0, 层的类型.0:信息框(默认),1:页面层

jQuery layer[页面弹出框]

常见接口如下: 方法名 描述 $.layer({}) 核心接口,参数是一个对象,对象属性参见上述列表.诸如layer.alert()之类的为$.layer()的包装方法. layer.v 获取版本号. layer.ready(callback) layer中的样式文件装载完毕后执行的方法,一般用于页面加载时调用layer,这样可避免样式未加载即调用层导致的错乱. 示例: layer.ready(function(){ layer.msg('Hello Layer'); }); layer.ale

弹出框关闭图标在火狐和谷歌下生效,在IE11下不生效处理

1.问题描述: 如下图弹出框,卸载码为第一个弹出框,检索设备为第二个弹出框,第二个弹出框的关闭图标"X"在火狐和谷歌下生效,点击可以关闭弹出框,而在IE11下点击不生效,无法关闭弹出框. 2.解决思路: 不兼容IE,在IE下console下会报错,所以考虑给关闭图标加上一个"点击事件". 二种处理方式: 一.首先,获取该iframe层的times值(times值是变化的,初次是2,页面没重新加载的再点击就依次加1) var index=$(window.parent