模拟(美化)SELECT 控件

SELECT 是常用的网页控件,对它进行模拟美化也是常做的效果,方法也多种多样。

分析其主要功能有如下几点:

1.点击出现下拉选框
2.点击选项隐藏下拉选框 并设置相应的值
3.鼠标离开后延迟收回(或者失去焦点时收回)
就这几个功能,做了一个简单的SELECT 模拟的效果 点击查看DEMO
为了减少与其他模块冲突的机会,使用命名空间,只为全局增加一个变量 var fakeslt;
具体代码如下,也可查看DEMO 代码:

$( function (){
        
// fake select
     var  fakeslt;
    
if ( ! fakeslt) fakeslt = {};  // 创建命名空间
    fakeslt = {
        show:
false // 默认显示状态
        range: "" // 搜索范围
        timer: false // 延迟收回
        fsdiv:$( " #floatip " ), 
        fspan:$(
" #fakeslt span " ),
        sliup:
function (){  // 收回函数 清空定时
            fakeslt.fsdiv.slideUp();
            fakeslt.show
= false ;
            },
        slidw:
function (){  // 展开选项
            $( " #floatip " ).slideDown();
            fakeslt.show
= true ;
            },    
        setrange:
function (val){  // 设置搜索范围
            fakeslt.range = val;
            },
        setvalue:
function (val){  // 设置选框的值
            fakeslt.fspan.html(val);
            },
        autoback:
function (){  // 延时自动收回
             if ( ! fakeslt.timer)    fakeslt.timer = setTimeout(fakeslt.sliup, 1000 );
            },
        clearauto:
function (){  // 清除计时
             if (fakeslt.timer){ clearTimeout(fakeslt.timer);fakeslt.timer = false ; };
            }    
        }
    fakeslt.fspan.click(
function (){
        
if ( ! fakeslt.show){
            fakeslt.slidw();        
            $(
" #fakeslt " )
            .mouseout(
function (){
                fakeslt.autoback();    
            })
            .mouseover(
function (){
                fakeslt.clearauto();
            })
            fakeslt.fsdiv.find(
" a " ).click( function (e){
                    fakeslt.sliup();
                    fakeslt.clearauto();
                    
var  tmp = $(e.target).html();
                    fakeslt.setrange(tmp);
                    fakeslt.setvalue(tmp);
                    })
                }
                
else {
                fakeslt.sliup();
                fakeslt.clearauto();    
            }
            }
        )
    
    }) 

 

转载于:https://www.cnblogs.com/trance/archive/2009/10/20/1586734.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值