亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery彈出框代碼封裝DialogHelper

2019-11-20 13:16:33
字體:
來源:轉載
供稿:網友

看了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 = $('<div>');
        _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 = $("<div class='ShowDialogDiv' id='Dialog_" + options.Title + "'>");
    var DialogHead = $("<div class='Dialog_Head'>").appendTo(newDialog);
    $("<span class='HeadLabel'>").html(options.Action + " " + options.Title).appendTo(DialogHead);
    var DialogClose = $("<span class='DialogClose'>").appendTo(DialogHead);
    var DialogBody = $("<div class='Dialog_Body'>").html(contentHtml).appendTo(newDialog);
    var DialogFoot = $("<div class='Dialog_Foot'>").appendTo(newDialog);
    var newDiv = $("<div class='Right'>").appendTo(DialogFoot);
    var ActionCancelDiv = $("<div class='ActionButtonContainer' title='Cancel'>").appendTo(newDiv);
    DialogClose.on("click", function() {
        dialogHelper.remove();
    });
    ActionCancelDiv.on("click", function() {
        dialogHelper.remove();
    });
    var newA = $("<div class='ActionButton' id='ActionButtonCancel'>").appendTo(ActionCancelDiv);
    $("<div class='Icon Cancel'>").appendTo(newA);
    $("<div class='Title IconTitle'>").html("Cancel").appendTo(newA);
    var ActionSaveDiv = $("<div class='ActionButtonContainer' title='Save'>").appendTo(newDiv);
    var newB = $("<div class='ActionButton ActionButtonAttention' id='ActionButtonSave'>").appendTo(ActionSaveDiv);
    newB.on('click', function () {
        if (typeof saveBtnClickHandler == "function") {
            saveBtnClickHandler();
        }
    });
    $("<div class='Icon Save'>").appendTo(newB);
    $("<div class='Title IconTitle SaveButton'>").html("Save").appendTo(newB);
    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);
};

以上就是本文所分享的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色中色综合影院手机版在线观看| 久久频这里精品99香蕉| 亚洲天堂av综合网| 久久成人18免费网站| 九九热精品视频在线播放| 最近2019年好看中文字幕视频| 2024亚洲男人天堂| 日韩精品在线免费观看视频| 欧美成人免费大片| 亚洲一区av在线播放| 午夜精品久久久久久99热软件| 精品无码久久久久久国产| 精品久久久久久久久久久久久久| 91精品国产一区| 2019中文字幕在线观看| 久久久国产精品免费| 91在线免费观看网站| 不卡在线观看电视剧完整版| 国产91色在线| 亚洲精品91美女久久久久久久| 国产午夜精品免费一区二区三区| 在线精品国产欧美| 亚洲一区二区三区视频播放| 不卡av电影在线观看| 亚洲免费精彩视频| 久久久久国产精品免费| 日韩在线观看精品| 国产一区香蕉久久| 98精品国产高清在线xxxx天堂| 亚洲专区在线视频| 精品精品国产国产自在线| 美女av一区二区| 日本精品性网站在线观看| 欧美日韩亚洲视频一区| 中文字幕国产精品| 欧美日韩亚洲一区二区| 夜夜躁日日躁狠狠久久88av| 国产91精品视频在线观看| 亚洲精品电影网| 国产成人免费91av在线| 亚洲国产一区自拍| 国产成人精品一区二区| 欧美黑人xxxⅹ高潮交| 久久久久久久久久久免费精品| 国产美女主播一区| 茄子视频成人在线| 久久精品成人一区二区三区| 欧美激情欧美激情| 日韩在线视频免费观看高清中文| 一区二区三区视频观看| 中文字幕亚洲综合久久筱田步美| 成人免费在线视频网站| 91精品国产亚洲| 精品久久久久久久中文字幕| 亚洲色图五月天| 欧美黑人xxxⅹ高潮交| 日韩成人中文字幕在线观看| 久久精品视频在线播放| 日韩欧亚中文在线| 亚洲精品自拍第一页| 97在线免费观看视频| 中文字幕精品—区二区| 亚洲欧洲激情在线| 亚州精品天堂中文字幕| 亚洲在线视频福利| 日韩av一区在线观看| 色婷婷综合成人av| 不卡av在线播放| 亚洲自拍欧美另类| 久久久久国产精品www| 亚洲精品久久久一区二区三区| 美女福利精品视频| 亚洲福利在线看| 国产欧美 在线欧美| 欧美在线一级va免费观看| 国产91精品在线播放| 国产又爽又黄的激情精品视频| 久久综合久久八八| 成人综合网网址| 国产69精品99久久久久久宅男| 国产成人精品免高潮在线观看| 97久久精品人搡人人玩| 欧日韩在线观看| 国产不卡一区二区在线播放| 久久久精品亚洲| 一区二区三区日韩在线| 国产精品91一区| 欧美精品www在线观看| 亚洲经典中文字幕| 97免费在线视频| 日本中文字幕久久看| 亚洲最大成人在线| 亚洲欧美日韩中文在线制服| 亚洲激情视频网站| 久久人人爽人人爽爽久久| 97国产在线视频| 日韩免费精品视频| 搡老女人一区二区三区视频tv| 国产一区二区三区在线观看网站| 欧美性xxxx极品高清hd直播| 亚洲老头同性xxxxx| 午夜剧场成人观在线视频免费观看| 日韩电影免费观看在线| 孩xxxx性bbbb欧美| 欧美高清无遮挡| 久久视频在线观看免费| 色爱精品视频一区| 精品精品国产国产自在线| 不卡av电影在线观看| 色与欲影视天天看综合网| 国产成人精品综合| 久青草国产97香蕉在线视频| 91在线播放国产| 久久久久久综合网天天| 日韩欧美国产视频| 欧美视频在线观看 亚洲欧| 久久99精品久久久久久琪琪| 美女啪啪无遮挡免费久久网站| 亚洲美女视频网站| 亚洲一区二区三区视频| 91中文字幕在线| 欧美自拍视频在线| 国产啪精品视频网站| 亚洲黄色有码视频| 国产在线观看精品一区二区三区| 亚洲精品电影久久久| 久久久噜噜噜久久中文字免| 亚洲欧美综合图区| 国产精品入口日韩视频大尺度| 91亚洲精品在线| 亚洲自拍偷拍网址| 粉嫩av一区二区三区免费野| 亚洲欧洲午夜一线一品| 日韩欧美国产激情| 97福利一区二区| 国产精品户外野外| 蜜月aⅴ免费一区二区三区| 不卡伊人av在线播放| 成人97在线观看视频| 国产精品视频免费观看www| 日韩中文字幕视频在线观看| 久久久免费精品视频| 欧美日韩成人在线观看| 91成人国产在线观看| 亚洲美女精品成人在线视频| 国产精品福利在线观看| 欧美精品999| 色黄久久久久久| 欧美大肥婆大肥bbbbb| 亚洲韩国日本中文字幕| 欧美第一淫aaasss性| 久久精品精品电影网| 中文字幕亚洲一区在线观看| 亚洲综合中文字幕68页| 久久久久久久香蕉网| 亚洲国产欧美一区二区三区同亚洲| 色噜噜久久综合伊人一本| 久久久精品中文字幕| 色综合色综合网色综合| 国产精品福利网站| 亚洲最新av在线| 亚洲va男人天堂| 成人福利视频网| 精品国产福利视频|