完美实现在同一个页面中使用不同样式的artDialog样式
偶然发现artDialog.js这个插件,就被其优雅的设计及漂亮的效果深深吸引,在做例子时碰到了一些想当然它应该提供但却没有提供的功能,不过这都不影响我对它的喜爱,下面说一下遇到的问题吧!
artDialog.js提供了好多种弹出框样式供我们使用,但我想在同一个页面中使用它提供的不同弹出框样式,遗憾的是artDialog.js并没有提供为每一个dialog指定样式的方法或属性,那怎么办呢?且看我下面的解决办法:
我的思路是,既然每一个页面的Dialog样式都是由同一个CSS文件定义的,我何不通过动态改变它的CSS文件来实现我的需求呢!实验证明我的思路是正确的,且看我的实验代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>artDialog-1</title> <link href="resources/skins/twitter.css" rel="stylesheet" />
<script src="resources/jquery.min.js" language="javascript"></script>
<script src="resources/jquery.artDialog.js" language="javascript"></script>
</head> <body> <button type="button" onClick="popDialog1()">基础弹出框</button> <img src="resources/images/photo.jpg" style="width:60px; height:60px" onClick="popImg(this.src)" /> <script language="javascript"> //使用twitter风格的弹出框
function popDialog1(){ var dialog = $.dialog({
title: '欢迎',
content: '欢迎使用artDialog对话框组件!',
icon: 'succeed',
ok: function(){
this.title('警告').content('请注意artDialog两秒后将关闭!').lock().time(2);
return false;
},
button:[{name:'自定义按钮1',callback:function(){alert('自定义按钮1'); return false;}},{name:'button2',callback:function(){alert('button2');},focus:true}]
});
} artDialog.notice = function (options) {
var opt = options || {},
api, aConfig, hide, wrap, top,
duration = 800; var config = {
id: 'Notice',
left: '100%',
top: '100%',
fixed: true,
drag: false,
resize: false,
follow: null,
lock: false,
init: function(here){
api = this;
aConfig = api.config;
wrap = api.DOM.wrap;
top = parseInt(wrap[0].style.top);
hide = top + wrap[0].offsetHeight; wrap.css('top', hide + 'px')
.animate({top: top + 'px'}, duration, function () {
opt.init && opt.init.call(api, here);
});
},
close: function(here){
wrap.animate({top: hide + 'px'}, duration, function () {
opt.close && opt.close.call(this, here);
aConfig.close = $.noop;
api.close();
}); return false;
}
}; for (var i in opt) {
if (config[i] === undefined) config[i] = opt[i];
}; return artDialog(config);
}; function removeCss(filename){
//判断文件类型
var targetelement="link";
//判断文件名
var targetattr= "href";
var allsuspects=document.getElementsByTagName(targetelement);
//遍历元素, 并删除匹配的元素
for (var i=allsuspects.length; i>=0; i--){
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
allsuspects[i].parentNode.removeChild(allsuspects[i]);
} //alert(document.getElementsByTagName("head")[0].innerHTML);
} //查看图片时使用simple样式的弹出框
function popImg(imgUrl){ removeCss('twitter.css'); //加载其他样式的dialog样式
loadCss('resources/skins/simple.css'); var obj = ' <img src="'+imgUrl+'" />';
$.dialog({
content:obj,
lock:true,
cancelVal:null,
close:function(){
removeCss('simple.css');
loadCss('resources/skins/twitter.css');
}
}); } </script> </body>
</html>
代码解释:
页面中有一个button和一个图片,点击button弹出twitter风格的dialog,点击图片弹出simple风格的dialog
完美实现在同一个页面中使用不同样式的artDialog样式的更多相关文章
- 修改页面中所有TextBox控件的样式--CSS
1.HTML <div> TextBox<br /> <input type="text" name="name" value=& ...
- 在同一个页面中加载多个不同的jQuery版本
<!-- 从谷歌服务器加载jQuery最新版本--> <script type="text/javascript" src="http://ajax.g ...
- html页面中苹果手机遇到数字换行、样式变形
在做项目中遇到过几回苹果手机读取html页面时,如果出现一串数字,html页面会折行.变形,最后发现是因为苹果手机的打电话功能,如果html上有数字的话,苹果手机会以为是电话号码,就会改变其样式只需要 ...
- 在同一个页面使用多个不同的jQuery版本,让它们并存而不冲突
- jQuery自诞生以来,版本越来越多,而且jQuery官网的新版本还在不断的更新和发布中,现已经达到了1.6.4版本,但是我们在以前的项目中就已经使用了旧版本的jQuery,比如已经出现的:1.3 ...
- 在同一页面中显示多个echart图表
整理了一下大概有两种做法来实现在同一个页面中显示多个echart图表,废话不说直接上代码. 在同一个echart对象中绘制多个图表 <!DOCTYPE html> <html lan ...
- 在AngularJS中同一个页面配置一个或者多个ng-app
在AngularJS学习中,对于ng-app初始化一个AngularJS程序属性的使用需要注意,在一个页面中AngularJS自动加载第一个ng-app,其他ng-app会忽略, 如果需要加载其他ng ...
- asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页
基于我上一篇文章<a href="http://www.cnblogs.com/alasai/p/4765756.html">asp.net mvc excel导入&l ...
- 在同一个页面多次调用el-select选择器
elementui是一个十分好用的组件库,但毕竟也不能做到面面俱到,有些还是要根据根据自己的实际需求做一些自定义的方法. 比如el-select选择器在同一个页面使用多次的话就会造成选择一个另一个也会 ...
- [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求
在没有做题目中所述的内容的时候,感觉这应该是很简单的东西,但是当真正开始做的时候却发现,有很多问题现在在这里写出来,供和我一样水平不高的参考一下. 在写本文之前参照了一下文章 欢迎使用CSDN论坛阅读 ...
随机推荐
- JavaScript零基础入门
为什么学习JavaScript 1. 所有主流浏览器都支持JavaScript. 2. 目前,全世界大部分网页都使用JavaScript. 3. 它可以让网页呈现各种动态效果. 易学性 1.学习环境无 ...
- 使用awk截取某时间段的日志
想要取出文件里面时间是9点到12点的数据,文件内容如下: 2012-09-05 01:48:47,150 WARN [WorkManager(3)-72] [service.PhoneRangeMa ...
- Fibonacci数列前n项值的输出(运用递归算法)
1.斐波那契数列: 又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 在数学上,斐波纳契数列以如下被以递归的方法 ...
- iOS回顾笔记(08) -- 自定义Cell的类型和创建步骤总结
iOS回顾笔记(08) -- 自定义Cell的类型和创建步骤总结 项目中我们常见的自定义cell主要分为两种 等高cell:如应用列表.功能列表 非等高cell:如微博列表.QQ聊天页面 下面对这 ...
- 那些"不务正业"的IT培训公司
前言 大四下期了,现在准备找一份Java开发的实习工作,于是在各大网站上投递简历-智联招聘.51job.拉勾网,慧眼识真金的我必然会把培训机构给过滤掉,对于重庆来说招聘实习的公司少之又少,然而是智联招 ...
- ubuntu如何进入local、bin目录
回到home目录,输入命令:cd /usr/local 若要进入bin目录,输入命令:cd /usr/local/bin
- iOS开发之pch文件
项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件 pch头文件的内容能被项目中的其他所有源文件共享和访问 一般在pch文件中定义一些全局的宏 在 ...
- xlrd的使用详细介绍以及基于Excel数据参数化实例详解
1.安装xlrd xlrd是python用于读取excel的第三方扩展包,所以在使用xlrd前,需要使用以下命令来安装xlrd.pip install xlrd 在使用这个命令之前先确定自己有没有安装 ...
- Weblogic+apache多虚拟主机
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...
- WebStorm下载,破解,汉化,debug调试,以及会debug会出现的问题
一 .webstorm软件下载,破解 1.WebStorm 10 下载地址:http://download.jetbrains.8686c.com/webstorm/WebStorm-10.0.5.e ...