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 動畫效果程式碼例項jQuery動畫
- jquery小球碰撞效果程式碼例項jQuery
- jquery 驗證碼效果程式碼例項jQuery
- jQuery tab選項卡效果程式碼例項jQuery
- jQuery加法驗證碼效果程式碼例項jQuery
- jQuery 隔行變色效果程式碼例項jQuery
- jQuery隔行變色效果程式碼例項jQuery
- jQuery雪花飄落效果程式碼例項jQuery
- jQuery進度條效果程式碼例項jQuery
- jQuery手風琴圖片切換jQuery
- jQuery點選滑出層效果程式碼例項jQuery
- jQuery倒數計時效果程式碼例項jQuery
- jQuery繪製網格效果程式碼例項jQuery
- jQuery數字分頁效果程式碼例項jQuery
- jQuery background-position動畫效果程式碼例項jQuery動畫
- jQuery大圖跟隨效果程式碼例項jQuery
- jquery實現的選項卡效果例項程式碼jQuery
- HTML6實現摺疊選單與手風琴選單的例項程式碼HTML
- jquery實現的分頁效果例項程式碼jQuery
- jQuery九宮格抽獎效果程式碼例項jQuery
- jquery尋找最佳路徑效果程式碼例項jQuery
- jQuery選項卡切換圖片效果程式碼例項jQuery
- 手風琴方式圖片展示效果詳解
- vue實現側邊欄手風琴效果Vue
- jQuery手風琴導航選單詳解jQuery
- jQuery is() 程式碼例項jQuery
- jquery實現的滑動軸效果程式碼例項jQuery
- jQuery標題自動頂貼效果程式碼例項jQuery
- jQuery列表上下垂直滾動效果程式碼例項jQuery
- jQuery垂直手風琴導航選單詳解jQuery
- jQuery手風琴風格收縮展開導航選單jQuery
- jquery實現的人物關係圖效果程式碼例項jQuery
- jQuery類似電影院座位選取效果程式碼例項jQuery
- jQuery選項卡例項程式碼jQuery
- element-ui table表格元件實現手風琴效果UI元件
- jQuery-demos網格手風琴練習jQuery