CSS+JS的拖动滑块实现价格区间搜索效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>CSS+JS的拖动滑块实现价格区间搜索效果丨石家庄地毯|河北冷风机厂家</title>
    <style>
    #dragbar{position:relative; width:170px; top:26px; float:left;}
    #long_bar{ height:0.6em; border:1px solid #aaa; border-radius:4px;}
    #small_bar{ background:#ccc; position:absolute; z-index:1; top:1px; height:0.6em; line-height:0.6em; overflow:hidden;}
    #long_bar .btn{ width:1.2em; z-index:2; position:absolute; height:1.2em; cursor:pointer; top:-0.3em; margin-left:-0.6em; background:#D72D2E; border-radius:4px; border:1px solid #D3D3D3;}
    .price{ width:100px; padding:22px 5px 0; height:18px; color:#c90202; float:left; text-align:center;}
    </style>
    </head>
    <body>
    <div id="min_price" class="price" style="margin-right:5px;">100元</div>
    <div id="dragbar">
    <div id="long_bar">
    <div id="small_bar"></div>
    <span class="btn"></span>
    <span class="btn"></span>
    </div>
    </div>
    <div id="max_price" class="price" style="margin-left:5px;">1319元</div>
    </body>
    <script>
    window.onload=function(){
    var longbar=document.getElementById("long_bar");
    var smallbar=document.getElementById("small_bar");
    var arrbtn=longbar.getElementsByTagName("span");
    var minP=document.getElementById("min_price");
    var maxP=document.getElementById("max_price");
    var minprice=parseInt(minP.innerHTML);
    var maxprice=parseInt(maxP.innerHTML);
    var total=maxprice-minprice,Isclick=false,zindex=2;
    smallbar.style.width=100+"%";
    smallbar.style.left=0;
    arrbtn[0].style.left=0;
    arrbtn[1].style.left=100+"%";
    var maxwidth=longbar.offsetWidth;//最大移动值
    arrbtn[0].onmousedown=function(e){
    Isclick=true;
    this.style.zIndex=++zindex;
    var x=(e||window.event).clientX;//取点击位置的X轴长度值
    //按钮的x轴长度值
    var lenght=this.offsetLeft+(this.offsetWidth/2-1);
    var btn2lenght=arrbtn[1].offsetLeft+(arrbtn[1].offsetWidth/2-1);
    var maxlenght=Math.min(maxwidth,btn2lenght);
    var btn=this;
    document.onmousemove=function(e){
    if(Isclick)
    {
    var thisX=(e||window.event).clientX;//当前移动位置的X轴长度值
    var golenght=Math.min(maxlenght,Math.max(0,lenght+(thisX-x)));//移动的长度
    var leftVal=(golenght/maxwidth)*100;
    btn.style.left=leftVal+"%";//使用百分比
    smallbar.style.left=btn.style.left;
    smallwidth();
    price(minP,leftVal);
    }
    else
    {
    return false;
    }
    //window.getSelection ? window.getSelection.removeAllRanges : document.selection.empty;//判断是否有选中项
    }
    document.onmouseup=window.onblur=btn.onlosecapture=function()
    {
    Isclick=false;
    btn.releaseCapture && btn.releaseCapture();
    };
    this.setCapture && this.setCapture();
    return false;
    }
    arrbtn[1].onmousedown=function(e){
    Isclick=true;
    this.style.zIndex=++zindex;
    var x=(e||window.event).clientX;
    var lenght=this.offsetLeft+(this.offsetWidth/2-1);
    var btn1lenght=arrbtn[0].offsetLeft+(arrbtn[0].offsetWidth/2-1);
    var minlenght=Math.max(0,btn1lenght);
    var btn1=this;
    document.onmousemove=function(e){
    if(Isclick)
    {
    var thisX=(e||window.event).clientX;
    var golenght=Math.max(minlenght,Math.min(maxwidth,lenght+(thisX-x)));
    var leftVal=(golenght/maxwidth)*100;
    btn1.style.left=leftVal+"%";
    smallwidth();
    price(maxP,leftVal);
    }
    else
    {
    return false;
    }
    //window.getSelection ? window.getSelection.removeAllRanges : document.selection.empty;
    }
    document.onmouseup=window.onblur=btn1.onlosecapture=function()
    {
    Isclick=false;
    btn1.releaseCapture && btn1.releaseCapture();
    };
    this.setCapture && this.setCapture();
    return false;
    }
    function smallwidth(){
    var left=parseFloat(arrbtn[0].style.left);
    var right=parseFloat(arrbtn[1].style.left);
    smallbar.style.width=(right-left>0?Math.floor(right-left):0)+"%";
    }
    function price(obj,leftVal){
    var p=parseInt((total/100)*leftVal)+minprice;
    if(p>minprice && p<maxprice){p=p%5>3?p+(5-(p%5)):p-(p%5)}
    obj.innerHTML=p+"元";
    }
    }
    </script>
    </html>
    <br><br><hr>
时间: 2024-09-29 01:43:16

CSS+JS的拖动滑块实现价格区间搜索效果的相关文章

原生js实现拖动滑块验证

拖动滑块验证是现在的网站随处可见的,各式各样的拖动法都有. 下面实现的是某宝的拖动滑块验证: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .drag{position: relative;

html5拖动滑块

html5中input有增加type=range.这为拖动滑块提供了很大的便利.下面是他的属性: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .main{ position: relative;width: 500px;} #range { -w

js实现拖动验证码

效果图: Index.html <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8" /> <meta name="viewport"

CSS+JS打造的精美放大镜效果

<!doctype html> <html> <head> <base href="http://www.CsrCode.Cn/" /> <meta charset="utf-8"/> <title>CSS+JS打造的精美放大镜效果丨梨花粉价格丨河北叉车</title> <meta http-equiv="X-UA-Compatible" content=&

html+css+js实现复选框全选与反选

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <title>html+css+js实现复选框全选与反选</title> 5 <meta http-equiv="content-type&qu

如何用正则匹配后缀名不为.jpg, .css, .js, .html, .htm, .png的文件

有网友碰到过这样的问题:如何用正则匹配后缀名不为.jpg, .css, .js, .html, .htm, .png的文件,问题详细内容为: 如何用正则匹配后缀名不为.jpg, .css, .js, .html, .htm, .png的文件 ? ,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下: 解决方案1: /.*\.(?:(?!(jpg|css|js|html|htm|png)).)+/ --- 共有 3 条评论 --- 皮总find . -ty

WordPress引入css/js方法总结

WordPress引入css/js方法很多,条件很多.如何全局加载,或仅在某些页面精准加载,什么时候需要先注册脚本再加载,本文希望找到最简单的方式,并给出探索更多方法的途径. 在前台加载css/js 用wp_enqueue_script()函数加载js,用wp_enqueue_style()加载css,加载资源的位置(action)只有一个——wp_enqueue_scripts. 用wp_enqueue_系列函数可以更好的处理脚本样式表的依赖关系,防止重复加载,以twentyfifteen主题

asp.net MVC发布iis无法加载css,js和图片

今天真够郁闷的,遇到了在本地能运行的项目到了iis服务器那里就不行了,无法加载css,js和图片,这里说清楚一下先,关于asp.net 的MVC中这样的情况其实不少,但是之前遇到的是在visual studio运行的时候就已经不能加载css和js文件,那种情况一般都是路径的问题,改下页面代码就行,网上教程不少,而这个其实是一个CMS的开源系统.Orchard,国庆实在无聊,就想玩下这个asp.net MVC框架的CMS,而且是微软推荐的开源CMS,提到了就来说说这个吧,和国内的其他CMS对比起来

springMvc整合Freemarker引入CSS,JS文件404的问题

在spring webmvcjar包中有个spring.ftl的文件 如下图: 你可以把他拷出来,放到你的目录下,也可以不拷出来,具体的用法就是 在你的freemaker模版开头加上 <#import "spring.ftl" as spring/> 如果你烤出了spring.ftl文件,像找存在感的话,比如拷到 当前项目路径的plugins文件下 那么就加上这个路径就好了<#import "plugins/spring.ftl" as sprin