仿寫Windows7桌面和任務欄 HTML5+CSS3+Jquery實現


過去一段時間零零散散的自學了一點點jquery的相關用法,基本上屬於用到哪個了,就去查然后就學一點,沒有系統的學過,深入的用法也不是特別了解,畢竟javascript基礎就比較薄弱。經過一段時間的零敲碎打的學習,我決定使用jquery做一些東西,算是對以前學到的東西做一次總結。

我選擇了仿寫Windows7的桌面和任務欄效果,一個是我比較喜歡Windows7的半透明效果,第二個是這個有比較大的發揮空間。再次貼出來算是做一個筆記和總結,也把一些心得分享給學習路上的朋友們。編碼是本人是業余愛好,當然寫這個東西也純屬個人娛樂,寫的代碼比較隨意,沒有過於關注性能上的問題,如有指教之處,還望不吝相告!

已實現功能:

  • 桌面圖標的排列
  • 桌面圖標hover效果
  • 任務欄定位和半透明效果
  • 時間面板
  • 任務窗口的拖拽
  • 任務窗口的最小化
  • 任務窗口的最大化和還原
  • 任務窗口的關閉
  • 任務欄點擊切換任務窗口

 

先來看幾張效果圖:

由於用的是HTML5+CSS3,所以有些代碼可能低版本瀏覽器支持的不好,所以盡量使用谷歌內核或者IE9及以上版本瀏覽器。全屏效果體驗更好!

 

桌面窗口及任務欄  圖片地址:https://images0.cnblogs.com/i/326283/201404/062025463446507.jpg

 

同一個窗口可以同時打開多個 圖片地址:https://images0.cnblogs.com/i/326283/201404/062029449694173.jpg

 

任務窗口最大化 圖片地址:https://images0.cnblogs.com/i/326283/201404/062036302979642.jpg

 

鼠標的懸停效果  圖片地址:https://images0.cnblogs.com/i/326283/201404/062032093138106.jpg

 

任務欄懸停效果 圖片地址:https://images0.cnblogs.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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM