过去一段时间零零散散的自学了一点点jquery的相关用法,基本上属于用到哪个了,就去查然后就学一点,没有系统的学过,深入的用法也不是特别了解,毕竟javascript基础就比较薄弱。经过一段时间的零敲碎打的学习,我决定使用jquery做一些东西,算是对以前学到的东西做一次总结。

我选择了仿写Windows7的桌面和任务栏效果,一个是我比较喜欢Windows7的半透明效果,第二个是这个有比较大的发挥空间。再次贴出来算是做一个笔记和总结,也把一些心得分享给学习路上的朋友们。编码是本人是业余爱好,当然写这个东西也纯属个人娱乐,写的代码比较随意,没有过于关注性能上的问题,如有指教之处,还望不吝相告!

已实现功能:

  • 桌面图标的排列
  • 桌面图标hover效果
  • 任务栏定位和半透明效果
  • 时间面板
  • 任务窗口的拖拽
  • 任务窗口的最小化
  • 任务窗口的最大化和还原
  • 任务窗口的关闭
  • 任务栏点击切换任务窗口

先来看几张效果图:

由于用的是HTML5+CSS3,所以有些代码可能低版本浏览器支持的不好,所以尽量使用谷歌内核或者IE9及以上版本浏览器。全屏效果体验更好!

桌面窗口及任务栏  图片地址:http://images.cnitblog.com/i/326283/201404/062025463446507.jpg

同一个窗口可以同时打开多个 图片地址:http://images.cnitblog.com/i/326283/201404/062029449694173.jpg

任务窗口最大化 图片地址:http://images.cnitblog.com/i/326283/201404/062036302979642.jpg

鼠标的悬停效果  图片地址:http://images.cnitblog.com/i/326283/201404/062032093138106.jpg

任务栏悬停效果 图片地址:http://images.cnitblog.com/i/326283/201404/062033426883280.jpg

基本上暂时只实现了上述的功能。下面我来写几个我认为jquery中比较有亮点的地方。

【无比强大的标签选择器】

$(".icons>ul>li")

一句话就选择了所有class="icons"下的ul 下的 li,然后我们可以对它们进行批量操作。

【轻松更改元素的CSS】

$("#"+formid).css("top","50px");

formid为变量,代表已经获取到的一个元素的id,整句话的意思就是更改id为 formid值 的元素 的上距为50px

当然还有另外一种方式就是通过变更css名来进行更改css

$(".cbarbg").eq(num).addClass("cbarbg2"); //增加css名

$(".cbarbg").eq(num).removeClass("cbarbg2"); //移除css名

【很实用的索引值】

当你获取到$(".icons>ul>li")的时候实际上是 获得的一个元素数组,你得到的是一组符合条件的li元素,那么具体怎么定为到每一个元素呢?就是通过索引的方式

例如:var num=$(".icons>ul>li").index(this);

这句话是写在一个 点击触发的事件中的,那么this就代表当前所点击的元素(是其中的一个li),那么通过这种方式 就可以得到当前被点击的元素 处于 元素数组中的索引值,或者是数组的下标。

通过下标可以实现很多操作,例如:$(".icons>ul>li>.iconbg").eq(num).show();

由于.iconbg与li是对应存在的,一个li对应一个.iconbg,因此num为li的索引,同样也是.iconbg的索引,通过这种方式就实现了针对li对应元素的操作。

【自定义属性 这是个好东西】

属性我们都知道,例如img标签中有很多属性 src、alt、等等,这些都属于系统上的属性,是已经规定好的,那么我们如果想在Img中存放一些其他的属性,就需要通过自定义属性来操作了,通过jquery可以很轻松的获取。

自定义属性都是data-开头,例如:<span data-link="http://www.baidu.com">计算机</span>

这是一个桌面图标的标签,其中data-link的值就是一个自定义属性,他存放的是当他被点击的时候 打开的窗口中的iframe所链接的网页。

那么通过jquery可以这样来获取:var dataid=$(".icons>ul>li>a>img").eq(num).attr("data-id");

这句话是写在点击事件中的,num为当前被点击元素的索引,整句话的意思就是获取当前被点击元素的自定义属性 data-id 的值。

【添加元素十分方便】

打开窗口,关闭窗口,元素的添加和移除都是少不了的操作,jquery实现起来很轻松。

$(".footBar").before("<div class=\"footBarbg\"></div>"); //在.footbar元素之前添加
$(".footBar").append("<div class=\"timebar\"></div>"); //在.footbar中添加

移除也很方便使用remove方法,当然还有其他的添加和移除方法,详细操作有兴趣的朋友可以查询手册。

【很犀利的控制显示与隐藏】

最小化操作是需要隐藏窗口的,使用jquery不需要费多大事。

$("#"+formid).hide(500); //隐藏元素 500是延迟时间

$("#"+formid).fadeOut(500,function(){$("#"+formid).remove();});  //淡出隐藏 延迟500

注意这里想要实现的是 元素隐藏后 移除,所以移除操作必须写在 隐藏操作的回调函数中,如果写在隐藏方法的外面,则500的延迟尚未执行完毕,移除操作就已经执行完毕,则延迟隐藏效果就会失效,而写在回调函数中,移除操作只有等待隐藏操作执行完毕回调时才会执行。

基本上目前学到的也就是这些了,效果比较简单,还有很多效果没有做

例如:开始菜单(一层一层的那种),鼠标框选图标,工作窗口的自由拉伸,任务栏顺序的更改,右键菜单等等的,继续学习,进一步完善。

代码下载:http://files.cnblogs.com/files/webconfig/WinFormJquery.zip

本文出自博客园:D调的码农

转载请注明出处:http://www.cnblogs.com/webconfig/p/3649323.html

仿写Windows7桌面和任务栏 HTML5+CSS3+Jquery实现的更多相关文章

  1. HTML5+CSS3+Jquery实现纯手工的垂直时光轴【附源码】

    前言 由于工作中需要,系统中需要记录不同时间发生的事件,为了提升用户体验,决定用时光轴来实现.[据说这个东西挺火的,QQ空间和FB都在用...] 这个时光轴是在 三生石上 这位博主的时光轴基础上修改的 ...

  2. HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站 (陈婉凌) 中文pdf扫描版

    <HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站>以HTML与CSS为主,配合jQuery制作网页,并搭配jQueryMobile制作移动网页,通过具体的范例从基 ...

  3. html5 + css3 + jQuery + 响应式布局设计

    1. [代码][HTML]代码     <!DOCTYPE html><html dir="ltr" lang="zh-CN">< ...

  4. HTML5+CSS3+jquery实现简单的音乐播放器

    ...最近天热的,感觉就像煎饼...然后别人在把妹子的时候,只有偶们这帮苦逼的程序员在那边撸代码...我日哦! 然后今天晒的是偶早年写的一个播放器...看上去是不是很有感觉的样子!一番宝物,Lisa唱 ...

  5. HTML5+CSS3+JQuery打造自定义视频播放器

    来源:http://www.html5china.com/HTML5features/video/201109206_1994.html 简介HTML5的<video>标签已经被目前大多数 ...

  6. html5+css3+jquery完成响应式布局

    响应式布局,流体布局,自适应布局,静态布局等等,这是移动设备的飞速发展,前端人员不得不跟上潮流的一个方向.实际上各种设备尺寸,分辨率大都不同,真的适应各种设备依旧是不现实的,首先是浏览器差异化,让我们 ...

  7. WPF案例 (四) 模拟Windows7桌面任务栏

    原文:WPF案例 (四) 模拟Windows7桌面任务栏 这个程序模彷了Windows7的桌面任务栏,当在桌面上双击某个快捷方式时,将打开一个新的子界面,并且在任务栏里创建一个链接到此界面的任务栏图标 ...

  8. HTML: 仿写一个财经类静态的网页

    要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doc ...

  9. Phaser 桌面和手机游戏HTML5框架

    Phaser是一个流行的2D开源游戏框架,可以用来开发桌面或手机浏览器HTML5游戏,适合侧视或顶视风格: Phaser同时支持Canvas和WebGL渲染引擎,预置了完备的精灵动画.输入 管理.瓦片 ...

随机推荐

  1. Bootstrap_排版_标题

    Bootstrap和普通的HTML页面一样,定义标题都是使用标签<h1>到<h6>,只不过Bootstrap覆盖了其默认的样式,使用其在所有浏览器下显示的效果一样,具体定义的规 ...

  2. ASP.NET程序从IIS6移植到IIS7时出现500.22错误

    最可能的原因:  •    此应用程序在 system.web/httpModules 节中定义配置.  可尝试的操作:  •    将配置迁移到 system.webServer/modules 节 ...

  3. Serilog with Autofac

    http://serilog.net/  ---不错的日志工具 1.直接绑定 builder.Register<ILogger>((c, p) => { return new Log ...

  4. bzoj1188: [HNOI2007]分裂游戏

    Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子 ...

  5. jQuery全选、反选、全不选

    原文链接:https://yq.aliyun.com/articles/33443 HTML内容部分: <ul id="items"> <li> <l ...

  6. Scut:Redis 资源管理器

    核心文件是:RedisConnectionPool.cs 对象池类的通用泛型封装:ObjectPoolWithExpire<T> 1. 主要变量 private static ICache ...

  7. noi 7219:复杂的整数划分问题

    7219:复杂的整数划分问题 查看 提交 统计 提问 总时间限制:  200ms 内存限制:  65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>= ...

  8. Ratchet(WebSockets for PHP)的官方TUTORIALS 的实践

    前几天稍微看了一下Ratchet,并且实践了一下它官方例子.所以现在就将实践的过程记录下来. 在具体实践之前先将Ratchet是什么东东,要先说明一下.以下的英文是从官方copy过来的 Ratchet ...

  9. ISO7816 传输协议 T0 T1

    T=0协议不能用一条命令来实现,必须分为两步实现:第一条命令为卡片提供数据,然后用另外一条相关的命令来取回数据.这样给卡片的编程带来很大麻烦,同时卡片内存中必须保留上一次操作需要返回的数据.这时如果不 ...

  10. 电源VCC、VSS、VDD、VEE、VPP、Vddf标号的区别

    一.解释VCC:C=circuit表示电路的意思,即接入电路的电压: VDD:D=device表示器件的意思,即器件内部的工作电压:VEE:发射极电源电压,EmitterVoltage,一般用于ECL ...