看了jQueryUI Dialog的例子,效果還不錯,就是用起來有點彆扭,寫出的程式碼有點擰巴,需要再封裝一下!於是就有了下面這個簡單的DialogHelper輔助類,因為這篇文章分享的重點是思路,所以目前版本的程式碼也還非常粗糙。思路對了,後續再封裝成什麼樣都不過是形式而已,希望這個思路能給大家點啟迪,同時歡迎大家開拓思維,提出更好的改進意見。
//需要ScrollHelper.js
函數 DialogHelper() {
var _this = this;
var doc = window.document;
_this.maskDiv = null;
_this.contentDiv = null;
var 選項 = {
不透明度:0.4
};
this.popup = function (contentdiv, optionArg) {
if (optionArg) {
for (optionArg 中的 var prop) {
options[prop] = optionArg[prop];
}
}
_this.contentDiv = 內容div || _this.contentDiv;
_this.maskDiv = $('
_this.maskDiv.addClass('MaskDiv');
_this.maskDiv.css({
'filter': "Alpha(opacity=" ( options.opacity - "0" ) * 100 ");",
'不透明度': options.opacity,
'顯示': '阻止'
});
$(doc.body).append(_this.maskDiv);
if (_this.contentDiv) {
$(doc.body).append(_this.contentDiv);
_this.contentDiv.show();
_this.contentDiv.draggable({
遏止:「文件」,
遊標:'移動式',
把手:「.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 (值, 整體) {
if (isNaN(value) && typeof value === "string") {
if (value.indexOf("%") !== -1) {
value = (value.replace("%", "") / 100) * 整體;
} else if (value.indexOf("px") !== -1) {
value = value.replace("px", "");
}
}
return Math.ceil(值);
};
this.position = function (dialog,dialogBody,minusHeight){
對話方塊=對話方塊|| $(".ShowDialogDiv");
if (對話方塊[0]) {
var clientWidth = document.documentElement.clientWidth;
var clientHeight = document.documentElement.clientHeight;
var width = _this.formatPercentNumber(dialog.data("position").width, clientWidth) ||對話框.width();
var height = _this.formatPercentNumber(dialog.data("position").height, clientHeight) ||對話框.height();
寬度=寬度 高度=高度 $(對話方塊).css({
“寬度”:寬度“px”,
“高度”:高度“px”,
"上": Math.ceil((clientHeight - 高度) / 2) "px",
"左": Math.ceil((clientWidth - 寬度) / 2) "px"
});
對話主體 = 對話主體 || $(".Dialog_Body");
if (dialogBody[0]) {
減高度 = 減少高度 || ($(".Dialog_Head").outerHeight() $(".Dialog_Foot").outerHeight()))
;
;
;
;
;
;
;
;
;
;
; vardialogBodyHeight = 高度 - minusHeight;
dialogBody.height(dialogBodyHeight);
}
}
}
}
var createDialogTemplate = function (optionArg, contentHtml, saveBtnClickHandler) {
var 選項 = {
“行動”:””,
“標題”:“”,
“寬度”:“50%”,
「高度」:「50%」
};
if (optionArg) {
for (optionArg 中的 var prop) {
options[prop] = optionArg[prop];
}
}
var newDialog = $("
var DialogHead = $("
$("").html(options.Action " " options.Title).appendTo(DialogHead);
var DialogClose = $("").appendTo(DialogHead);
var DialogBody = $("
var DialogFoot = $("
$("
var ActionSaveDiv = $("
var newB = $("
newB.on('點選', function () {
if (typeof saveBtnClickHandler == "函數") {
saveBtnClickHandler();
}
});
$("
$("
var minusHeight = DialogHead.outerHeight() DialogFoot.outerHeight();
newDialog.data("位置", {
寬度:選項.寬度,
高度:選項.高度
});
dialogHelper.position(newDialog, DialogBody, minusHeight);
返回新對話框;
};
var changeDialogLayout = function(optionArg,dialogObj) {
var 選項 = {
“寬度”:“70%”,
「高度」:「90%」
};
if (optionArg) {
for (optionArg 中的 var prop) {
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("位置", {
寬度:選項.寬度,
高度:選項.高度
});
dialogHelper.position(dialogObj, DialogBody, minusHeight);
};
以上就是本文所分享的全部內容了,希望大家能夠喜歡。

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver Mac版
視覺化網頁開發工具