DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> 基於jquery的用dl模擬實現可自定義樣式的SELECT下拉列表(已封裝)
基於jquery的用dl模擬實現可自定義樣式的SELECT下拉列表(已封裝)
編輯:JQuery特效代碼     
具體思路就不說了,比較常規, 代碼中也有注釋. 使用方法也不費話了, 就是一個簡單的全局函數封裝, 不懂的看下源碼中注釋或Google .
另外, 有興趣的朋友,可以嘗試在本插件基礎上改一個可輸入的下拉列表. 思路差不多,哈.

演示及代碼:  代碼下載
運行代碼:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

核心代碼:
代碼如下:
;(function($){
$.fn.extend({
iSelect: function(options){
var iset = {
name: $('.selectitem'), //容器
select: $('.selectitem>dl'), //dl列表
dropCss: 'drop', //收藏狀態dt的樣式
shrinkCss: 'shrink', //展開狀態dt的樣式
hoverCss: 'hover', //鼠標劃過dd時的樣式
clearTime: 100, //允許用戶快速劃過不觸發的時間(ms)
dropTime: 100, //展開時間(ms)
shrinkTime: 100 //收縮時間(ms)
}
options = options || {};
$.extend(iset, options);
var mainHeight = iset.name.height();//容器高度
var selectHeight = iset.select.height(); //dl實際高度
var curTxt = iset.select.find('dt').html(); //dt默認html內容
var self = null;
var hoverElem = null; //避免用戶快速劃過時觸發事件
iset.name.each(function(){
$(this).hover(function(){
self = this;
hoverElem = setTimeout(function(){
$(self).stop(true, false).animate({ //鼠標劃過時,展開dl
height: selectHeight
}, iset.dropTime);
if ($(self).find('dt').html() == curTxt) { //判斷是否有選擇下拉列表,若無則改變dt樣式
$(self).find('dt').attr('class', iset.dropCss);
}
//dd的鼠標事件
$(self).find('dd').mouseover(function(){
$(this).addClass(iset.hoverCss).siblings().removeClass(iset.hoverCss);
}).mousedown(function(){ //鼠標點擊時取值並賦給dt
$(self).find('dt').html($(this).html()).attr('class', $(this).attr('class'));
$(self).stop(true, false).animate({
height: mainHeight
}, iset.shrinkTime);
}).removeClass(iset.hoverCss);
}, iset.clearTime);
}, function(){
//鼠標移出後觸發的事件
clearTimeout(hoverElem);
$(self).stop(true, false).animate({
height: mainHeight
}, iset.shrinkTime);
if ($(self).find('dt').html() == curTxt) {
$(self).find('dt').attr('class', iset.shrinkCss);
}
});
})
}
})
})(jQuery);
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved