zoukankan      html  css  js  c++  java
  • 模拟了个iphone上面的select框 需要下载iscroll

    不说了  直接上代码

    <!doctype html>
    <html>
        <head>
            <meta name="viewport" content="width=device-width,initial-scale=1.0,max-scale=1.0,user-scalable=0;" />
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <style type="text/css">
                *{margin:0; padding:0; list-style:none;}
                .selectId{ width:150px; height:40px; line-height:40px; text-align:center;background:#555; color:#FFF;}
                #selectBox{width:320px;}
                #selectBar{padding:5px; background:rgba(0,0,0,0.5);border-top:1px solid #000; -webkit-box-shadow:0 1px 1px #d4d4d4 inset;}
                #selectBar:after{content:""; clear:both;display:table;}
                #selectBar span{
                    float:left; padding:5px; font-size:11px;
                    background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#5F5F5F),color-stop(50%,#313131),color-stop(51%,black),color-stop(100%,black));
                    border-radius:5px; color:#a1a0a0; -webkit-box-shadow:0 1px 1px #191b1f inset,0 -1px 1px #9f9f9f inset;font-weight:bold;}
                #selectBar span:nth-child(1){-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0; border-right:1px solid #9b9999; margin-left:5px;}
                #selectBar span:nth-child(2){-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;}
                #selectBar span:nth-child(3){margin-left:10px; padding:5px 8px;}
                #selectBar span:nth-child(4){background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#6b87d8),color-stop(50%,#7595f0),color-stop(51%,#0e60f6),color-stop(100%,#4180f4)); float:right; color:#FFF;padding:5px 8px; cursor:pointer;}
                #selectList{ 
                    height:200px; padding:8px 10px;
                    background:-webkit-gradient(linear,left top, left bottom,color-stop(0%,rgba(88,112,179,0.5)),color-stop(50%,rgba(88,112,179,0.8)),color-stop(51%,rgba(74,86,128,0.8)),color-stop(0%,rgba(74,86,128,0.5)))}
                
                #selectList #selectLi{ width:100%; height:100%;background:-webkit-gradient(linear,left top, left bottom,color-stop(0%,#3b3939),color-stop(20%,#ffffff),color-stop(80%,#ffffff),color-stop(100%,#3b3939));  -webkit-box-sizing:border-box;overflow:hidden;  border-radius:5px; }
                #selectList #selectLi ul li{ font-size:24px; line-height:44px;height:44px;padding:0 10px 0 40px;}
                #selectList #selectLi ul li.current{ color:#376dd1;position:relative;}
                #selectList #selectLi ul li.current:after{position:absolute; content:"√"; color:#376dd1; display:block; width:40px; height:40px; visibility:visible; top:3px;left:16px;}
            </style>
        </head>
        <body>
            <div class="selectId" id="selectId">选择</div>
            <div id="selectBox" style="visibility:hidden">
                <div id="selectBar">
                    <span id="before_btn">前一项</span>
                    <span id="after_btn">后一项</span>
                    <span id="auto_btn">自动填充</span>
                    <span id="complete_btn">完成</span>
                </div>
                <div id="selectList" >
                    <div id="selectLi">
                        <ul>
                            <li>请选择1</li>
                            <li>请选择2</li>
                            <li>请选择3</li>
                            <li>请选择4</li>
                            <li>请选择5</li>
                            <li>请选择6</li>
                            <li>请选择7</li>
                            <li>请选择8</li>
                            <li>请选择9</li>
                            <li>请选择10</li>
                            <li>请选择11</li>
                            <li>请选择12</li>
                            <li>请选择13</li>
                            <li>请选择14</li>
                            <li>请选择15</li>
                            <li>请选择16</li>
                            <li>请选择17</li>
                            <li>请选择18</li>
                        </ul>
                    </div>
                </div>
            </div>
    
            <script type="text/javascript" src ="themes/js/iscroll-min.js"></script>
            <script>
            var myScroll;
            function loaded() {
                myScroll = new iScroll("selectLi",{
                    hScrollbar:false,
                    vScrollbar:true,
                });
            }
            document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
            document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
    
            </script>
            <script>
            (function(){
                var selectId = document.getElementById("selectId");
                var complete_btn = document.getElementById("complete_btn");
                var selectBox = document.getElementById("selectBox");
                var selectList = document.getElementById("selectList");
                var selectUl = selectList.getElementsByTagName("ul")[0];
                var liList = selectUl.getElementsByTagName("li");
                var ListLength = liList.length;
                var isClicked = false;
                var tag=0;
                selectId.onclick = function(){
                    selectBox.style.visibility ="visible";
                };
                complete_btn.onclick = function(){
                    selectBox.style.visibility ="hidden";
                };
                for(var i = 0; i < ListLength; i++){
                    liList[i].addEventListener("click",postText);
                    liList[i].onclick =(function(i){
                        return function(){
                            if(i!=tag){
                                liList[tag].removeAttribute("class");
                            }
                            isClicked = !isClicked; 
                            liList[i].setAttribute("class","current");
                            tag = i;
                        }
                    })(i);
                }
                function postText(){
                    selectTD = this.innerHTML;
                    selectId.innerHTML = selectTD;
                }
            })();
            </script>
        </body>
    </html>

    注:需要下载iscroll 改下路径

    bug:当整个设置为display:none的时候貌似iscroll获取不了高度 滚不起来。。还没想到办法 所以改成了visibility来隐藏 不过 也有个bug 就是那个勾 我用after写的 整个隐藏后 那个勾依然在页面上。

    也请哪位知道的大神指导下。

    图一张

  • 相关阅读:
    查看当前的数据和索引的总大小
    PXC安装
    [学习笔记]位运算
    PXC小结
    java算法集训代码填空题练习3
    mha配置参数详解
    [学习笔记]二分图
    Java 实现 蓝桥杯 等额本金
    账号权限问题导致 masterha_check_repl 检查失败
    [学习笔记]0/1分数规划
  • 原文地址:https://www.cnblogs.com/xingmi/p/2647853.html
Copyright © 2011-2022 走看看