最近封装上瘾,想起以前做的一个轻巧的弹出框,是样式和脚本分离的,于是重新封装了一下,把样式标签统一到js里了。里面还有一些问题,但不影响使用,有兴趣的同学,可以参考完善下,有好的建议,请不吝赐教。
var PopDialogDefaultConfig = { hasCover: true, //是否带遮罩层 colorOfCover: "#000", //遮罩层颜色 transparencyOfCover: 80, //遮罩层透明度(alpha值,opacity值通过换算得到) borderColor: "blue", //边框标题背景颜色 titleHeight: 50, //标题高度 titleFont: '24px "Microsoft Yahei"', //标题字体 titleFontSize: 24, //标题文字大小 titleColor: "white", //标题文字颜色 titleFontFamily: "Microsoft Yahei", //标题字体 contentWidth: 560, //内容框宽度 contentHeight: 480, //内容框的高度 borderWidth: 2, //边框宽度 backColor: "#EC90F6", //背景色 serial: 1, //序列号 moveAble: true, //是否可以鼠标拖动 /* * 配置文件合并 */ Merge: function (newConfig) { var result = {}; for (var p in this) { result[p] = this[p]; if (typeof (this[p]) != " function ") { for (var q in newConfig) { if (p == q) { result[p] = newConfig[q]; } } } } return result; }};function PopDialog(content, title, obj, popDialogConfig) { content = content || "这里什么都没有!"; title = title || "提示"; obj = obj || $(document.body); var dialog = new Object; /* * 弹出框的默认样式 */ var config = PopDialogDefaultConfig.Merge(popDialogConfig); /* * 根据配置文件和弹出对象,取得弹出框的html串; */ if (!obj.id) { obj.id = "pop" + config.serial; PopDialogDefaultConfig.serial++; } var opacity = (100 - config.transparencyOfCover) / 100; var width = config.contentWidth + config.borderWidth * 2; var height = config.contentHeight + config.borderWidth + config.titleHeight; dialog.Html = '<div id="' + obj.id + '_Cover" style="background-color: ' + config.colorOfCover + ';width:100%;height:100%;position:absolute;filter: alpha(opacity=' + config.transparencyOfCover + ');opacity:' + opacity + ';top:0;left:0;"></div>' + '<div id="' + obj.id + '_Dialog" style="background-color:' + config.borderColor + ';position:absolute;width: ' + width + 'px;height: ' + height + 'px;top:calc(50% - ' + height / 2 + 'px);left:calc(50% - ' + width / 2 + 'px);">' + ' <div id="' + obj.id + '_Top" style="height:' + config.titleHeight + 'px;line-height:' + config.titleHeight + 'px;display:block;width:100%;background-color:' + config.borderColor + ';clear:both;vertical-align:middle">' + ' <span id="' + obj.id + '_Title" style="display:inline-block;font-size:' + config.titleFontSize + 'px;padding-left:10px;color:' + config.titleColor + ';">' + (title || "提示") + '</span>' + ' <a style="display:block;float:right;text-decoration: none;margin-right:20px;clear:right;color:white;font-size:' + config.titleHeight * 8 / 10 + 'px;" href="#" onclick="$(\'#' + obj.id + '_Dialog\').remove();$(\'#' + obj.id + '_Cover\').remove();">X</a>' + ' </div>' + ' <div id="' + obj.id + '_Body" style="background-color:' + config.backColor + ';width:' + config.contentWidth + 'px;height:' + config.contentHeight + 'px;border:' + config.borderWidth + 'px solid ' + config.borderColor + ';">' + ' <div id="' + obj.id + '_Content" style="background-color:' + config.backColor + ';">' + content + '</div>' + ' </div>' + '</div>'; dialog.Config = config; dialog.PopDom = $(dialog.Html); dialog.x = dialog.x1 = dialog.y = dialog.y1 = dialog.mousekey = 0; /* * 鼠标拖动弹出框 */ if (config.moveAble) { var top = dialog.PopDom.find("#" + obj.id + "_Top"); top.on("mousedown", function (event) { dialog.mousekey = 1; $(this).css("cursor", "move"); dialog.PopDom.find("#" + obj.id + "_Content").css("display", "none"); }); top.on("mouseup", function (event) { dialog.mousekey = 0; $(this).css("cursor", "default"); dialog.PopDom.find("#" + obj.id + "_Content").css("display", ""); }); top.on("mouseout", function (event) { dialog.mousekey = 0; $(this).css("cursor", "default"); dialog.PopDom.find("#" + obj.id + "_Content").css("display", ""); }); top.on("mousemove", function (event) { if (dialog.mousekey == 1) { if (dialog.x != 0 || dialog.y != 0) { dialog.x = event.pageX - dialog.x1; dialog.y = event.pageY - dialog.y1; var parent = $(this.parentElement); parent.css("left", (parent.position().left + dialog.x) + "px"); parent.css("top", (parent.position().top + dialog.y) + "px"); dialog.x = dialog.x1 = event.pageX; dialog.y = dialog.y1 = event.pageY; } else { dialog.x = dialog.x1 = event.pageX; dialog.y = dialog.y1 = event.pageY; } } else { dialog.x = dialog.x1 = dialog.y = dialog.y1 = 0; } return false; }); } return dialog;};/* * 拓展jquery对象的方法; */(function ($) { /* * 关闭弹出框的方法 */ $.fn.ClosePopDialog = function () { var obj = this; while (obj) { var popdialog = $("#" + this.id + "_Dialog"); if (popdialog) { popdialog.remove(); } var popcover = $("#" + this.id + "_Cover"); if (popcover) { popcover.remove(); } obj = obj.parent; } }; /* * 根据url取得内容并弹出框显示的方法 * url: 需要显示的内容的url * popDialogConfig: 自定义样式 * Example: $(document.body).PopDialog("/home/login", { backColor: "gray", borderColor: "blue", borderWidth: 2, contentWidth: 600, contentHeight: 480 }); */ $.fn.PopDialogByUrl = function (url, title, popDialogConfig) { var obj = $(this); obj.ClosePopDialog(); if (url) { $.ajax({ url: url, cache: false, success: function (result) { if (result == "[]" || result == "") { result = "系统忙,请稍后再试!"; } var pop = new PopDialog(result, title, this, popDialogConfig); obj.append(pop.PopDom); }, error: function (result) { if (result == "[]" || result == "") { result = "系统错误,请联系管理员!"; } var pop = new PopDialog(result, title, this, popDialogConfig); obj.append(pop.PopDom); } }); } }; /* * 弹出框显示提供的内容的方法 * content: 需要显示的内容 * popDialogConfig: 自定义样式 * Example: $(document.body).PopDialog("<div>这是一个弹出框的例子!</div>", { backColor: "gray", borderColor: "blue", borderWidth: 2, contentWidth: 600, contentHeight: 480 }); */ $.fn.PopDialogByContent = function (content, title, popDialogConfig) { var obj = $(this); obj.ClosePopDialog(); var pop = new PopDialog(content, title, this, popDialogConfig); obj.append(pop.PopDom); };})(jQuery);

要构建一个功能强大且用户体验良好的网站,仅靠HTML是不够的,还需要以下技术:JavaScript赋予网页动态和交互性,通过操作DOM实现实时变化。CSS负责网页的样式和布局,提升美观度和用户体验。现代框架和库如React、Vue.js和Angular,提高开发效率和代码组织结构。

布尔属性是HTML中的特殊属性,不需要值即可激活。1.布尔属性通过存在与否控制元素行为,如disabled禁用输入框。2.它们的工作原理是浏览器解析时根据属性的存在改变元素行为。3.基本用法是直接添加属性,高级用法可通过JavaScript动态控制。4.常见错误是误以为需要设置值,正确写法应简洁。5.最佳实践是保持代码简洁,合理使用布尔属性以优化网页性能和用户体验。

HTML代码可以通过在线验证器、集成工具和自动化流程来确保其清洁度。1)使用W3CMarkupValidationService在线验证HTML代码。2)在VisualStudioCode中安装并配置HTMLHint扩展进行实时验证。3)利用HTMLTidy在构建流程中自动验证和清理HTML文件。

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具