Layx——网页弹窗最佳选择.

开源文档地址

开源地址:https://gitee.com/monksoul/LayX

文档地址:http://baisoft.gotoip11.com/layx/doc/

前言

大家好,我叫百小僧,是一名C#开发工程师,同时也擅长多种程序语言。平时的工作都是开发企业管理系统(ERP、CRM)。目前企业管理系统更多都是C/S架构的,而且C/S架构多窗口处理数据更加灵活。刚好公司为了顺应潮流将现有的企业管理系统采用全新B/S架构全新开发,我们最初的想法是在B/S结构界面中采用类似浏览器多标签页模式进行设计,但是交给客户试用时大部分都否决了,这些客户一致认为客户端多窗口操作模式比较好。所以还得按照传统C/S模式进行开发。

然而,目前网页弹窗使用最多的 layer插件没能满足我们的期望或者说没有达到C/S架构多窗口应有的水平。所以,本人利用五一放假期间亲自操刀。

两天后,Layx诞生了...

为什么起名叫 Layx 呢?其实很简单,层的英文是layer,但是目前已经有一个非常成熟的layer插件了,那我得起个牛逼的名字:LayerX——也就是比 layer 更加牛X的意思* ^ *。最后琢磨琢磨着发现名字还是有点长,也有点趁layer热度的赶脚,所以干脆去掉了er,直接叫 LayX.

功能介绍

Layx 是一款纯原生Javascript编写的网页弹窗插件,完全模仿Windows 10操作系统窗口进行设计开发。

目前Layx具备以下功能

  • 支持文本窗口、页面窗口(iframe)
  • 支持最大化、最小化、恢复、关闭、置顶功能
  • 支持窗口拖动及四个方向拖动控制
  • 支持8个方向的窗口拖曳改变大小(上,右,下,左,左上,左下,右上,右下)
  • 窗口最小宽度、最大宽度控制
  • 窗口焦点激活控制
  • 支持窗口阴影控制
  • 窗口自动记录上次位置
  • 支持双击标题切换窗口
  • 支持拖曳窗口到顶部自动最大化、最大化拖曳自动恢复正常窗口
  • 支持MDI多级嵌套窗口
  • 支持窗口外观控制(背景颜色、透明度、边框颜色、状态栏等)
  • 支持窗口图标自定义、操作按钮自定义
  • 支持窗口之间相互通讯
  • 支持窗口操作监听(最小化监听、最大化监听、恢复监听、置顶监听、拖动监听、改变大小监听、加载监听等)
  • 支持窗口打开初始化位置控制(中间,左上、右上、左下、右下、自定义上边和左边)
  • 支持窗口阻隔、遮罩
  • 支持自动获取iframe页面标题填充窗口标题
  • 支持窗口状态拦截器,可以拦截窗口所有操作功能
  • 支持窗口加载提示控制
  • 兼容IE9+、Chrome、Edge、FF、Opera等现代主流浏览器

未来拥有的功能远不止这些...

配置参数

// layx 默认配置参数

    var defaults = {
        id: ‘layx‘, // 唯一id
        icon: ‘‘, // 图标,设置false不启用,这里支持html代码
        title: ‘‘, // 窗口标题
        bgColor: ‘#fff‘, // 背景颜色,iframe页面背景为透明有效
        borderColor: ‘#3baced‘, // 边框颜色
        opacity: 1, // 透明度
        type: ‘iframe‘, // 窗口类型:支持iframe,alert,confirm,error,load,prompt
        url: ‘‘, // iframe类型地址,type=iframe 时有效
        content: ‘‘, // 非iframe类型内容,支持text,html
        width: 800, // 初始化宽度
        height: 600, // 初始化高度
        loaddingText: ‘内容加载中...‘, // 内容加载文本内容,支持html
        position: ‘center‘, // 初始化位置,支持‘center‘, ‘lt‘, ‘rt‘, ‘lb‘, ‘rb‘以及 [top,left]数组
        useFrameTitle: false, // 是否自动获取iframe页面标题填充窗口标题
        minWidth: 150, // 拖曳大小最小宽度
        minHeight: 150, // 拖曳大小最大宽度
        shadable: false, // 是否启用窗口阻隔
        alwaysOnTop: false, // 是否总是置顶
        pinable: false, // 是否显示图钉按钮,当 alwaysOnTop为true的时候,pinable自动显示
        minimizable: true, // 是否允许最小化
        maximizable: true, // 是否允许最大化
        closable: true, // 是否允许关闭
        resizable: true, // 是否允许拖曳大小
        // 拖曳方向控制
        resizeLimit: {
            t: true, // 是否允许上边拖曳大小,true允许
            r: true, // 是否允许右边拖曳大小,true允许
            b: true, // 是否允许下边拖曳大小,true允许
            l: true, // 是否允许左边拖曳大小,true允许
            lt: true, // 是否允许左上边拖曳大小,true允许
            rt: true, // 是否允许右上边拖曳大小,true允许
            lb: true, // 是否允许左下边拖曳大小,true允许
            rb: true // 是否允许右下边拖曳大小,true允许
        },
        movable: true, // 是否允许拖动窗口
        // 拖动窗口显示,vertical为true表示禁止水平拖动,horizontal为true表示禁止垂直拖动
        moveLimit: {
            vertical: false, // 是否禁止垂直拖动,false不禁止
            horizontal: false, // 是否禁止水平拖动,false不禁止
            leftOut: true, // 是否允许左边拖出,true允许
            rightOut: true, // 是否允许右边拖出,true允许
            topOut: true, // 是否允许上边拖出,true允许,此设置不管是false还是true,窗口都不能拖出窗体
            bottomOut: true, // 是否允许下边拖出,true允许
        },
        statusBar: false, // 是否显示状态栏
        focusable: true, // 是否启用iframe页面点击置顶
        // scaleAnimatable: false, // 是否启用窗口缩放动画,开发中....
        allowTitleDblclickToRestore: true, // 是否允许标题双击恢复窗体
        // parent: null, // 父窗体id,设置此选项时,窗体将在窗体内部页面打开(MDI模式)并和父窗口共用同一个生命周期;注意:只支持非跨域页面。开发中...
        // menuItems: [], // 自定义顶部下拉菜单,支持无限极,开发中....
        // 拦截器,可以监听窗口各个状态
        intercept: {
            // iframe页面加载监听
            load: {
                // 加载之前,return false;禁止加载
                before: function(windowDom, winform) {},
                // 加载之后
                after: function(windowDom, winform, iframe) {}
            },
            // 最小化监听
            min: {
                // 最小化之前,return false;禁止最小化
                before: function(windowDom, winform) {},
                // 最小化之后
                after: function(windowDom, winform) {}
            },
            // 最大化监听
            max: {
                // 最大化之前,return false;禁止最大化
                before: function(windowDom, winform) {},
                // 最大化之后
                after: function(windowDom, winform) {}
            },
            // 恢复监听
            restore: {
                // 恢复之前,return false;禁止恢复
                before: function(windowDom, winform) {},
                // 恢复之后
                after: function(windowDom, winform) {}
            },
            // 关闭监听
            destroy: {
                // 关闭之前,return false;禁止关闭
                before: function(windowDom, winform) {},
                // 关闭之后
                after: function(windowDom, winform) {}
            },
            // 置顶监听
            pin: {
                // 置顶之前,return false;禁止操作
                before: function(windowDom, winform) {},
                // 置顶之后
                after: function(windowDom, winform) {}
            },
            // 移动窗口监听
            move: {
                // 移动之前
                before: function(windowDom, winform) {},
                // 移动中
                moveing: function(windowDom, winform) {},
                // 移动结束
                after: function(windowDom, winform) {}
            },
            // 拖曳窗口大小监听
            resize: {
                // 移动之前
                before: function(windowDom, winform) {},
                // 移动中
                resizing: function(windowDom, winform) {},
                // 移动结束
                after: function(windowDom, winform) {}
            }
        }
    };

  

