zoukankan      html  css  js  c++  java
  • 防京东进度尺的金额

    HTML

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <title>jQuery手指滑动刻度尺选择值特效</title>
    <link rel="stylesheet" href="css/style.css">
    </head>
    <body>
    <div class="page" data-page='profile1'>
        <div class="page-main">
            <input type="hidden" name="first_screen" value="100">
            <div class="row">
                <label for="" class="label">借款金额 <span class="number age-num" initial-value="0" value="0"><input type="text" id="cNum" value="100"></span><span class="letter">元</span></label>
                <div class="ruler ruler-age">
                    <div class="main" value="-1">
                        <ul data-initial='true'>
                            
                        </ul>
                    </div>
                    <div class="arrow"></div>
                </div>
            </div> 
        </div>
    </div>
    </body>
    </html>
    <script src="js/jquery.min.js"></script> 
    <script src="js/in01.js"></script>
    

      CSS样式

    *{
        margin:0;
        padding:0;
    }
    html,body,body > form{
        height: 100%;
    }
    body{
        font:22px/1.5 STHeiTi,9ED14F53,helvetica Regular,Heiti SC;
        color:#666;
    }
    a{
        text-decoration: none;
    }
    a,input,li,span,div{
        -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    }
    input:focus{
        outline: none;
        -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    }
    input{
        -webkit-appearance: none;
    }
    .hover {
        /*  background-color: #ccc !important;
          -webkit-transition: all 0.1s !important;  */
    }
    img.auto{
        max-width: 100%;
    }
    ul li{
        list-style: none;
    }
    
    .page{
        padding:0 5%;
        height: auto !important;
        min-height: 100%;
    
        position: relative;
    }
    .page .page-main{
        padding:20px 0 80px;
    }
    .row {
        margin-bottom:30px;
    }
    .row .label{
        display: block;
        font-size: 20px;
        color:#666;
        padding-bottom:8px;
    }
    .row .ruler{
        border-bottom:2px solid #cdcdcd;
        height: 70px;
        overflow: hidden;
        position: relative;
        width:290px;
    }
    .ruler .main{
        width:3000px;
        position: relative;
        left:0;
    }
    .ruler .main ul{
        overflow: hidden;
        -webkit-transform:translateX(117px);
        margin: 0 0 0 27px;
    }
    .ruler li{
        float: left;
        width:10px;
        height:30px;
        padding-top:30px;
        padding-left: 0;
        text-align: center;
        color:#efe2b1;
        margin-top:10px;
        margin-right: 0;
        position: relative;
        font-size: 12px;
       
    }
    .ruler li.line{
        height:30px;
        margin-top:0;
    }
    .ruler li:before{
        content: "";
        position: absolute;
        height: 20px;
        width: 2px;
        top:50px;
        left:0px;
        background-color:#cdcdcd;
    }
    .ruler li .num{
        display: inline-block;
        position: absolute;
        left: 0;
    }
    .ruler .arrow{
        width:0;
        height: 0;
        border:8px solid transparent;
        border-bottom:8px solid #ffc539;
        position: absolute;
        left:50%;
        bottom:0;
        margin-left:-8px;
    }

    JS

    /**
     * Created by Administrator on 2016/11/25.
     */
    setTimeout(function(){
        var ed = 5000;
        for(var i = 0;i<=ed;i=i+100){
            if(i%1000==0){
                var str = '<li class="line"><span class="num">'+i+'</span></li>';
            }else{
                var str = '<li></li>';
            };
            $(".main ul").append(str);
        }
        var n =0;
    
        var u,end,start,g,g2;
    
        var w0 = 10;
        var ageVal = $("div[data-page='profile1']").find(".row").eq(0).find(".number").attr("initial-value"); //0
        var mouVal = $("div[data-page='profil']");
    
        $('.ruler .main').eq(0).css({ 
            '-webkit-transform':'translateX(-'+Math.ceil(parseInt(ageVal*w0))+'px)'
        }).attr('value',Math.ceil(ageVal*w0));
    
    
        $('body').on('touchcancel,touchend,touchmove,touchstart',function(e){
            e.preventDefault();
        })
    
        $('.selectize li').on('touchstart',function(){
            $(this).addClass("hover").siblings("li").removeClass("hover");
        })
    
        $('.selectize li').on('touchsend',function(){
            $(this).removeClass("hover");
        })
    
        
        $('.ruler ul').on("touchstart",function(e){
            var  initial = $(this).attr('data-initial'); 
            e.stopPropagation();
            v = parseInt($(this).parent(".main").attr('value')); 
            start = 0;
            end = '-'+ed/10; 
            g = 10; 
           // console.log("touchstart"+e.originalEvent.changedTouches[0].pageX);
            if(initial == 'true'){
                startX = e.originalEvent.changedTouches[0].pageX+v;
                $(this).attr('data-initial','false');
            }else{
                startX = e.originalEvent.changedTouches[0].pageX-v;
            }
        });
    
        $('.ruler ul').on("touchmove",function(e){
    
            var number = parseInt($(this).closest(".row").find('.number').attr('value')); //0
            moveX = e.originalEvent.changedTouches[0].pageX;
            X = moveX - startX; 
            if(X>0){
                var vv = $(this).parent(".main").attr('value');
                if(vv >=start){
                    start = X>start ? start : X;
    
                    $(this).parent(".main").css({
                        '-webkit-transform':'translateX('+start+'px)'
                    }).attr('value',start);
                }else{
                    $(this).parent(".main").css({
                        '-webkit-transform':'translateX('+X+'px)'
                    }).attr('value',X);
                }
                $(this).closest(".row").find('#cNum').val(100);
            
                var ageVal = $(this).closest(".row").find('#cNum').val();
                $(this).closest(".row").find('#cNum').val(parseInt(ageVal));         
            }else{
             
                var vv = $(this).parent(".main").attr('value');
                if(vv=end){ 
                    //end = X< end ? end : X;  //!��������
                    if(X>=-500){
                        end = X;
                    }
                    $(this).parent(".main").css({
                        '-webkit-transform':'translateX('+end+'px)'
                    }).attr('value',end);
                }else{
                    $(this).parent(".main").css({
                        '-webkit-transform':'translateX('+X+'px)'
                    }).attr('value',X);
                }
                $(this).closest(".row").find('#cNum').val(Math.ceil(number+Math.abs(vv/g))*100);
                var ageVal = $(this).closest(".row").find('#cNum').val();
                $(this).closest(".row").find('#cNum').val(parseInt(ageVal))   
                  
                   
            }
            e.preventDefault();
        });
    
    
        $('.ruler ul').on("touchend",function(e){
    
            e.stopPropagation();
    
            moveEndX = e.originalEvent.changedTouches[0].screenX;
    
            X = moveEndX - startX;
    
            var arr = new Array();
    
            if($(this).closest('.ruler').hasClass("ruler-age")){
    
                var value=  Math.abs($(this).parent(".main").attr("value")); 
    
                var value2 = Math.round(Math.abs(value)/10)*10;
    
                if(value > value2){
                    value2+=10;
                }
                //console.log("value:"+value+",value2:"+value2);
    
                $(this).parent(".main").css({
                    '-webkit-transform':'translateX(-'+value2+'px)'
                }).attr('value','-'+value2);
            }
    
    
            $(this).closest(".page").find(".number").each(function(){
                var txt = $(this).text();
                arr.push(txt);
            });
    
            var arrayJoin = arr.join('##');
    
            $(this).closest(".page").find('input[type="hidden"]').val(arrayJoin);
    
        });
        //input改变的时候下面尺子也变化额度
        $("#cNum").bind("input",function(e){
            var reg=/^[1-9]d*$/;
            if (!reg.test($(this).val())) {
               $(this).val("");
            };
            if($(this).val()>5000){
                $(this).val(5000);
            };
            let val = -$(this).val()/10;
            $(".main").css({
                '-webkit-transform':'translateX('+val+'px)'
            }).attr('value',val);
        })
    
    },10);
  • 相关阅读:
    2019-3-24
    模板
    试试Markdown编辑器
    Codeforces Round #529 (Div. 3) D. Circular Dance
    Codeforces Round #529 (Div. 3) C. Powers Of Two(数学????)
    poj 2566"Bound Found"(尺取法)
    poj 3273"Monthly Expense"(二分搜索+最小化最大值)
    二分搜索
    Codeforces Round #518 (Div. 2) B LCM
    2018.12.21 浪在ACM 集训队第十次测试赛
  • 原文地址:https://www.cnblogs.com/binmengxue/p/6723540.html
Copyright © 2011-2022 走看看