jQuery美化select下拉選單程式碼例項
預設的select下拉選單確實醜到不行,對顏值要求不高的網站還能勉強滿足要求。
但是如果要求稍高的話,確實難以勝任,所以就需要對它進行一下徹底的修改,在select本身控制元件基礎上做美化潛力已經不是太大了,所以最好還是模擬實現select下拉選單功能,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body { font-size: 12px; } .select { width: 150px; height: 24px; line-height: 24px; position: relative; text-align: center; cursor: pointer; background: url(demo/jQuery/img/selectbg.jpg) right 0px no-repeat; color: #fff; } .option { line-height: 24px; width: 150px; position: absolute; top: 24px; left: 0px; display: none; background: #820014; } ul { list-style: none; margin: 0; padding: 0; } ul li { height: 24px; background: #666; text-align: center; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { var selects = $("#select"); var options = $("#option"); var state = true; selects.click(function () { if (state) { if (!(options.is(":animated"))) { options.slideDown(); } else { options.css("display", "none"); } state = false; } else { if (!(options.is(":animated"))) { options.slideUp(); } else { options.stop(true, true); options.css("display", ""); } state = true; } }); selects.hover(function () { $(this).css("background", "url(img/selectbg2.jpg) right 0px no-repeat"); },function () { $(this).css("background", "url(img/selectbg.jpg) right 0px no-repeat"); }); $("li").hover(function () { $(this).css("background", "#990000").css("color", "#ff9900"); },function () { $(this).css("background", "#820014").css("color", "#fff"); }); $("li").click(function () { $(this).css("background", "#c00").css("color", "#ffffff"); options.css("display", "none"); selects.children("span").text($(this).attr("tip")); $(".valt").val($(this).attr("tip")); }); }) </script> </head> <body> <input type="text" class="valt" value=""> <div class="select" id="select"> <span>請選擇分類</span> <div class="option" id="option"> <ul> <li tip="螞蟻部落一">螞蟻部落一</li> <li tip="螞蟻部落二">螞蟻部落二</li> <li tip="螞蟻部落三">螞蟻部落三</li> <li tip="螞蟻部落四">螞蟻部落四</li> <li tip="softwhy.com">softwhy.com</li> <li tip="螞蟻部落五">螞蟻部落五</li> <li tip="螞蟻部落六">螞蟻部落六</li> <li tip="螞蟻部落七">螞蟻部落七</li> <li tip="螞蟻部落八">螞蟻部落八</li> <li tip="螞蟻部落九">螞蟻部落九</li> </ul> </div> </div> </body> </html>
上面的程式碼使用ul li模擬實現了select下拉選單功能,當然不能說我們們這裡的這個下拉選單有多美觀,因為只是介紹一下實現原理而已,它的美化潛力那是相當大的,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).$(document).ready(function () {}),當文件結構完全載入完畢再去執行函式中的程式碼。
(2).var selects = $("#select"),獲取id屬性值為select的元素存入變數,這樣要比每次都要獲取效率要高。
(3).var options = $("#option"),和上面是同樣的道理。
(4).var state = true,宣告一個變數並賦值為true,用作一個狀態標識,下面會有用到。
(5).selects.click(function () {}),註冊click事件處理函式。
(6).if (state) { if (!(options.is(":animated"))) {
options.slideDown();
}
else {
options.css("display", "none");
}
state = false;
},state識別符號用來說明,下拉選單是否可以下拉,如果為true,那麼就標識可以下拉。
上面程式碼的總體功能是,點選後,如果下拉選單沒有處於下拉動畫中,那麼就進行下拉展開動畫。
如果連續點選導致上一次下拉動作進行中,那麼就直接隱藏下拉選單,防止出現連續多次點選導致下拉動作重複進行的現象。最後將state賦值為false,說明下拉選單已經下拉完畢。
(7).else {
if (!(options.is(":animated"))) {
options.slideUp();
}
else {
options.stop(true, true);
options.css("display", "");
}
state = true;
}
和上面同樣的道理,只是這個動作是收縮下拉選單。
(8).selects.hover(function () {
$(this).css("background", "url(img/selectbg2.jpg) right 0px no-repeat");
},function () {
$(this).css("background", "url(img/selectbg.jpg) right 0px no-repeat");
}),實現了滑鼠懸浮背景圖片的切換效果。
(9).$("li").hover(function () { $(this).css("background", "#990000").css("color", "#ff9900");
},function () {
$(this).css("background", "#820014").css("color", "#fff");
}),實現了滑鼠懸浮li元素北京顏色和字型的切換效果。
(10).$("li").click(function () {
$(this).css("background", "#c00").css("color", "#ffffff");
options.css("display", "none");
selects.children("span").text($(this).attr("tip"));
$(".valt").val($(this).attr("tip"));
}),實現選中當前li元素,並且將li元素的相關值寫入文字框。
二.相關閱讀:
(1).:animated選擇器可以參閱jQuery :animated一章節。
(2).slideDown()方法可以參閱jQuery slideDown()一章節。
(3).css()方法可以參閱jQuery css()一章節。
(4).is()方法可以參閱jQuery is()一章節。
(5).slideUp()方法可以參閱jQuery slideUp()一章節。
(6).hover()可以參閱jQuery hover事件一章節。
(7).children()方法可以參閱jQuery children()一章節。
(8).attr()方法可以參閱jQuery attr()一章節。
(9).val()方法可以參閱jQuery val()一章節。
相關文章
- select下拉選單美化程式碼例項
- 模擬美化select下拉選單程式碼例項
- jQuery操作select下拉選單程式碼例項jQuery
- jQuery 美化select下拉選單jQuery
- 模擬select下拉選單程式碼例項
- select下拉選單項互換效果程式碼例項
- javascript刪除select下拉選單項程式碼例項JavaScript
- 原生javascript操作select下拉選單程式碼例項JavaScript
- select下拉選單級聯效果例項程式碼
- select級聯下拉選單程式碼例項分析
- jQuery操作select下拉選單程式碼jQuery
- jquery新增或者刪除select下拉選單項程式碼jQuery
- 模擬實現select下拉選單例項程式碼單例
- jQuery操作select下拉選單常用程式碼jQuery
- 刪除和新增select下拉選單option項程式碼例項
- select下拉選單多級級聯效果程式碼例項
- js模擬實現select下拉選單程式碼例項JS
- javascript新增和刪除select下拉選單option項程式碼例項JavaScript
- 替換預設select下拉選單箭頭程式碼例項
- jQuery設定select選中項程式碼例項jQuery
- javascript設定select下拉選單readonly只讀程式碼例項JavaScript
- css二級下拉選單程式碼例項CSS
- jquery select下拉選單新增或者刪除option項jQuery
- jQuery刪除select下拉選單中所有option項jQuery
- jquery如何操作select下拉選單jQuery
- jQuery結合ul和li實現的下拉選單例項程式碼jQuery單例
- jQuery 下拉選單選擇 載入 (練手例項)jQuery
- 滑鼠懸浮出現下拉選單程式碼例項
- css水平下拉導航選單程式碼例項CSS
- jQuery select下拉選單復位效果jQuery
- jQuery 省市級聯選單程式碼例項jQuery
- javascript模擬美化select下拉選單效果詳解JavaScript
- 選中select下拉選單項提交表單
- css三級下拉導航選單程式碼例項CSS
- jquery如何獲取select下拉選單選中項的值和文字jQuery
- jQuery選項卡例項程式碼jQuery
- 表單提示美化效果程式碼例項
- select下拉選單跳轉效果程式碼