zoukankan      html  css  js  c++  java
  • 横向时间轴(进度条)

    1.项目需求 手写一个时间轴,也可以当进度条用。
    2.过程中遇到的问题是 边界值0 100%的处理。解决方法是 通过外层容器 把线条与圆点分离开,并延长线条,达到处理边界的效果。

      1 <!DOCTYPE html>
      2 <html>
      3 
      4     <head>
      5         <meta charset="utf-8">
      6         <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
      7         <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
      8         <title></title>
      9         <style>
     10             .timeline_box {
     11                  100%;
     12                 height: 8rem;
     13                 /*position: relative;*/
     14             }
     15 
     16             .timeline_container {
     17                 height: 5.6rem;
     18                 border: 1px solid transparent;
     19             }
     20 
     21             .btn-shadow {
     22                 -moz-box-shadow: 0px 0px 6px #20A0FF;
     23                 -webkit-box-shadow: 0px 0px 6px #20A0FF;
     24                 box-shadow: 0px 0px 6px #20A0FF;
     25             }
     26             /*线条*/
     27 
     28             .timeline_inner {
     29                 display: block;
     30                  60%;
     31                 height: 0rem;
     32                 border: 1px solid transparent;
     33                 margin: 3.5rem auto 0;
     34                 position: relative;
     35             }
     36 
     37             .timeline {
     38                 /*height: 1px;
     39                 background-color: #20A0FF;
     40                 margin: 1.5rem auto;
     41                 overflow: visible;*/
     42                 position: relative;
     43             }
     44 
     45             .lines {
     46                 height: 1px;
     47                 background-color: #20A0FF;
     48                 margin: 0rem auto;
     49                 overflow: visible;
     50                 position: absolute;
     51                  calc(100% + 5px);
     52             }
     53 
     54             .timeline .dot {
     55                 position: absolute;
     56                 top: -4px;
     57                 left: 0;
     58                  8px;
     59                 height: 8px;
     60                 border-radius: 50%;
     61                 background-color: #20A0FF;
     62             }
     63 
     64             .timeline .dot.right {
     65                 right: -10px;
     66                 left: auto;
     67             }
     68 
     69             .timeline .curdot {
     70                 position: absolute;
     71                 left: 50%;
     72                 top: -7px;
     73                  14px;
     74                 height: 14px;
     75                 background-color: #FFF;
     76                 border-radius: 50%;
     77                 border: 1px solid #20A0FF;
     78             }
     79 
     80             .timeline .curdot>.dot {
     81                 display: block;
     82                 margin: 3px;
     83                 position: initial;
     84             }
     85             /*百分比*/
     86 
     87             .timeline .dot .period {
     88                 font-size: 11px;
     89                 color: #666666;
     90                 white-space: nowrap;
     91                  auto;
     92                 -moz-transform: translate(-50%, 100%);
     93                 -ms-transform: translate(-50%, 100%);
     94                 -webkit-transform: translate(-50%, 100%);
     95                 -o-transform: translate(-50%, 100%);
     96                 transform: translate(-50%, 100%);
     97                 position: absolute;
     98                 top: -3px;
     99                 left: 50%;
    100             }
    101             /*提示信息*/
    102 
    103             .cur_tip {
    104                 position: absolute;
    105                 /*border: 1px solid red;*/
    106                 white-space: nowrap;
    107                 background-color: #20A0FF;
    108                 color: #FFF;
    109                 font-size: 13px;
    110                 padding: 4px 6px 2px 6px;
    111                  auto;
    112                 top: -10px;
    113                 overflow: visible;
    114                 border-radius: 2px;
    115                 transform: translate(-50%, -100%);
    116                 -webkit-transform: translate(-50%, -100%);
    117                 -moz-transform: translate(-50%, -100%);
    118                 -o-transform: translate(-50%, -100%);
    119                 -ms-transform: translate(-50%, -100%);
    120             }
    121 
    122             .cur_tip i.arrow {
    123                 display: block;
    124                 -webkit-transform: rotate(-45deg);
    125                 -moz-transform: rotate(-45deg);
    126                 -ms-transform: rotate(-45deg);
    127                 -o-transform: rotate(-45deg);
    128                 transform: rotate(-45deg);
    129                 border-color: #20A0FF;
    130                 position: absolute;
    131                 /*bottom: -10px;*/
    132                 left: 55%;
    133                 top: 91%;
    134                 z-index: -2;
    135                 background-color: #20A0FF;
    136             }
    137 
    138             .arrow {
    139                  0.4rem;
    140                 height: 0.4rem;
    141                 position: absolute;
    142                 top: 50%;
    143                 right: 0.25rem;
    144                 margin-top: -0.2rem;
    145                 background: transparent;
    146                 border: 1px solid #666;
    147                 border-top: none;
    148                 border-right: none;
    149                 z-index: 2;
    150                 -webkit-border-radius: 0;
    151                 border-radius: 0;
    152                 -webkit-transform: rotate(-45deg);
    153                 -moz-transform: rotate(-45deg);
    154                 -ms-transform: rotate(-45deg);
    155                 -o-transform: rotate(-45deg);
    156                 transform: rotate(-45deg);
    157             }
    158         </style>
    159     </head>
    160 
    161     <body >
    162         <div class="timeline_box ">
    163             <div class="timeline_container">
    164                 <div class="timeline_inner">
    165                     <div class="timeline">
    166                         <div class="lines"></div>
    167                         <span class="dot">
    168                         <span class="period">0</span>
    169                         </span>
    170                         <span class="dot right">
    171                          <span class="period">100</span>
    172                         </span>
    173                         <!--当前百分比  -->
    174                         <span class="curdot" style="left:50%">
    175                             <i class="dot"></i>   
    176                             <div class="cur_tip">
    177                                  当前进度  <span id="percent" >50%</span>
    178                                 <i class="arrow"></i>
    179                             </div>
    180                         </span>
    181                 </div>
    182             </div>
    183         </div>
    184         </div>
    185 
    186         <div clas="set" style="margin: 20px auto;text-align: center;">
    187             设置进度
    188             <input type="number" name="num" id="num" value="50" max="100" min="0" />
    189         </div>
    190         <script>
    191             var s = document.getElementById("num");
    192             var ele = document.querySelector(".curdot");
    193             var per = document.querySelector("#percent");
    194             s.addEventListener("change", function() {
    195                 ele.style.left = num.value + "%";
    196                 per.innerHTML = num.value + "%"
    197             })
    198         </script>
    199     </body>
    200 
    201 </html>
  • 相关阅读:
    简单读取网上的文本文件
    学习官方示例 System.RunError
    上周热点回顾(9.209.26)
    上周热点回顾(9.69.12)
    中国程序员节,10月24日,你同意吗?
    上周热点回顾(9.139.19)
    博客园电子期刊2010年8月刊发布啦
    [每周特惠]敏捷软件开发(原书第2版) +敏捷开发的艺术
    Meego专题上线了
    【投票】中国程序员节选在哪天
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/9262129.html
Copyright © 2011-2022 走看看