jQuery插件slider實現(xiàn)拖動滑塊選取價格范圍
在一些產(chǎn)品報價網(wǎng)站上,需要給出一系列價格范圍供用戶篩選,我們在篩選的范圍之外再加一個自定義價格范圍,這樣為用戶多提供了一種選擇方式。本文將使用jQuery插件結(jié)合CSS實現(xiàn)使用滑塊滑動的方式選擇價格范圍,請看本文講解。

jQuery ui 有個slider插件,就是一個非常好使的拖動滑塊插件。要想實現(xiàn)滑塊拖動,需要在頁面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)然,如果考慮項目運行效率,你可以將上述幾個js壓縮成一個js,我們在大型WEB應(yīng)用項目中就要考慮這些。
你可以到j(luò)query ui 官網(wǎng)下載這些相關(guān)js,
接著,我們構(gòu)建主要html代碼:
<ul class="price_list">
<li class="title">價格范圍:</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>
價格范圍由一系列l(wèi)i組成,其中最后一個li,我們給它一個設(shè)置id為custom,并且在其中包含需要展示滑塊選擇的div#slider_wrap,當(dāng)然默認(rèn)情況下該div是隱藏的。我們需要用CSS來實現(xiàn)外觀效果。
CSS
通過CSS,使頁面有一個好看的外觀:
.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用來展示滑動選擇范圍的CSS,通過絕對與相對定位來確定展示層的位置。
展示層中的滑塊插件的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
首先,我們需要在點擊“自定義”時,下拉彈出滑塊范圍顯示的層。當(dāng)點擊“自定義”時,顯示下拉層,并且改變箭頭樣式,再次點擊時,則隱藏下拉層。
$(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é)可能會想為什么不直接用toggle方法來代替click,我試過了,行的通,但是后面我們還要在下拉的層中單擊“確定”,隱藏下拉層。如果使用toggle方法,則當(dāng)單擊了“確定”按鈕之后需要點兩下才能彈出下拉層,所以我選擇了click方法加判斷來解決這個問題。
接著調(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,滑塊每次滑動的距離step是500,默認(rèn)初始范圍values為0到3000。當(dāng)滑動滑塊的時候,賦值給#start和#end兩個文本框。更多參數(shù)設(shè)置和方法調(diào)用請查看jquery ui 官方網(wǎng)站:
最后,當(dāng)我們選定好價格范圍后,點擊“確定”按鈕,將關(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);
});
這樣,我們就可以看到我們想要的效果了,快去動手試試吧。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
jQuery實現(xiàn)圖片與文字描述左右滑動自動切換的方法
這篇文章主要介紹了jQuery實現(xiàn)圖片與文字描述左右滑動自動切換的方法,涉及jquery實現(xiàn)圖文滑動切換效果的方法,涉及jquery針對頁面元素與樣式的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07
如何使用jQuery Draggable和Droppable實現(xiàn)拖拽功能
本篇文章是對使用jQuery Draggable和Droppable實現(xiàn)拖拽功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
jQuery插件開發(fā)的兩種方法及$.fn.extend的詳解
jQuery插件開發(fā)分為兩種:1 類級別、2 對象級別,下面為大家詳細(xì)介紹下2014-01-01
jQuery解析與處理服務(wù)器端返回xml格式數(shù)據(jù)的方法詳解
這篇文章主要介紹了jQuery解析與處理服務(wù)器端返回xml格式數(shù)據(jù)的方法,結(jié)合實例形式分析了jQuery基于ajax的get方法與后臺交互操作xml格式數(shù)據(jù)的相關(guān)技巧與注意事項,需要的朋友可以參考下2016-07-07
jQuery實現(xiàn)鼠標(biāo)經(jīng)過事件的延時處理效果
這篇文章主要為大家詳細(xì)介紹了jQuery實現(xiàn)鼠標(biāo)經(jīng)過事件的延時處理效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-10-10
jQuery插件slick實現(xiàn)響應(yīng)式移動端幻燈片圖片切換特效
jQuery插件slick是一款響應(yīng)式、適用于移動設(shè)備觸摸屏、可滑動顯示的jQuery幻燈片插件。該幻燈片插件可以設(shè)置多種顯示效果,可以自動播放,是一款移動優(yōu)先的jQuery幻燈片插件。2015-04-04

