jQuery手風琴效果程式碼例項
本章節分享一段程式碼例項,它實現了手風琴式圖片展示效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body { background: #f9f9f9; margin: 0; padding: 0; width: 100%; height: 100%; } .wrap { width: 800px; top: 50%; left: 50%; position: absolute; transform: translate(-50%, -50%); } .item, .item-end { float: left; margin: 0 2px; width: 50px; height: 500px; cursor: pointer; background: #6c62d1; font-size: 24px; color: #FFF; border-radius: 10px; -webkit-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; } .item:hover, .item-end:hover { background: #2932e1; } .select { background: #2932e1; } .item p, .item-end p { margin: 220px auto; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .slide { float: left; display: none; margin: 0 4px; } .slide img { width: 360px; height: 480px; margin-top: 10px; border-radius: 10px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { $(".item").click(function () { var thisobj = $(this) if (!thisobj.next().is(":visible")) { if ($(".select").length > 0) { if ($(".select").next().length > 0) { $(".select").next().animate({ width: "hide" }, 180, function () { $(".select").removeClass("select"); thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); }); } else { $(".select").prev().animate({ width: "hide" }, 180, function () { $(".select").removeClass("select"); thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); }); } } else { thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); } } else { thisobj.removeClass("select"); thisobj.next().animate({ width: "hide" }, 180); } }) $(".item-end").click(function () { var obj = $(this).prev(); if (!obj.is(":visible")) { if ($(".select").length > 0) { $(".select").next().animate({ width: "hide" }, 180, function () { $(".select").removeClass("select"); $(".item-end").addClass("select"); obj.animate({ width: "show" }, 180); }); } else { $(".select").removeClass("select"); $(".item-end").addClass("select"); obj.animate({ width: "show" }, 180); } } else { $(".select").removeClass("select"); obj.animate({ width: "hide" }, 180); } }) }) </script> </head> <body> <div class="wrap"> <div class="item"><p>;P1</p></div> <div class="slide"><img src="demo/jQuery/img/p1.jpg" /></div> <div class="item"><p>;P2</p></div> <div class="slide"><img src="demo/jQuery/img/p2.jpg" /></div> <div class="item"><p>;P3</p></div> <div class="slide"><img src="demo/jQuery/img/p3.jpg" /></div> <div class="item"><p>;P4</p></div> <div class="slide"><img src="demo/jQuery/img/p4.jpg" /></div> <div class="item"><p>;P5</p></div> <div class="slide"><img src="demo/jQuery/img/p5.jpg" /></div> <div class="item"><p>;P6</p></div> <div class="slide"><img src="demo/jQuery/img/p6.jpg" /></div> <div class="item"><p>;P7</p></div> <div class="slide"><img src="demo/jQuery/img/p7.jpg" /></div> <div class="item-end"><p>;P7</p></div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
[CSS] 純文字檢視 複製程式碼body { background: #f9f9f9; margin: 0; padding: 0; width: 100%; height: 100%; }
上面的程式碼設定bod的背景顏色
並且刪除body預設的外邊距和內邊距以及尺寸。
[CSS] 純文字檢視 複製程式碼.wrap { width: 800px; top: 50%; left: 50%; position: absolute; transform: translate(-50%, -50%); }
手風琴效果的容器,設定它為居中效果。
[CSS] 純文字檢視 複製程式碼.item, .item-end { float: left; margin: 0 2px; width: 50px; height: 500px; cursor: pointer; background: #6c62d1; font-size: 24px; color: #FFF; border-radius: 10px; -webkit-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; }
設定可以點選的豎條的樣式。比如設定兩端圓角,並且使用transition設定元素屬性以動畫方式過渡。
[CSS] 純文字檢視 複製程式碼.item:hover, .item-end:hover { background: #2932e1; }
設定可以點選豎條滑鼠懸浮時候的樣式,以動畫方式進行。
[CSS] 純文字檢視 複製程式碼.select { background: #2932e1; }
設定點選展開圖片後對應的可點選豎條的背景顏色。
[CSS] 純文字檢視 複製程式碼.item p, .item-end p { margin: 220px auto; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); }
設定可點選豎條中p元素的樣式,可以將其旋轉,也就出現了文字傾斜的效果。
[CSS] 純文字檢視 複製程式碼.slide { float: left; display: none; margin: 0 4px; } .slide img { width: 360px; height: 480px; margin-top: 10px; border-radius: 10px; }
設定圖片容器和圖片的相關樣式屬性。
[JavaScript] 純文字檢視 複製程式碼$(document).ready(function () {})
當文件結構完全載入完畢再去執行函式中的程式碼。
[JavaScript] 純文字檢視 複製程式碼$(".item").click(function () {})
為可點選豎條註冊click事件處理函式。
[JavaScript] 純文字檢視 複製程式碼var thisobj = $(this)
當前點選元素轉換為jQuery物件。
[JavaScript] 純文字檢視 複製程式碼if (!thisobj.next().is(":visible")) {}
判斷當前點選的豎條後面的元素是否是顯示,也就是說後面的圖片有沒有展開。
[JavaScript] 純文字檢視 複製程式碼if ($(".select").length > 0) {}
判斷當前是否有展開的圖片。點選一個豎條展開一個圖片,那麼對應的豎條就會被新增上一個select樣式類,如果隱藏圖片,那麼對應的豎條的select樣式類也會被刪除,所以如果length大於0,那麼也就是說有展開的圖片。
[JavaScript] 純文字檢視 複製程式碼if ($(".select").next().length > 0) { $(".select").next().animate({ width: "hide" }, 180, function () { $(".select").removeClass("select"); thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); }); }
如果具有豎條後面的元素大於0,也就是說不是最後一個豎條。
那麼就將豎條後面的元素以動畫方式隱藏。
然後將豎條的select樣式類刪除,並且給當前點選的豎條新增select樣式雷。
最後展開當前點選豎條後面的元素。
[JavaScript] 純文字檢視 複製程式碼else { $(".select").prev().animate({ width: "hide" }, 180, function () { $(".select").removeClass("select"); thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); }); }
如果是最後一個豎條,那麼就將它前面展開的圖片隱藏。
然後刪除此豎條上面的select樣式。
再給當前點選豎條新增select樣式,並以動畫方式顯示後面的圖片。
[JavaScript] 純文字檢視 複製程式碼else { thisobj.addClass("select"); thisobj.next().animate({ width: "show" }, 180); }
如果當前沒有展開的圖片。
那麼就為當前點選豎條新增select樣式類。
並展開它下一個緊鄰的圖片。
[JavaScript] 純文字檢視 複製程式碼else { thisobj.removeClass("select"); thisobj.next().animate({ width: "hide" }, 180); }
如果當前點選的豎條後面緊鄰的圖片是展開的,由於點選最後一個豎條導致倒數第二個圖片是展開的。
那麼就刪除當前豎條select樣式類。
並且隱藏它後面展開的圖片。
特別說明:後面的程式碼都是一樣的道理,不多介紹。
二.相關閱讀:
(1).next()可以參閱jQuery next()一章節。
(2).is()可以參閱jQuery is()一章節。
(3).animate()可以參閱jQuery animate()一章節。
(4).removeClass()可以參閱jQuery removeClass()一章節。
相關文章
- 小例項: 用vue實現手風琴效果Vue
- jQuery tab選項卡效果程式碼例項jQuery
- jQuery點選滑出層效果程式碼例項jQuery
- HTML6實現摺疊選單與手風琴選單的例項程式碼HTML
- jQuery記住使用者名稱和密碼效果程式碼例項jQuery密碼
- 手風琴方式圖片展示效果詳解
- jQuery.map()方法程式碼例項jQuery
- jQuery手風琴風格收縮展開導航選單jQuery
- canvas載入效果程式碼例項Canvas
- CSS橢圓效果程式碼例項CSS
- jQuery利用name匹配元素程式碼例項jQuery
- element-ui table表格元件實現手風琴效果UI元件
- 美化滾動條效果程式碼例項
- canvas原型鐘錶效果程式碼例項Canvas原型
- css3水滴效果程式碼例項CSSS3
- css背景虛化效果程式碼例項CSS
- canvas氣泡上浮效果程式碼例項Canvas
- jquery.idTabs.min.js選項卡程式碼例項jQueryJS
- jQuery table表格隔行換色程式碼例項jQuery
- css3晃動效果程式碼例項CSSS3
- CSS3心形效果程式碼例項CSSS3
- div前後翻轉效果程式碼例項
- 當前文字框高亮效果程式碼例項
- CSS3旋轉效果程式碼例項CSSS3
- 淡入淡出效果簡單程式碼例項
- canvas繪製箭頭效果程式碼例項Canvas
- jQuery遍歷array陣列元素程式碼例項jQuery陣列
- jQuery 例項jQuery
- CSS3滑過光束效果程式碼例項CSSS3
- CSS3小黃人效果程式碼例項CSSS3
- css3折角效果程式碼例項CSSS3
- CSS3梯形效果程式碼例項CSSS3
- CSS3背景漸變效果程式碼例項CSSS3
- CSS3星系運動效果程式碼例項CSSS3
- jQuery和css3垂直手風琴摺疊選單外掛jQueryCSSS3
- jQuery打字機效果程式碼jQuery
- jQuery點選文字框清除內容程式碼例項jQuery
- jQuery控制div顯示和隱藏程式碼例項jQuery
- jQuery實現的表格展開伸縮效果例項jQuery