原文地址:https://www.cnblogs.com/baisoft/p/8996356.html

时间: 2024-10-11 16:50:59

Layx——网页弹窗最佳选择.的相关文章

网站收录特别差?robots文本文件里加入网站地图,站内优化最佳选择!

网站收录特别差?robots文本文件里加入网站地图,站内优化最佳选择! 在讨论这个话题之前,我们先来了解一下robots的概念和制作: robots文本概念:这个文件主要是给搜索引擎看的,搜索引擎在进入网站时,首先会访问FTP服务器里的robots.txt文本,你需要在文本里设置推荐给搜索引擎看的网页或者目录,以及拒绝搜索引擎收录的网页或者目录(拒绝这一项是我们经常做的). 重要的一点:robots文本制作好后,一定是放在FTP的根目录.(类似:http://domain.com/robots.

铁板烧, 板烧滋味是聚会聚餐最佳选择

铁板烧, 板烧滋味是聚会聚餐最佳选择 带领你的家人去板烧滋味去吃铁板烧吗?那里会有你想不到的,超出意外的美食!小型铁板烧餐厅赚钱么,为了能让顾客可以尝到新鲜和美味的佳肴,我们从世界各地搜集最绿色.最新鲜的食物.铁板烧的食材有哪些,挑选食材,制作的过程,认真的搭配合理的搭配每一道步骤都很精细.最新鲜的食物. 快年了,孩子们都想吃点好吃的,现在的社会平时想吃好吃的家长都给孩子们买了.家庭铁板烧的做法,可是我家的调皮小孩在电视上看见铁板烧的广告嚷着想吃自己做的铁板烧肉肉,我哪里会做啊?路边铁板烧视频,

网页取消禁止选择、复制功能

有些网页为防止文本被复制,则经常在网页禁止浏览用户进行选择.拷贝等操作.如下即为如何取消网页设定的禁止用户选择.复制操作的方法: 1.快捷键[Ctrl + S],将网页另存为网页文件(html.htm等): 2.使用文本编辑工具(例如:sublime.notepad++.notepad)打开上述保存的文件,搜索"onselectstart"."onbeforecopy"."oncopy"."onselect"等文本,如下所示:

js实现弹窗后选择信息填入text标签中以及需要注意的问题

下面是完整的代码对应两个网页 主网页代码 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="utf-8" /> 6 <title>window弹窗</title> 7 </head> 8 9 <body> 10 编号: 11 <input type="text" id="numId" /

毫秒必争,前端网页性能最佳实践

你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应速度,对自己的网站更有信心. 最佳实践 最佳实践我们引用的来自yahoo前端性能团队总结的35条黄金定律.原文猛击这里.下面我们分门别类将每条的关键点总结一下. 网页内容 减少http请求次数 减少DNS

毫秒必争,前端网页性能最佳实践--转载

转载,原文地址:http://www.cnblogs.com/developersupport/p/webpage-performance-best-practices.html#httprequest 你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应

哪款Linux发行版是你的最佳选择呢?

想选择最适合你需要的Linux发行版,首先要确定你是属于哪一种类型的Linux用户. 我认为,在桌面上运行Linux的最大优点之一在于,选择多多.Linux爱好者可以享用一系列广泛的桌面环境.文件管理器.终端.GTK与Qt软件,当然还有Linux发行版本身. 可是话又说回来,所有这些选择似乎让人目不暇接.不知所措.试图从其他平台换成Linux的普通人被相互冲突的建议搞得晕头转向,常常只会导致信息过载.我在本文中将介绍几条有所帮助的指导准则,拔开重重迷雾.我会根据你的要求.而不是别人的要求来支招,

网页弹窗居中显示

让网页中的一个弹窗居中显示 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta htt

自学》2.网页弹窗计算商品价格

/// <summary> /// Goods 是商品类 /// </summary> public class Goods { public Goods() { // // TODO: 在此处添加构造函数逻辑 // } public Goods(string name, decimal priceDecimal) { this.PriceDecimal = priceDecimal; this.Name = name; } public Goods(string name, de