0

0

用JQuery 实现的自定义对话框_jquery

php中文网

php中文网

发布时间:2016-05-16 19:16:15

|

1477人浏览过

|

来源于php中文网

原创

JavaScript为我们提供几种对话框功能,但功能都十分有限;虽然在IE下可以通过模式窗体的方式创建更丰富的对话框功能,但毕竟只有IE得到支持。为了得到更丰富的自定义对话框功能,于是用JQuery编写了一个对话框插件;只需简单地引用相关JavaScript就能得到丰富的自定义对话框功能。
插件功能特点:
       允许通过CSS进行外观控制。
       可以任意把面页的元素作为对话框显示。
       当对话框激活时,对话框外的任何元素不能接受鼠标操作。
       对话框可以在工作区范围内任意移动,根据工作区大小自适应居中功能。
       并不需要编写复杂的JavaScript,通过简单HTML属性描述即可。
       经过测试插件可以在Firefox和IE下正常工作。
简单使用描述:
       引用JQuery和对话框插件文件:
       
   
       定义相关按钮为行:
       
       定义相关对话框显示的内容:
    

jQuery仿iOS6对话框提示插件iOS6Alert.js
jQuery仿iOS6对话框提示插件iOS6Alert.js

iOS6Alert.js可以在网页中实现iOS6样式的对话框效果,样式支持自定义。

下载

        
            
                
            
            
                
            
        

                    JQuery模式对话框插件好用吗?

                    
                    

    


下载例程和源码
复制代码 代码如下:

/* JQuery 模式对话框插件 
 * writer: FanJianHan (henryfan@msn.com) 
 * License: GPL (GPL-LICENSE.txt) licenses. 
 */ 
 //是否已初始化过对话框 
