• 模拟时间滚动条


    思路:通过div模拟时间滚动条

    结构图


    结构如下图所示(利用CSS样式表来调整样式):

     

    结果如下:

     

    通过滑动滑块,改变当前值。利用JavaScript获得滑块在滑动轴上的当前位置,并返回给当前显示值。另:滑块只能在给定范围内滑动。

    HTML代码如下


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>时间滚动条</title>
        <link rel="stylesheet" href="css/TimeBar.css">
        <script type="text/javascript" src="js/jquery2.1.4.js"></script>
    </head>
    <body style="background-color: papayawhip;">
        <div id="TimeBar" class="TimeBarClass">
            <div class="TimePClass">
                <p>时间:</p>
            </div>
            <div class="TimeBarContentClass">
                <div class="TimeSliderClass">
                    <div id="TimeMove" class="TimeMoveClass"></div>
                </div>
                <div class="StartTimeClass">
                    <p id="StartTimeBar">0</p>
                </div>
                <div class="CurTimeClass">
                    <p id="CurTimeBar">0</p>
                </div>
                <div class="EndTimeClass">
                    <p id="EndTimeBar">600</p>
                </div>
            </div>
        </div>
        <script type="text/javascript" src="js/TimeBar.js"></script>
    </body>
    </html>
    

    JavaScript代码如下:


    /**
     * Created by zhangxiaoshuang on 2016/9/8.
     */
    
    $(document).ready(function() {
        var $StartTimeBar=$("#StartTimeBar");
        var $CurTimeBar=$("#CurTimeBar");
        var $EndTimeBar=$("#EndTimeBar");
        //进度条
        var moveWindSpeed = false;//移动标记
        var _xTimeMove;//鼠标离控件左上角的相对位置
        var $TimeMove = $("#TimeMove");
        $TimeMove.mousedown(function (e) {
            moveWindSpeed = true;
            _xTimeMove = e.pageX - parseInt($TimeMove.css("left"));
        });
        $(document).mousemove(function (e) {
            var x = e.pageX - _xTimeMove;//控件左上角到屏幕左上角的相对位置
            if (moveWindSpeed) {
                if (x <=600 && x >= 0) {
                    $TimeMove.css({"left": x});
                    //转换为给定值的当前值
                    var s=Number($StartTimeBar.text());
                    var e=Number($EndTimeBar.text());
                    var n=e-s+1;
                    var PerTime=600/n;
                    var Min;
                    var Max;
                    for(var i=0;i<n;i++)
                    {
                        Min=i*PerTime;
                        Max=(i+1)*PerTime;
                        if((x>=Min && x<Max))
                        {
                            $CurTimeBar.text(s+i);
    
                        }
                        else if(x==600)
                        {
                            $CurTimeBar.text(e);
                        }
                    }
                }
            }
        }).mouseup(function () {
            moveWindSpeed = false;
        });
        //初始化函数 s,e分别为开始变量和结束变量
        function InitTimeBar(s,e)
        {
            //更新数据
            $StartTimeBar.text(s);
            $CurTimeBar.text(s);
            $EndTimeBar.text(e);
            $TimeMove.css("left","0");
        }
        //调用一次,进度条走一格,且数据被更新
        function NextTimeBar()
        {
            //获取当前Left
            var CurLeft=$TimeMove.position().left;
            //获取当前范围
            var s=Number($StartTimeBar.text());
            var e=Number($EndTimeBar.text());
            //获取间隔
            var n=e-s+1;
            var PerTime=600/n;
            var Min;
            var Max;
            var Ret;
            for(var i=0;i<n;i++)
            {
                Min=i*PerTime;
                Max=(i+1)*PerTime;
                if((CurLeft>=Min && CurLeft<Max))
                {
                    Ret=i;
                }
                else if(CurLeft==600)
                {
                    Ret=n-1;
                }
            }
            if(Ret==n-1)
            {
                return;
            }
            else
            {
                Ret++;
                var temp=Number($CurTimeBar.text());
                temp++;
                $CurTimeBar.text(temp);
                $TimeMove.css({"left": CurLeft+PerTime});
            }
        }
        //InitTimeBar(0,4);
        //NextTimeBar();
    });
    
  • 相关阅读:
    au 批处理 声音 插入空白
    加载字体
    AS2 继承
    an 跳转各个fla发布的html,并控制声音播放与停止
    两界面之间跳转
    AS3 实现过滤数组/删除数组中的相同元素(记录6种方法)
    as3 updateAfterEvent的作用
    egret 白鹭引擎遇到的问题和解决方案
    mysql内连接、左连接、右连接举例说明
    mysql常用函数示例
  • 原文地址:https://www.cnblogs.com/zhangxiaoshuang/p/6437715.html
Copyright © 2020-2023  润新知