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了,我不敢苟同.代码是死的,它很难让你有自己的想法,而一本好书如果结构清晰,各个章节都立意明确循序渐进( ...
随机推荐
- Android数据存储
SharedPreferences----------->for primitive data Internal Storage-------------->for private dat ...
- ESM CORR
http://infosecnirvana.com/arcsight-corr-install/ http://www.softpanorama.org/Admin/Event_correlation ...
- CCI_chapter 3 Stacks and Queues
3.1Describe how you could use a single array to implement three stacks for stack 1, we will use [0, ...
- Python 在Visual studio 中做单元测试进行TDD开发
Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging ...
- android Service简介及启动关闭方式
(1)Service是Android系统中的四大组件之一,和Activity是同一层次的组件:它是一种生命周期较长,没有可视化界面,运行于后台的一种服务:例如,我们听音乐可以使用Service,下载东 ...
- ubuntu scp
一.将本机文件复制到远程服务器上 scp -r /Users/Dreamover/Desktop/jsnone dreamover@localserver:/var/www/project/ /Use ...
- 免费 Bootstrap 管理后台模块下载
在这文章中我们将分享17+个最好的免费 Bootstrap 管理模板.你可以免费下载这些Twitter bootstrap 框架来开发网站后台. SB Admin 2 SB Admin is a fr ...
- xdu_RainAndBow 鞍山打铁记
我们作为弱校xdu的七队(大四一支,大三四支,大二俩),本来都没指望今年可以出去,结果运气不错,学校得到几个激动名额, 于是我们激动地成功申请到了鞍山站的名额,嗯...可以出去旅游了. 不过我们毕竟太 ...
- Codeforce 216 div2
D 只要搞清楚一个性质:确定了当前最大和次大的位置,局面就唯一确定了; 根据这个性质设计dp,统计到达该局面的方法数即可. E 询问的要求是: 求有多少个区间至少覆盖了询问的点集中的一个; 转化成逆命 ...
- 解决selenium 启动ie浏览器报错:Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones
启动ie代码: System.setProperty("webdriver.ie.driver", "bin/IEDriverServer.exe"); Web ...