var MessageOninit = false; 
//记录body滚动条的x,y偏移量;显示内容的元素对象,显示内容元素对象的父对象 
var MessageBox_scrolltop,MessageBox_scrollleft,Messagebox_AC,MessageBox_PC; 
//对话框对象,对话框宽度,对话框高度 
var MessageBox_win,MessageBox_width,MessageBox_height; 
//对话框是否处于移动状态 
var MessageBox_Moving = false; 
//显示模式提示框 
function ShowMessageBox(option) 

    var container,iframe,enabled,enabledframe; 
    var height=400; 
    var width =400; 
    MessageBox_scrolltop =0; 
    MessageBox_scrollleft =0; 
    if(!MessageOninit) 
    { 
       CreateContainer(option); 
       MessageOninit = true; 
       $('#messagebox_close').click(function(){ 
             CloseMessageBox(); 
       }); 
       $(window).resize(function(){ 
            SetStyle(option); 
            SetEnabledStyle(); 
       }); 
       $(window).scroll(function(e){ 
            MessageBox_scrolltop =document.documentElement.scrollTop; 
            MessageBox_scrollleft = document.documentElement.scrollLeft; 
            SetEnabledStyle(); 
       }); 
       MessageBox_win = $("#messagebox_win"); 
       $('#messagebox_title').mousedown(handleMouseDown); 
       $('#messagebox_title').mouseup(handleMouseUp); 
       $('#messagebox_title').mousemove(handleMouseMove); 
       document.onmouseup = handleMouseUp; 

    } 

    if(option.height) 
        height = parseInt(option.height); 
    if(option.width) 
        width = parseInt(option.width); 
    MessageBox_height = height; 
    MessageBox_width = width; 
    Messagebox_AC = $('#'+option.control); 
    MessageBox_PC = Messagebox_AC.parent(); 
    Messagebox_AC.css('display',''); 
    enabled='

    enabledframe=''; 
    $('#messagebox_enabledframe').remove()_ 
    $('#messagebox_enabled').remove(); 
    $('#messagebox_title').html(option.title); 
    $('#messagebox_from').append(Messagebox_AC); 
    SetStyle(option); 
    $(document.body).append(enabledframe); 
    $(document.body).append(enabled); 
    SetEnabledStyle(); 
    $('#messagebox_win').fadeIn("slow"); 

    //创建对话框容器 
    function CreateContainer(option) 
    { 
        var html; 
        html='
'; 
        if(option.parent) 
        { 
            $('#' + option.parent).append(html); 
        } 
        else 
        { 
            $(document.body).append(html); 
        } 
    } 
    //设置显示时背景式样 
    function SetEnabledStyle() 
    { 
        var de,w,h,css,region; 
        region = GetDocumentRegion(); 
        css ={width:region.width+"px",height:region.height+"px", 
        left: MessageBox_scrollleft+'px',top: MessageBox_scrolltop +'px'} 
        GetOpacity(css); 
        $("#messagebox_enabled").css(css); 
        $("#messagebox_enabledframe").css(css); 
    } 
    //设置透明式样 
    function GetOpacity(css) 
    { 
        if(window.navigator.userAgent.indexOf('MSIE')>=1) 
        { 
            css.filter= 'progid:DXImageTransform.Microsoft.Alpha(opacity=30)'; 
        } 
        else 
        { 
            css.opacity= '0.3'; 
        }    
    } 
    //设置对话框试样 
    function SetStyle(option) 
    { 
        var region,css; 
        region = GetDocumentRegion(); 
        css ={width:MessageBox_width+'px',height:MessageBox_height+'px', 
        left: ((region.width - MessageBox_width)/2)+'px',top: ((region.height - MessageBox_height)/2)+'px'} 
        if(region.height         { 
            css.top=10+'px'; 
        } 
        else 
        { 
            css.top=((region.height - MessageBox_height)/2)+'px' 
        } 
        $('#messagebox_win').css(css); 
        css.top='0px'; 
        css.left='0px'; 
        $('#messagebox_table').css(css); 
        css.width='100%'; 
        css.height='16px'; 
        $('#messagebox_title_td').css(css); 
        css.height= height-46 +'px'; 
        $('#messagebox_body_td').css(css); 

    } 
    var down_x,down_y,cx,cy; 
    function handleMouseDown(e) 
    { 
            var evt = e || event; 
         down_x=evt.clientX; 
         down_y = evt.clientY; 
         cx =(parseInt(MessageBox_win.css('left'))|0); 
         cy = (parseInt(MessageBox_win.css('top'))|0) 
         MessageBox_Moving= true;3 
         document.documentElement.onselectstart = function(){return false}; 
         document.documentElement.ondrag = function(){return false}; 
         document.onmousemove = handleMouseMove; 
         $(document.body).append('
'); 
         $('#messagebox_move').css('width',MessageBox_win.css('width')); 
         $('#messagebox_move').css('height',MessageBox_win_u99 ?ss('height')); 
         $('#messagebox_move').css('left',MessageBox_win.css('left')); 
         $('#messagebox_move').css('top',MessageBox_win.css('top')); 

    } 
    function GetDocumentRegion() 
    { 
        var w,h,de; 
        de = document.documentElement; 
        w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; 
        h = self.innerHeight || (de&&de.clientHeight)|| document.body.clientHeight; 
        return {height:h,width:w}; 
    } 
    function handleMouseMove(e) 
    { 
        var left,top,region; 
        if (MessageBox_Moving) 
        { 
            var evt = e || event; 
            left =evt.clientX+cx-down_x; 
            top = evt.clientY+cy-down_y; 
            region = GetDocumentRegion(); 
            if(left+ MessageBox_width > region.width) 
            { 
                left = region.width - 10- MessageBox_width; 
            } 
            if(top + MessageBox_height >region.height)3 
            { 
                top = region.height-10 - MessageBox_height; 
            } 
            if(left                 left =10; 
            if(top                 top =10; 
            var css ={left:left+'px',top:top+'px'} 
            $('#messagebox_move').css(css); 
        } 
    } 
    function handleMouseUp() 
    { 
        if(MessageBox_Moving) 
        { 
            MessageBox_win.css('width',$('#messagebox_move').css("width")); 
            MessageBox_win.css('height',$('#messagebox_move').css("height")); 
            MessageBox_win.css('left',$('#messagebox_move').css("left")); 
            MessageBox_win.css('top',$('#messagebox_move').css("top")); 
        } 
        MessageBox_Moving _u61 ? false; 
        document.onmousemove = null; 
       $('#messagebox_move').remove(); 
    } 


//关闭模式对话框 
function CloseMessageBox() 

    if(MessageOninit) 
    { 
       $('#messagebox_win').hide(); 
       $('#messagebox_enabled').remove(); 
       $('#messagebox_enabledframe').remove(); 
      Messagebox_AC.css('display','none'); 
       MessageBox_PC.append(Messagebox_AC); 
    } 
     document.documentElement.onselectstart = null; 
         document.documentElement.ondrag = null; 

$(document).ready(function(){ 
    $(document).find('[@showoption]').each(function(){ 
        var namevalue; 
        //虽然显示的元素id,显示宽度,显示高度,标题,对话框寄居的元素对象id 
        var option={control:'',width:'400',height:'400',title:'',parent:null}; 
        var properties = $(this).attr('showoption').split(';');  
        for(i=0;i        { 
            namevalue = properties[i].split(':'); 
            if(namevalue.length >1) 
            { 
                execute ="option." + namevalue[0] +'=\''+ namevalue[1]+'\';'; 
                eval(execute); 
            } 
        } 
        $(this).click(function(){ 
            ShowMessageBox(option); 
            document.body.focus(); 
        }); 
    });     
}); 

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

67

2026.02.06

java多线程方法汇总
java多线程方法汇总

本专题整合了java多线程面试题、实现函数、执行并发相关内容,阅读专题下面的文章了解更多详细内容。

32

2026.02.06

1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

489

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

265

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

18

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

29

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

14

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

69

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

32

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 10.7万人学习

CSS3 教程
CSS3 教程

共18课时 | 5.3万人学习

Git 教程
Git 教程

共21课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号