php和jquery ui弹出框,JavaScript_jQuery弹出框代码封装DialogHelper,看了jQueryUI Dialog的例子,效果 - phpStudy...
jQuery弹出框代码封装DialogHelper
看了jQueryUI Dialog的例子,效果还不错,就是用起来有点儿别扭,写出的代码有点拧巴,需要再封装一下!于是就有了下面这个简单的DialogHelper辅助类,因为这篇文章分享的重点是思路,所以目前版本的代码也还非常粗糙。思路对了,后续再封装成什么样都不过是形式而已,希望这个思路能给大家点启迪,同时欢迎大家开拓思维,提出更好的改进意见。
//require ScrollHelper.js
function DialogHelper() {
var _this = this;
var doc = window.document;
_this.maskDiv = null;
_this.contentDiv = null;
var options = {
opacity: 0.4
};
this.popup = function (contentdiv, optionArg) {
if (optionArg) {
for (var prop in optionArg) {
options[prop] = optionArg[prop];
}
}
_this.contentDiv = contentdiv || _this.contentDiv;
_this.maskDiv = $('
_this.maskDiv.addClass('MaskDiv');
_this.maskDiv.css({
'filter': "Alpha(opacity=" + ( options.opacity - "0" ) * 100 + ");",
'opacity': options.opacity,
'display': 'block'
});
$(doc.body).append(_this.maskDiv);
if (_this.contentDiv) {
$(doc.body).append(_this.contentDiv);
_this.contentDiv.show();
_this.contentDiv.draggable({
containment: "document",
cursor: 'move',
handle: ".Dialog_Head"
});
$(_this.maskDiv).on("mousemove", function() {
$("body").preventScroll();
});
$(_this.maskDiv).on("mouseout", function() {
$("body").liveScroll();
});
if ($(".cke").length == 0 && $(".Dialog_Body").length > 0) {
$(".Dialog_Body").preventOuterScroll();
}
}
};
this.remove = function () {
if (_this.contentDiv) {
_this.contentDiv.remove();
}
if (_this.maskDiv) {
_this.maskDiv.remove();
}
$("body").liveScroll();
};
this.formatPercentNumber = function (value, whole) {
if (isNaN(value) && typeof value === "string") {
if (value.indexOf("%") !== -1) {
value = (value.replace("%", "") / 100) * whole;
} else if (value.indexOf("px") !== -1) {
value = value.replace("px", "");
}
}
return Math.ceil(value);
};
this.position = function (dialog, dialogBody, minusHeight) {
dialog = dialog || $(".ShowDialogDiv");
if (dialog[0]) {
var clientWidth = document.documentElement.clientWidth;
var clientHeight = document.documentElement.clientHeight;
var width = _this.formatPercentNumber(dialog.data("position").width, clientWidth) || dialog.width();
var height = _this.formatPercentNumber(dialog.data("position").height, clientHeight) || dialog.height();
width = width < 300 ? 300 : width;
height = height < 450 ? 450 : height;
$(dialog).css({
"width": width + "px",
"height": height + "px",
"top": Math.ceil((clientHeight - height) / 2) + "px",
"left": Math.ceil((clientWidth - width) / 2) + "px"
});
dialogBody = dialogBody || $(".Dialog_Body");
if (dialogBody[0]) {
minusHeight = minusHeight || ($(".Dialog_Head").outerHeight() + $(".Dialog_Foot").outerHeight());
var dialogBodyHeight = height - minusHeight;
dialogBody.height(dialogBodyHeight);
}
}
}
}
var createDialogTemplate = function (optionArg, contentHtml, saveBtnClickHandler) {
var options = {
"Action": "",
"Title": "",
"Width": "50%",
"Height": "50%"
};
if (optionArg) {
for (var prop in optionArg) {
options[prop] = optionArg[prop];
}
}
var newDialog = $("
var DialogHead = $("
$("").html(options.Action + " " + options.Title).appendTo(DialogHead);
var DialogClose = $("").appendTo(DialogHead);
var DialogBody = $("
var DialogFoot = $("
var newDiv = $("
var ActionCancelDiv = $("
DialogClose.on("click", function() {
dialogHelper.remove();
});
ActionCancelDiv.on("click", function() {
dialogHelper.remove();
});
var newA = $("
$("
$("
var ActionSaveDiv = $("
var newB = $("
newB.on('click', function () {
if (typeof saveBtnClickHandler == "function") {
saveBtnClickHandler();
}
});
$("
$("
var minusHeight = DialogHead.outerHeight() + DialogFoot.outerHeight();
newDialog.data("position", {
width: options.Width,
height: options.Height
});
dialogHelper.position(newDialog, DialogBody, minusHeight);
return newDialog;
};
var changeDialogLayout = function(optionArg, dialogObj) {
var options = {
"Width": "70%",
"Height": "90%"
};
if (optionArg) {
for (var prop in optionArg) {
options[prop] = optionArg[prop];
}
}
var DialogBody = $(dialogObj).find(".Dialog_Body");
var DialogHead = $(dialogObj).find(".Dialog_Head");
var DialogFoot = $(dialogObj).find(".Dialog_Foot");
var other = Math.round(DialogBody.css("padding-top").replace(/[a-z]/ig, "")) + Math.round(DialogBody.css("padding-bottom").replace(/[a-z]/ig, ""));
var minusHeight = DialogHead.outerHeight() + DialogFoot.outerHeight() + other;
dialogObj.data("position", {
width: options.Width,
height: options.Height
});
dialogHelper.position(dialogObj, DialogBody, minusHeight);
};
以上就是本文所分享的全部内容了,希望大家能够喜欢。相关阅读:
深入理解Hibernate中的flush机制
php实现四舍五入的方法小结
QTabWidget标签实现双击关闭的方法(推荐)
jquery实现简单的表单验证
jQuery类选择器用法实例
苹果Mac怎么查看系统版本?mac系统版本和配置情况查看教程图文介绍
浅谈javascript中call()、apply()、bind()的用法
Win7系统如何修复IE浏览器?Win7系统修复IE浏览器的方法
Win10系统玩上古卷轴5提示缺少X3DAudio1_7.dll文件的原因及解决方法
php的memcache类分享(memcache队列)
php简单开启gzip压缩方法(zlib.output_compression)
ECHO.js 纯javascript轻量级延迟加载的实例代码
简单的php+mysql聊天室实现方法(附源码)
Javascript 高级手势使用介绍
php和jquery ui弹出框,JavaScript_jQuery弹出框代码封装DialogHelper,看了jQueryUI Dialog的例子,效果 - phpStudy...相关推荐
- jQuery UI dialog实现dialog弹框显示
实现弹框,比较精美的jQuery.ui.*:来实现,弹框显示: jsp页面代码[jqueryuidialog.jsp]: <%@ page language="java" i ...
- jQuery UI Dialog
jQuery UI Dialog是jQuery UI的弹出对话框组件,使用它可以创建各种美观的弹出对话框:它可以设置对话框的标题.内容,并且使对话框可以拖动.调整大小.及关闭:平常主要用来替代浏览嚣自 ...
- 基于 jquery ui 扩展Widget
jQuery UI CSS Framework是jQuery UI中的一个样式框架,可以利用jQuery Theme roller 来生成自己想要的css样式效果.我们可以利用jQuery UI的一些 ...
- 坑爹的jquery ui datepicker
1.坑爹的jquery ui datepicker 竟然不支持选取时分秒,害的我Format半天 期间尝试了bootstrap的ditepicker,但是不起作用,发现被jquery ui 覆盖了, ...
- JQuery ui的旋转器(Spinner)
Spinner可以获取输入框的是否禁用状态. 使用spinner.spinner("option","disabled") 不可用则返回true. 设置是否禁用 ...
- html遮罩提示框代码,基于jQuery实现弹出可关闭遮罩提示框实例代码
jquery CSS3遮罩弹出层动画效果,使用非常简单,就两个标签,里面自定义内容和样式,四种常见效果,懂的朋友还可以修改源代码修改成自己想要的效果 先给大家展示下效果图,如果大家感觉还不错,请参考实 ...
- Jquery UI dialog弹出层插件
必须先下载Jquery UI插件 然后再把下载的文档复制到项目中,可以复制你需要的单个插件 --------------------------------------具体代码如下---------- ...
- Bootstrap警告框、弹出提示层、模态框的js插件效果总结
Bootstrap警告框js插件 经常会在bootstrap项目中遇到警告框.弹出提示层.弹出模态框组件等等场景应用. 使用前准备: 插件使用之前,请先导入如下文件: jquery.min.js bo ...
- 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出
文章目录 目标 代码 0.页面结构 1.新增按钮和弹出表单:结构 2.新增按钮和弹出表单:点击新增弹出表单 3.表单样式 4.表单验证 5.表单的提交和取消功能:接口.mock相关准备 6.表单的提交 ...
最新文章
- 慕课网基于ElasticSearch的找房网实战开发企业级房屋搜索网项目学习心得(一)
- [试卷]古诗文背诵(七年级上学期)
- [NOTE] WindowsLinux常用环境变量
- VSFTPD 服务器 3秒钟搭建
- iOS开发--一步步教你彻底学会『iOS应用间相互跳转』
- C# 异步TCP Socket聊天室(1服务器,N客户端)
- 软件测试相关英文单词整理
- Python第三方库大全
- datastore java_Android 使用DataStore存储数据
- 2018这类程序员工资最高!年薪50万只能算一般
- Hbuilder We're sorry
- 每日一诗词 —— 将进酒
- HC-05蓝牙模块简易说明
- 静态网网页设计成品下载
- 分布式架构项目的衡量指标及其目标
- 使用BL0942 计量芯片获取计量数据
- js创建二维数组小坑
- ZOJ 3898 Stean (求旋转体体积与面积)
- 中国人工晶状体行业运行态势分析及发展战略规划建议报告2022-2028年版
- css基础属性(HTML的入门2)