jQuery插件slider实现拖动滑块选取价格范围_jquery

在一些产品报价网站上,需要给出一系列价格范围供用户筛选,我们在筛选的范围之外再加一个自定义价格范围,这样为用户多提供了一种选择方式。本文将使用jQuery插件结合CSS实现使用滑块滑动的方式选择价格范围,请看本文讲解。

jQuery ui 有个slider插件,就是一个非常好使的拖动滑块插件。要想实现滑块拖动,需要在页面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>

当然,如果考虑项目运行效率,你可以将上述几个js压缩成一个js,我们在大型WEB应用项目中就要考虑这些。
你可以到jquery ui 官网下载这些相关js,
接着,我们构建主要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>

价格范围由一系列li组成,其中最后一个li,我们给它一个设置id为custom,并且在其中包含需要展示滑块选择的div#slider_wrap,当然默认情况下该div是隐藏的。我们需要用CSS来实现外观效果。

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}

关键是弹出下拉的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

首先,我们需要在点击“自定义”时,下拉弹出滑块范围显示的层。当点击“自定义”时,显示下拉层,并且改变箭头样式,再次点击时,则隐藏下拉层。

$(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");
    }
  });
});

有同学可能会想为什么不直接用toggle方法来代替click,我试过了,行的通,但是后面我们还要在下拉的层中单击“确定”,隐藏下拉层。如果使用toggle方法,则当单击了“确定”按钮之后需要点两下才能弹出下拉层,所以我选择了click方法加判断来解决这个问题。
接着调用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]);
  }
});

我们设置了滑块的最大值max为10000,最小值min为0,滑块每次滑动的距离step是500,默认初始范围values为0到3000。当滑动滑块的时候,赋值给#start和#end两个文本框。更多参数设置和方法调用请查看jquery ui 官方网站:
最后,当我们选定好价格范围后,点击“确定”按钮,将关闭滑块选择框,改变“自定义”状态,代码如下:

$("#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);
});

这样,我们就可以看到我们想要的效果了,快去动手试试吧。

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, 滑块
slider
jquery slider 滑块、jquery可拖动滑块、jquery可拖动滑块插件、angularjs滑块slider、html5 slider 滑块,以便于您获取更多的相关知识。

时间: 2024-09-17 04:29:00

jQuery插件slider实现拖动滑块选取价格范围_jquery的相关文章

jquery 插件QQ评论拖动分页效果

<!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" c

jquery插件 - EasyDrag 简单拖动栏

首先要感谢木野狐,解决了EasyDrag这个Jquery插件没有指定拖动的handle的问题.这可是个大问题,尽管EasyDrag是个非常轻巧又实用的插件,但没有拖动的handle使我决定放弃它而选用臃肿的interface.那是多么痛苦的选择-- EasyDrag可以指定DOM中某个元素,使其可以用鼠标进行拖放操作.假设DOM中有一个元素:<div id="box1″>Drag me-</div>.那么这样让它支持拖放: $("#box1″).easydrag

基于jquery实现鼠标左右拖动滑块滑动附源码下载_jquery

在没步入正文之前,先给大家贴效果图,看看是不是您想要的效果: 在线演示 源码下载 基于jQuery移动端滑块拖动设置代码.这是一款支持手机移动端的特效,可拖动滑块范围选择器,拖动滑块数值选择器. 废话不多说了,直接给大家贴代码了. html代码: <div class="demo"> <input type="hidden" class="single-slider" value="0" /> <

40款非常棒的jQuery 插件和制作教程(系列二)_jquery

jQuery 以其插件众多.独特.轻量以及支持大规模的网站开发闻名.本文继续向大家分享实用的 jQuery 插件,可以根据您的项目需要来选择使用.<<前一篇:40款非常棒的 jQuery 插件和制作教程(系列一)>> Client Testimonials Powered by PHP, XML and jQuery ( 演示 | 下载 ) 结合 jQuery 和  XML 制作的客户感言插件,吸引更多用户使用你的产品. Coding a Rotating Image Slides

40款非常棒的jQuery 插件和制作教程(系列一)_jquery

本文向大家分享40个实用的 jQuery 插件以及制作教程. Parallax Slider with jQuery ( 演示 | 下载 ) 带立体效果的 jQuery 幻灯片插件,很酷! Merging Image Boxes with jQuery ( 演示 | 下载 ) 非常酷的带消融效果的 jQuery 相册插件,太靓了! Sweet Thumbnails Preview Gallery ( 演示 | 下载 ) 带缩略图预览效果的 jQuery 相册插件 Portfolio Zoom S

jQuery插件bgStretcher.js实现全屏背景特效_jquery

bgStretcher 2011 (Background Stretcher)是一个jQuery的插件,可以为你的网页添加多张背景图,且多个背景图能够自动切换,同时背景图大小可以自适应浏览器窗口的大小.背景图的切换效果有淡入淡出,滚动,幻灯,其中选用滚动和幻灯时,可以选择方向,上下左右,或者左上右下,右上左下.图片切换顺序也可以设置正向,反向或者随机.更多选项就看你自己慢慢研究了. bgStretcher是一个jQuery插件,它允许你添加一个大图像(或一组图像)到您的网页的背景,并会按比例调整

基于Jquery插件Uploadify实现实时显示进度条上传图片_jquery

先了解了解Uploadify,具体内容如下 Uploadify是一个简单易用的多文件上传方案.作为一个Jquery插件,Uploadify使用简单,并具有高度的定制性. Uploadify特性: Uploadify简单说来,是基于Jquery的一款文件上传插件.它的功能特色总结如下: 1).支持单文件或多文件上传,可控制并发上传的文件数 2).在服务器端支持各种语言与之配合使用,诸如PHP,.NET,Java-- 3).通过参数可配置上传文件类型及大小限制 4).通过参数可配置是否选择文件后自动

jQuery插件支持同一页面被多次调用_jquery

更新 1.2版本 删除回调函数的控制台输出调试,因为在IE6下没有控制台会造成插件出错, 完成build功能. 提示信息按钮支持多个,此版本为最新的稳定版. 近期将会提供更加详细的data书写格式说明,build时html格式说明,详细的options参数说明.补充内容类型的切换展示案例. Introduction: jquery imageShown 插件可以完成多种形式的内容轮显切换, 所有我提供的Demo中虽然都是导航带动的轮显图片,但是它还能完成内容的切换,即可以完成Tab功能,单纯的图

jQuery插件ajaxFileUpload实现异步上传文件效果_jquery

ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明: 1.url   上传处理程序地址. 2,fileElementId   需要上传的文件域的ID,即<input type="file">的ID. 3,secureuri 是否启用安全提交,默认为false. 4,dataType 服务器返回的数据类型.可以为xml,scri