jQuery插件slider實(shí)現(xiàn)拖動(dòng)滑塊選取價(jià)格范圍
在一些產(chǎn)品報(bào)價(jià)網(wǎng)站上,需要給出一系列價(jià)格范圍供用戶篩選,我們在篩選的范圍之外再加一個(gè)自定義價(jià)格范圍,這樣為用戶多提供了一種選擇方式。本文將使用jQuery插件結(jié)合CSS實(shí)現(xiàn)使用滑塊滑動(dòng)的方式選擇價(jià)格范圍,請看本文講解。
jQuery ui 有個(gè)slider插件,就是一個(gè)非常好使的拖動(dòng)滑塊插件。要想實(shí)現(xiàn)滑塊拖動(dòng),需要在頁面head間先載入如下js。
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/ui/jquery.ui.core.js"></script> <script type="text/javascript" src="js/ui/jquery.ui.widget.js"></script> <script type="text/javascript" src="js/ui/jquery.ui.mouse.js"></script> <script type="text/javascript" src="js/ui/jquery.ui.slider.js"></script>
當(dāng)然,如果考慮項(xiàng)目運(yùn)行效率,你可以將上述幾個(gè)js壓縮成一個(gè)js,我們在大型WEB應(yīng)用項(xiàng)目中就要考慮這些。
你可以到j(luò)query ui 官網(wǎng)下載這些相關(guān)js,
接著,我們構(gòu)建主要html代碼:
<ul class="price_list"> <li class="title">價(jià)格范圍:</li> <li><a href="#">3000元以下</a></li> <li><a href="#">3000-4000元</a></li> <li><a href="#">4000-5000元</a></li> <li><a href="#">5000-6000元</a></li> <li><a href="#">6000-7000元</a></li> <li><a href="#">7000-8000元</a></li> <li><a href="#">8000-9000元</a></li> <li><a href="#">9000-10000元</a></li> <li><a href="#">10000元以上</a></li> <li id="custom"><a href="javascript:;" id="show">自定義</a> <div id="slider_wrap"> <div id="slider"> <div id="range"></div> </div> <p><input type="text" class="input" id="start" value="0" /> - <input type="text" class="input" id="end" value="3000" /> <input type="button" class="btn" id="btn_ok" value="確 定" /></p> </div> </li> </ul>
價(jià)格范圍由一系列l(wèi)i組成,其中最后一個(gè)li,我們給它一個(gè)設(shè)置id為custom,并且在其中包含需要展示滑塊選擇的div#slider_wrap,當(dāng)然默認(rèn)情況下該div是隱藏的。我們需要用CSS來實(shí)現(xiàn)外觀效果。
CSS
通過CSS,使頁面有一個(gè)好看的外觀:
.price_list{list-style:none} .price_list li{float:left; line-height:22px; margin-right:10px; padding:2px 6px} .price_list li.title{display:block; width:60px; height:60px;} #custom{border:1px solid #d3d3d3; padding:0 16px 0 2px; background:url(images/icon.gif) no-repeat right 8px; position:relative;} .custom_show{background:url(images/icon.gif) no-repeat right 18px;} #show{width:100%; height:26px} .input{width:66px; height:20px; line-height:20px; border:1px solid #d3d3d3} .btn{width:54px; height:24px; line-height:24px; background:url(images/btn_bg.gif) repeat-x; border:1px solid #d3d3d3; cursor:pointer} #slider_wrap{width:250px; height:80px; padding:10px; position:absolute; left:-1px; top:22px; border:1px solid #d3d3d3; background:#fff; display:none; z-index:1001} #slider{width:230px; height:40px; margin:5px auto; border:none; background: url(images/line_bg.gif) no-repeat} #range{width:220px; margin-left:4px} #slider_wrap p{width:230px; margin:4px auto}
關(guān)鍵是彈出下拉的div用來展示滑動(dòng)選擇范圍的CSS,通過絕對(duì)與相對(duì)定位來確定展示層的位置。
展示層中的滑塊插件的CSS來源于jquery ui的自帶的CSS,我做了一些小的修改。
.ui-slider {position:relative; text-align:left;} .ui-slider .ui-slider-handle {position:absolute; z-index:2; width:11px; height:14px; cursor: default; background:url(images/arr.gif) no-repeat } .ui-slider .ui-slider-range {position:absolute; z-index:1; display:block; border:0; background:#f90} .ui-slider-horizontal {height:10px; } .ui-slider-horizontal .ui-slider-handle {top:14px; margin-left:0; } .ui-slider-horizontal .ui-slider-range {top:20px; height:4px; } .ui-slider-horizontal .ui-slider-range-min {left:0; } .ui-slider-horizontal .ui-slider-range-max {right:0; }
jQuery
首先,我們需要在點(diǎn)擊“自定義”時(shí),下拉彈出滑塊范圍顯示的層。當(dāng)點(diǎn)擊“自定義”時(shí),顯示下拉層,并且改變箭頭樣式,再次點(diǎn)擊時(shí),則隱藏下拉層。
$(function(){ $("#show").click(function(){ if($("#slider_wrap").css("display")=="none"){ $("#slider_wrap").show(); $("#custom").css("background-position","right -18px"); }else{ $("#slider_wrap").hide(); $("#custom").css("background-position","right 8px"); } }); });
有同學(xué)可能會(huì)想為什么不直接用toggle方法來代替click,我試過了,行的通,但是后面我們還要在下拉的層中單擊“確定”,隱藏下拉層。如果使用toggle方法,則當(dāng)單擊了“確定”按鈕之后需要點(diǎn)兩下才能彈出下拉層,所以我選擇了click方法加判斷來解決這個(gè)問題。
接著調(diào)用slider插件:
$("#range").slider({ min: 0, max: 10000, step: 500, values: [0, 3000], slide: function(event, ui){ $("#start").val(ui.values[0]); $("#end").val(ui.values[1]); } });
我們設(shè)置了滑塊的最大值max為10000,最小值min為0,滑塊每次滑動(dòng)的距離step是500,默認(rèn)初始范圍values為0到3000。當(dāng)滑動(dòng)滑塊的時(shí)候,賦值給#start和#end兩個(gè)文本框。更多參數(shù)設(shè)置和方法調(diào)用請查看jquery ui 官方網(wǎng)站:
最后,當(dāng)我們選定好價(jià)格范圍后,點(diǎn)擊“確定”按鈕,將關(guān)閉滑塊選擇框,改變“自定義”狀態(tài),代碼如下:
$("#btn_ok").click(function(){ $("#slider_wrap").hide(); $("#custom").css("background-position","right 8px"); var start = $("#start").val(); var end = $("#end").val(); $("#show").html(start+"-"+end); });
這樣,我們就可以看到我們想要的效果了,快去動(dòng)手試試吧。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
jquery根據(jù)一個(gè)值來選中select下的option實(shí)例代碼
下面小編就為大家?guī)硪黄猨query根據(jù)一個(gè)值來選中select下的option實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08基于BootStrap環(huán)境寫jQuery tabs插件
這篇文章主要介紹了基于BootStrap環(huán)境寫jQuery tabs插件的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07詳談jQuery unbind 刪除綁定事件 / 移除標(biāo)簽方法
下面小編就為大家?guī)硪黄斦刯Query unbind 刪除綁定事件 / 移除標(biāo)簽方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03jQuery+ajax實(shí)現(xiàn)實(shí)用的點(diǎn)贊插件代碼
本文給大家分享的是作者在自己的博客上使用jQuery+ajax實(shí)現(xiàn)實(shí)用的點(diǎn)贊插件代碼,這里推薦給大家,希望對(duì)大家能夠有所幫助。2016-07-07Jquery實(shí)現(xiàn)圖片左右自動(dòng)滾動(dòng)示例
圖片左右滾動(dòng)的效果想必大家都有見到過吧,其實(shí)很簡單。在本文將為大家介紹下使用Jquery是如何實(shí)現(xiàn)圖片左右自動(dòng)滾動(dòng)的,感興趣的朋友可以參考下2013-09-09jQuery中的pushStack實(shí)現(xiàn)原理和應(yīng)用實(shí)例
這篇文章主要介紹了jQuery中的pushStack實(shí)現(xiàn)原理和應(yīng)用實(shí)例,pushStack是jQuery內(nèi)核中一個(gè)非常重要的函數(shù),許多jQuery內(nèi)部函數(shù)中都頻繁用到它,掌握這個(gè)函數(shù),有利于理解jQuery的運(yùn)行原理,需要的朋友可以參考下2015-02-02jQuery實(shí)現(xiàn)table中的tr上下移動(dòng)并保持序號(hào)不變的實(shí)例代碼
下面小編就為大家?guī)硪黄猨Query實(shí)現(xiàn)table中的tr上下移動(dòng)并保持序號(hào)不變的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07jQuery實(shí)現(xiàn)的Tab滑動(dòng)選項(xiàng)卡及圖片切換(多種效果)小結(jié)
這篇文章主要介紹了jQuery實(shí)現(xiàn)的Tab滑動(dòng)選項(xiàng)卡及圖片切換效果小結(jié),實(shí)例總結(jié)了幾種常見的tab切換效果,包括鼠標(biāo)點(diǎn)擊切換、滑過切換、定時(shí)自動(dòng)切換等,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09