jquery 做出专业的界面,SHOW 一下最近的成果~~~
最近在项目中把整个UI框架重新做了一下,都是用Jquery实现的,没有使用EXT、EasyUI那一类的UI框架再也不用担心版权问题啦~~~~~~
接下来我会在博客中把常用的功能分享出来,先上一下动态Tab的,功能基本和EasyUI里的tab类似。
实现原理:
1、点击菜单项新增一个div然后在div里打开一个iframe。
2、有了div当容器就很好控制样式,让tab看起来很舒服。
3、tab的切换其实就是div的隐藏和显示。
4、通过把页面的名称存放到div的属性里可以防止重复打开div。
5、控制div的总个数可以防止用户打开过多的页面。
效果图如下:

Jquery代码如下:
//=================动态tab标签========================
function AddTabMenu(tabid, _url, name, img, Isclose) {
try {
var url = _url;
if (url == "" || url == "#") {
url = "/WMSErrorPage/404.aspx";
}
top.$("#Current_iframe").val("div_" + tabid);
if (Isclose != 'false') { //判断是否带关闭tab
top.$(".navigation").hide();
top.$("#side_switch").hide();
} else {
top.$(".navigation").show();
}
///如果当前tabid存在直接显示已经打开的tab
if (top.document.getElementById("div_" + tabid) == null) {
Loading(true);
//遍历并清除开始存在的tab当前效果并隐藏其显示的div
var tablist = top.document.getElementById("div_tab").getElementsByTagName('li');
var pannellist = top.document.getElementById("ContentPannel").getElementsByTagName('iframe');
if (tablist.length > 5) {
showConfirmMsg('您当前打开太多页面,如果继续打开,会造成程序运行缓慢,无法流畅操作!', function (r) {
if (r) {
//创建iframe
var box = document.createElement("iframe");
box.id = "div_" + tabid;
box.name = "div_" + tabid;
box.src = url;
box.height = "100%";
box.frameBorder = 0;
box.width = "100%";
top.document.getElementById("ContentPannel").appendChild(box);
if (tablist.length > 0) {
for (i = 0; i < tablist.length; i++) {
tablist[i].className = "";
pannellist[i].style.display = "none";
}
}
//创建li菜单
var tab = document.createElement("li");
tab.id = tabid;
var litxt = "";
if (Isclose != 'false') { //判断是否带关闭tab
litxt = "<span onclick=\"javascript:AddTabMenu('" + tabid + "','" + url + "','" + name + "','" + img + "','true')\" title=" + name + "><a href=\"javascript:;\"><img src='/Themes/Images/32/" + img + "' width='20' height='20' />" + suolve(name) + "</a></span><a onclick=\"RemoveDiv('" + tabid + "')\" class=\"win_close\" title=\"关闭当前窗口\"></a>";
} else {
tab.setAttribute("onclick", "javascript:AddTabMenu('" + tabid + "','" + url + "','" + name + "','" + img + "','false');");
litxt = "<a href=\"javascript:;\" title=" + name + "><img src='/Themes/Images/32/" + img + "' width='20' height='20' />" + suolve(name) + "</a>";
}
tab.innerHTML = litxt;
tab.className = "menuselected";
top.document.getElementById("div_tab").appendChild(tab);
}
});
} else {
//创建iframe
var box = document.createElement("iframe");
box.id = "div_" + tabid;
box.name = "div_" + tabid;
box.src = url;
box.height = "100%";
box.frameBorder = 0;
box.width = "100%";
top.document.getElementById("ContentPannel").appendChild(box);
if (tablist.length > 0) {
for (i = 0; i < tablist.length; i++) {
tablist[i].className = "";
pannellist[i].style.display = "none";
}
}
//创建li菜单
var tab = document.createElement("li");
tab.id = tabid;
var litxt = "";
if (Isclose != 'false') { //判断是否带关闭tab
litxt = "<span onclick=\"javascript:AddTabMenu('" + tabid + "','" + url + "','" + name + "','" + img + "','true')\" title=" + name + "><a href=\"javascript:;\"><img src='/Themes/Images/32/" + img + "' width='20' height='20' />" + suolve(name) + "</a></span><a onclick=\"RemoveDiv('" + tabid + "')\" class=\"win_close\" title=\"关闭当前窗口\"></a>";
} else {
tab.setAttribute("onclick", "javascript:AddTabMenu('" + tabid + "','" + url + "','" + name + "','" + img + "','false');");
litxt = "<a href=\"javascript:;\" title=" + name + "><img src='/Themes/Images/32/" + img + "' width='20' height='20' />" + suolve(name) + "</a>";
}
tab.innerHTML = litxt;
tab.className = "menuselected";
top.document.getElementById("div_tab").appendChild(tab);
}
}
else {
var tablist = top.document.getElementById("div_tab").getElementsByTagName('li');
var pannellist = top.document.getElementById("ContentPannel").getElementsByTagName('iframe');
for (i = 0; i < tablist.length; i++) {
tablist[i].className = "";
pannellist[i].style.display = "none"
}
top.document.getElementById(tabid).className = 'menuselected';
top.document.getElementById("div_" + tabid).style.display = 'block';
}
} catch (e) { }
}
//关闭事件
function RemoveDiv(obj) {
try {
var ob = top.document.getElementById(obj);
ob.parentNode.removeChild(ob);
var obdiv = top.document.getElementById("div_" + obj);
obdiv.parentNode.removeChild(obdiv);
var tablist = top.document.getElementById("div_tab").getElementsByTagName('li');
var pannellist = top.document.getElementById("ContentPannel").getElementsByTagName('iframe');
if (tablist.length > 0) {
tablist[tablist.length - 1].className = 'menuselected';
pannellist[tablist.length - 1].style.display = 'block';
top.$("#Current_iframe").val(pannellist[tablist.length - 1].id);
}
if (tablist.length == '1') {
top.$(".navigation").show();
}
} catch (e) { }
}
Css样式如下
/*动态Tab
------------------------------------------------*/
#div_tab li{float:left;text-align:center;position:relative;list-style:none;} #div_tab li{height:30px;}
#div_tab li span{height:30px;line-height:29px;} #div_tab li.crent{height:30px;}
#div_tab li.crent span{height:30px;line-height:29px;} #div_tab li,#div_tab li.crent{color:#fff;background-repeat:no-repeat;background-position:0 0;}
#div_tab li span,#div_tab li.crent span{display:inline-block;padding:0 15px 0 0px;background-repeat:no-repeat;background-position:right bottom;} #div_tab li .menua{color:#000;font-size:12px; text-decoration:none;position:relative;}
#div_tab li.crent .menua,#div_tab li .menua:hover{}
#div_tab li .win_close,#div_tab li.crent .win_close{width:13px;height:13px;position:absolute;top:8px;right:5px;cursor:pointer;display:block;overflow:hidden;background:url(../images/tab_delete_ico.png) no-repeat;}
#div_tab li .win_close{background-position:0 -10px; position: absolute;
z-index:;}
#div_tab li .win_close:hover{background-position:0 2px;}
#div_tab img
{
vertical-align: middle;
margin: 0px 5px 0px 0px;
padding-bottom:3px;
}
.menuselected
{
background:#FFF;
}
#dww-menu { width:auto;margin:auto; overflow:hidden;}
#dww-menu .mod-hd li { float:left; cursor:pointer; text-align:center; height:30px; line-height:29px; padding:0 10px; letter-spacing:1px; text-transform:uppercase; border-right:1px #dcdcdc solid }
#dww-menu .mod-hd li:hover {background:#FFF }
下面再补几张效果图:





下一篇介绍菜单导航
当然图片就先晒到这边啦!如果你觉得可以把这些图片的设计思路理解,并且觉得以后会用的话,请收藏一下,推荐一下啦!
对于一些界面看完让我内心想对他说三个字"毁三观"的界面,我只能说你的审美水平一定要提高的,IT这是一个潮流的行业,如果你不潮,那就无法与众不同,机遇往往会给你留个位置的!大家说呢?
http://www.learun.cn
http://www.learun.cn:8080
有兴趣的朋友欢迎加群讨论:312677516
jquery 做出专业的界面,SHOW 一下最近的成果~~~的更多相关文章
- 用swing也可以做出好看的界面
用Swing做出的例子:JavaFX做出的界面:后来又做出了自己编写的一套基于Synth的L&F,其与直接在代码中重绘某个组件不同,最大优点是具有可插拔性,即在不改变原有程序代码的情况下,用户 ...
- cocostudio做出来的界面如何进行分辨率适配,兼论cocos2dx3的多分辨率适配机制,以及retina适配机制
cocos有很多代码实际上都不再使用了,看代码时反而误导了程序员. 比如一个简单的分辨率适配,我查到了setContentSize,然后调用setContentSize,毫无用处啊!于是乎,我到处查资 ...
- jQuery做出手风琴效果
今天学到JQuery中的遍历-siblings,便手痒做了个手风琴的动态效果,有一点收获,分享给大家.mouseout的时候一定要记得opacity必须设置,不然li的opacity会保持mousem ...
- 基于 jQuery 的专业 ASP.NET WebForms/MVC 控件库!
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- OpenLayers学习笔记3——使用jQuery UI美化界面设计
PC端软件在开发是有较多的界面库能够选择,比方DevExpress.BCG.DotNetBar等,能够非常方便快捷的开发出一些炫酷的界面,近期在学习OpenLayers.涉及到web前端开发,在设计界 ...
- html5文章 -- 使用 jQuery Mobile 与 HTML5 开发 Web App ——开发原则 | Kayo's Melody
最近专注研究 jQuery Mobile —— 一款很方便就可以把 Web App 包装成适合 Android 与 iPhone 等触屏移动设备的 Javascript 库,结合 jQuery Mob ...
- windows下VC界面 DIY系列1----写给想要写界面的C++程序猿的话
非常早就想写关于C++ UI开发的一系列博文,博客专栏刚审核通过,就立即開始刷博文,不能辜负自己的一番热血,我并非写界面的高手,仅仅想通过写博文提高我自己的技术积累,也顺便帮助大家解决界面开发的瓶颈. ...
- 几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
AJAX是web2.0的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架? 让我们来想想选择AJAX框 ...
- 推荐几本javascript与jquery的好书
有人说只要了解了javascript的基本语法,就可以通过看别人的代码来学习javascript了,我不敢苟同.代码是死的,它很难让你有自己的想法,而一本好书如果结构清晰,各个章节都立意明确循序渐进( ...
随机推荐
- VC维
vc理论(Vapnik–Chervonenkis theory )是由 Vladimir Vapnik 和 Alexey Chervonenkis发明的.该理论试图从统计学的角度解释学习的过程.而VC ...
- 剑指offer中二进制中1的个数
容易想到的是将n一位一位的和1进行比较,产生如下代码 但是这样的话会出下面的问题 那么就是原数据不动,将1依次移动进行比较有如下的代码 一种更简单的方法是: 这样做的思路是 总而言之
- js深入研究之自定义混合Mixin函数
<script type="text/javascript"> /* 增加函数 */ function augment(receivingClass, givingCl ...
- Linux企业级项目实践之网络爬虫(17)——存储页面
在爬虫系统中数据的流量相当大,要处理的数据内容不仅包括爬虫系统的各种数据结构空间,而且包括从外部节点中得到的各种数据,比如HTTP请求,HTML页面,ROBOT.TXT等等.如果对这些内容处理不当,那 ...
- 读书笔记:java特种兵(上)
----看着样章,感觉还不错,就买下来了,书先不论好坏,悟到了一个道理,东西没有好与坏,只有适不适合. 第一章:想了解编译器是如何优化程序的,当年的编译原理没有学好啊
- Thinkphp显示系统常量信息的方法(php的用法)
输入 :public function Main() { dump(get_defined_constants(true)); }显示系统信息, 其中: 'APP_PATH' ...
- poj 1486 Sorting Slides(二分图匹配的查找应用)
Description Professor Clumsey is going to give an important talk this afternoon. Unfortunately, he i ...
- 知方可补不足~CSS中的几个伪元素
对于一个很好的编辑器VS来说,它对于编程语句的自动提示功能是很强大的,有时,我们根本不需要看相关API,而直接看VS给我们的提示就可以完成一个新技术的学习了. 今天我们来说几个CSS中的伪元素,它们在 ...
- oracle插入特殊字符'&'问题
oracle转义字符开关:set define off / show define
- 【hoj】1604 cable master
简单,二分法,可是在oj上交的时候会有精度的限制,所以仅仅能把数扩得大一点,并且在扩的时候为防止尾数会自己主动生成一些非零数,所以还是自己吧扩到的位置设置为0,还有输出时由于%.2lf会自己有4设5入 ...