zoukankan      html  css  js  c++  java
  • 模拟进度条发现的彩蛋

      在模拟实现一个进度条的时候,首先想到的方法是控制width(横着的进度条),height(竖着的进度条)。

      我在这么做的时候遇到了一个问题。高度总是从下到上变换的。如果是倒着来的进度条就不好实现。宽度总是从左到右变话的。如果从右到左也遇到了问题。

      解决方法如下,设定一个relative的框,内部设定一个 absolute的框来实现进度条,进度条的初始位置根据top,left,bottom,right四个值来确定。

      

    <div class="cont">
            <div class="relative fl box">
                <div class="ctx top"></div>
            </div>
            <div class="relative fr box">
                <div class="ctx bottom"></div>
            </div>
        </div>
        <button id="first">第一个div</button>
        <button id="second">第二个div</button>
        <button class="reset">reset</button>
        <div class="cont">
            <div class="relative bar">
                <div class="progress left"></div>
            </div>
            <div class="relative bar">
                <div class="progress right"></div>
            </div>
        </div>
        <button id="third">第一个div</button>
        <button id="fourth">第二个div</button>
        <button class="reset">reset</button>

      通过transition来实现过渡效果

      

    .cont{
                width:600px;
                overflow: hidden;
            }
            .relative{
                position: relative;
            }
            .box{
                width:250px;
                height:300px;
            }
            .fl{
                float:left;
            }
            .fr{
                float:right;
            }
            .ctx{
                background-color: #FFF000;
                position: absolute;
                width:100%;
                height:0;
                left:0;
                transition: height .8s linear;
                -webkit-transition: height .8s linear;
            }
            button{
                margin-right: 10px;
                margin-top: 10px;
            }
            .top{
                top:0;
            }
            .bottom{
                bottom:0;
            }
            .left{
                left:0;
            }
            .right{
                right: 0;
            }
            .progress{
                background-color: #FF0000;
                position: absolute;
                width:0%;
                height:100%;
                -webkit-transition: width .8s linear;
                transition: width .8s linear;
            }
            .bar{
                height:30px;
                margin-top: 20px;
            }

        效果如下,demo地址,还不会使用cnblogs的demo示例。http://csywweb.github.io/i/1/index.html

  • 相关阅读:
    图片上传
    解决Vuex持久化插件-在F5刷新页面后数据不见的问题
    vue登录
    拖动排序的vue组件
    vue图片懒加载
    vue中使用图片预加载
    前端架构知识体系
    html判断IE版本
    HighCharts 在IE8下饼图不显示的问题
    新一代调试王者Console
  • 原文地址:https://www.cnblogs.com/xjcjcsy/p/5288490.html
Copyright © 2011-2022 走看看