欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery插件slider實(shí)現(xiàn)拖動(dòng)滑塊選取價(jià)格范圍

 更新時(shí)間:2015年04月30日 17:39:37   投稿:hebedich  
jquery滑塊(slider)允許用戶從一個(gè)有限的范圍內(nèi)選擇一個(gè)數(shù)值。當(dāng)沿著軌道移動(dòng)滑塊控件時(shí),將顯示一個(gè)表示當(dāng)前值的提示框,用戶可通過設(shè)置它的屬性來自定義滑塊。

在一些產(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)文章

最新評(píng)論