自定义插件学习-弹框2

;(function($) {
    $.alerts = {
        verticalOffset: -75,
        horizontalOffset: 100,
        repositionOnResize: true,
        overlayOpacity: 0.50,
        overlayColor: "#FFF",
        draggable: true,
        okButton: "确 定",
        cancelButton: "取 消",
        dialogClass: null,
        alert: function(content, title, callback) {
            if (title == null) {
                title = "OK"
            }
            $.alerts._show(title, content, null, "alert",
            function(e) {
                if (callback) {
                    callback(e)
                }
            })
        },
        confirm: function(content, title, callback) {
            if (title == null) {
                title = "Are you sure"
            }
            $.alerts._show(title, content, null, "confirm",
            function(e) {
                if (callback) {
                    callback(e)
                }
            })
        },
        prompt: function(content, defaulevalue, title, callback) {
            if (title == null) {
                title = "Please enter something"
            }
            $.alerts._show(title, content, defaulevalue, "prompt",
            function(f) {
                if (callback) {
                    callback(f)
                }
            })
        },
        overShow: function(tips, seconds) {
            if (seconds == null) {
                seconds = 3000
            }
            var hide_seconds = seconds + 600;
            $("body").append(‘<div id="over_container" style="display:none"><div id="over_message"></div></div>‘);
            $("#over_message").text(tips).html($("#over_message").text().replace(/\n/g, "<br/>"));
            if ($.alerts.dialogClass) {
                $("#over_container").addClass($.alerts.dialogClass)
            }
            var position_type = ($.browser.msie && parseInt($.browser.version) <= 6) ? "absolute" : "fixed";
            $("#over_container").css({
                position: position_type,
                zIndex: 99999,
                width: 350,
                padding: 0,
                margin: 0
            }).show("fast");
            $("#over_container").css({
                minWidth: $("#over_container").outerWidth(),
                maxWidth: $("#over_container").outerWidth()
            });
            $.alerts._overReposition();

            setTimeout(function() {
                $("#over_container").hide("fast")
            },
            hide_seconds);
            setTimeout(function() {
                $("#over_container").remove()
            },
            hide_seconds)
        },
        _overReposition: function() {
            var top = 4;
            var left = (($(window).width() / 2) - ($("#over_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
            if (top < 0) {
                top = 0
            }
            if (left < 0) {
                left = 0
            }
            if ($.browser.msie && parseInt($.browser.version) <= 6) {
                top = top + $(window).scrollTop()
            }
            if ($.browser.msie && parseInt($.browser.version) <= 6) {
                left = left - 175
            }
            $("#over_container").css({
                top: top + "px",
                left: left + "px"
            });
            $("#popup_overlay").height($(document).height())
        },
        _show: function(title, content, defaulevalue, type, callback) {
            $.alerts._hide();
            $.alerts._overlay("show");
            $("body").append(‘<div id="popup_container" style="display:none"><h1 id="popup_title"></h1><span id="popup_close"></span><div id="popup_content"><div id="popup_message"></div></div></div>‘);
            if ($.alerts.dialogClass) {
                $("#popup_container").addClass($.alerts.dialogClass)
            }
            var i = ($.browser.msie && parseInt($.browser.version) <= 6) ? "absolute" : "fixed";
            $("#popup_container").css({
                position: i,
                zIndex: 99999,
                padding: 0,
                margin: 0
            }).show();
            $("#popup_title").text(title);
            $("#popup_content").addClass(type);
            if (type != "openBox") {
                $("#popup_message").text(content).html($("#popup_message").text().replace(/\n/g, "<br />"))
            }
            $("#popup_container").css({});
            $.alerts._reposition();
            $.alerts._maintainPosition(true);
            switch (type) {
                case "alert":
                    $("#popup_message").after(‘<div id="popup_panel"><input type="button" value="‘ + $.alerts.okButton + ‘" id="popup_ok" /></div>‘);
                    $("#popup_ok").click(function() {
                        $.alerts._hide();
                        callback(true)
                    });
                    $("#popup_ok").focus().keypress(function(h) {
                        if (h.keyCode == 13 || h.keyCode == 27) {
                            $("#popup_ok").trigger("click")
                        }
                    });
                    break;
                case "confirm":
                    $("#popup_message").after(‘<div id="popup_panel"><input type="button" value="‘ + $.alerts.okButton + ‘" id="popup_ok" /> <input type="button" value="‘ + $.alerts.cancelButton + ‘" id="popup_cancel" /></div>‘);
                    $("#popup_ok").click(function() {
                        $.alerts._hide();
                        if (callback) {
                            callback(true)
                        }
                    });
                    $("#popup_cancel").click(function() {
                        $.alerts._hide();
                        if (callback) {
                            callback(false)
                        }
                    });
                    $("#popup_ok").focus();
                    $("#popup_ok, #popup_cancel").keypress(function(h) {
                        if (h.keyCode == 13) {
                            $("#popup_ok").trigger("click")
                        }
                        if (h.keyCode == 27) {
                            $("#popup_cancel").trigger("click")
                        }
                    });
                    break;
                case "prompt":
                    $("#popup_message").append(‘<br /><input type="text" size="30" id="popup_prompt" />‘).after(‘<div id="popup_panel"><input type="button" value="‘ + $.alerts.okButton + ‘" id="popup_ok" /> <input type="button" value="‘ + $.alerts.cancelButton + ‘" id="popup_cancel" /></div>‘);
                    $("#popup_prompt").width($("#popup_message").width() - 10);
                    $("#popup_ok").click(function() {
                        var inputValue = $("#popup_prompt").val();
                        $.alerts._hide();
                        if (callback) {
                            callback(inputValue)
                        }
                    });
                    $("#popup_cancel").click(function() {
                        $.alerts._hide();
                        if (callback) {
                            callback(null)
                        }
                    });
                    $("#popup_prompt, #popup_ok, #popup_cancel").keypress(function(h) {
                        if (h.keyCode == 13) {
                            $("#popup_ok").trigger("click")
                        }
                        if (h.keyCode == 27) {
                            $("#popup_cancel").trigger("click")
                        }
                    });
                    if (defaulevalue) {
                        $("#popup_prompt").val(defaulevalue)
                    }
                    $("#popup_prompt").focus().select();
                    break;
            }
            $("#popup_close").click(function() {
                $.alerts._hide();
                if (callback) {
                    callback()
                }
            });
            if ($.alerts.draggable) {
                try {
                    $("#popup_container").draggable({
                        handle: $("#popup_title")
                    });
                    $("#popup_title").css({
                        cursor: "move"
                    })
                } catch (d) { }
            }
        },
        _hide: function() {
            $("#popup_container").remove();
            $.alerts._overlay("hide");
            $.alerts._maintainPosition(false)
        },
        _overlay: function(display) {
            switch (display) {
                case "show":
                    $.alerts._overlay("hide");
                    $("BODY").append(‘<div id="popup_overlay"></div>‘);
                    $("#popup_overlay").css({
                        position:
                    "absolute",
                        zIndex: 99998,
                        top: "0px",
                        left: "0px",
                        width: "100%",
                        height: $(document).height(),
                        background: $.alerts.overlayColor,
                        opacity: $.alerts.overlayOpacity
                    });
                    break;
                case "hide":
                    $("#popup_overlay").remove();
                    break
            }
        },
        _reposition: function() {
            var top = (($(window).height() / 2) - ($("#popup_container").height() / 2)) + $.alerts.verticalOffset;
            var left = (($(window).width() / 2) - ($("#popup_container").width() / 2)) + $.alerts.horizontalOffset;
            if (top < 0) {
                top = 0
            }
            if (left < 0) {
                left = 0
            }
            if ($.browser.msie && parseInt($.browser.version) <= 6) {
                top = top + $(window).scrollTop()
            }
            $("#popup_container").css({
                top: top + "px",
                left: left + "px"
            });
            $("#popup_overlay").height($(document).height())
        },
        _maintainPosition: function(if_reposition) {
            if ($.alerts.repositionOnResize) {
                switch (if_reposition) {
                    case true:
                        $(window).bind("resize", $.alerts._reposition);
                        break;
                    case false:
                        $(window).unbind("resize", $.alerts._reposition);
                        break
                }
            }
        }
    };

    hiAlert = function(content, title, callback) {
        $.alerts.alert(content, title, callback)
    };
    hiConfirm = function(content, title, callback) {
        $.alerts.confirm(content, title, callback)
    };
    hiPrompt = function(content, defaulevalue, title, callback) {
        $.alerts.prompt(content, defaulevalue, title, callback)
    };
    hiOvershow = function(tips, seconds) {
        $.alerts.overShow(tips, seconds)
    }
})(jQuery);

html页面中调用:

<body>
<div id="main">
  <div class="demo" id="a1">
     1、警告框
  </div>
  <div class="demo" id="a2">
     2、确认框
  </div>
  <div class="demo" id="a3">
     3、输入框
  </div>
  <div class="demo" id="a5">
     4、提示条
</div>
</body>
</html>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type=‘text/javascript‘ src=‘js/jquery-ui.min.js‘></script>
<script type="text/javascript" src="js/jquery.alert.js"></script>
<script type="text/javascript">
$(function(){
    $("#a1").click(function(){
        hiAlert("欢迎来到www.17sucai.com","提示");
    });

  $("#a2").click(function(){
    hiConfirm(‘你确认此操作吗?‘, ‘确认框‘, function(r) {
        hiOvershow(‘你的反馈是: ‘ + r);
    });
  });

    $("#a3").click(function(){
        hiPrompt(‘请填写:‘, ‘默认值‘, ‘输入框‘, function(r) {
            if( r ) hiOvershow(‘你填入的内容是"‘ + r+‘"‘);
        });
    });

    $("#a5").click(function(){
        hiOvershow(‘操作提示条信息‘,1500);
    });

});
</script>

代码写的很好。学习下。源码会上传文件。

文件名是:自己修改的alert.rar

时间: 2024-10-12 12:55:56

自定义插件学习-弹框2的相关文章

iOS 可高度自定义的底部弹框

技术: iOS Objective-C 概述 一个可以让开发者通过编写 tableView 的内容随心所欲的定制自己想要的底部弹框 详细 代码下载:http://www.demodashi.com/demo/14901.html 一. 运行效果图 二. 实现过程 1. 实现一个有遮罩效果的半透明 view,然后添加一个可设置展示内容高度的 contentView // 这个遮罩是可以遮住全屏 - (void)createUI{ self.frame = CGRectMake(0, 0, SS_S

小程序自定义类似于选择器弹框

在开发小程序时,隐藏和显示是我们用的比较多的一种,但是就简简单单的显示隐藏,有的时候觉得太low,所以分享一个类似于城市选择器那种从下到上的那种弹框: 这中间就要用到小程序动画    Animation 已经是写好的小demo:可以直接拿过来使用: .wxml <button bindtap="showModel">弹框显示</button> <!-- 弹框 --> <!-- 渐深的背景层 --> <view class='{{bg

Vue 开发自定义插件学习记录 -- 入门

首先,你需要了解插件实现的基本原理 插件基本原理: 我们都知道用Vue.use注册插件,那你知道Vue.use(plugin) 干了什么? 以下是我对Vue官网的一些摘录和个人的理解 Vue.use( plugin ) 参数: {Object | Function} plugin 用法: 安装 Vue.js 插件.如果插件是一个对象,必须提供 install 方法.如果插件是一个函数,它会被作为 install 方法. install 方法调用时,会将 Vue 作为参数传入. 该方法需要在调用

vue拖拽插件(弹框拖拽)

// =======拖拽 插件 cnpm install vuedraggableimport draggable from 'vuedraggable' <draggable v-model="tags" :move="getdata" @update="datadragEnd"> <transition-group> <div class="testdiv" v-for="eleme

深入学习jQuery自定义插件

原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数);      $(‘#id’).myPlugin(options); 定义的方式: $.fn.extend({ "函数名":function(自定义参数){ //这里写插件代码 } }); //或者是 $.fn.函数名 = function(options){ //这里写插件代码 } 类级别的方法,就是扩展jQuery类本身的方法,为它增加

RN code push自定义弹框

最近在弄react native的code push热更新问题.开始是用的后台默默更新配置.由于微软服务器速度问题,经常遇到用户一直在下载中问题.而用户也不知道代码需要更新才能使用新功能,影响了正常业务流程.而目前公司也无力搭建自己的服务器和dns设置.所以比较快速的方案就是,前端自定义热更新弹框,在需要更新代码的情况下禁止用户向下操作. ok,废话少说,直接上代码: 这是构建一个弹框,强制文案提示和非强制文案提示弹框. /** * Created by susie on 2018/9/20.

bootstrap插件学习

转自http://v3.bootcss.com/javascript/ bootstrap javascript插件学习 模态框 打开模态框 <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> Launch demo modal</button> data-tog

Windows Phone开发学习笔记(1)---------自定义弹框

Windows Phone开发学习笔记(1) ---------自定义弹框 在WP中自定义弹框是可以通过Popup类实现的. Popup的语法为: [ContentPropertyAttribute("Child")] [LocalizabilityAttribute(LocalizationCategory.None)] public class Popup : FrameworkElement, IAddChild; 这是Popup使用的小列子 Popup codePopup =

做一个弹框玩玩,顺便熟悉最近新学习的插件封装技术

先上图,没图不成席 [原因]由于公司从开发到现在时间都比较紧张,很多时候需要弹框的地方都直接用alert().confirm().prompt()这些自带的提示框,最大的问题是这三个哥们随着浏览器的不同进行变色,简直是前端变色龙,神奇又无奈 所以,这次和我们的帅气设计师合作总结出这三种提示框,我也通过最近的学习把新学到手的封装技术,融入了进去,相对于大神级别的人,看看就行,顺便指点一下就更好了 [目前自己思考的问题]到目前为止,自己工作也有2.5年了,早早过了只知道实现需求的时候了,更多的是培养