zoukankan      html  css  js  c++  java
  • 实现的时钟(time)

    <!doctype html>
    <html lang="en">
    <head>
    <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
    <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/exporting.js"></script>
    <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/highcharts-more.js"></script>
    <script>
    $(function () {

    /**
    * Get the current time
    */
    function getNow () {
    var now = new Date();

    return {
    hours: now.getHours() + now.getMinutes() / 60,
    minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
    seconds: now.getSeconds() * 12 / 60
    };
    };

    /**
    * Pad numbers
    */
    function pad(number, length) {
    // Create an array of the remaining length +1 and join it with 0's
    return new Array((length || 2) + 1 - String(number).length).join(0) + number;
    }

    var now = getNow();

    // Create the chart
    $('#container').highcharts({

    chart: {
    type: 'gauge',
    plotBackgroundColor: null,
    plotBackgroundImage: null,
    plotBorderWidth: 0,
    plotShadow: false,
    height: 200
    },

    credits: {
    enabled: false
    },

    title: {
    text: ' '
    },

    pane: {
    background: [{
    // default background
    }, {
    // reflex for supported browsers
    backgroundColor: Highcharts.svg ? {
    radialGradient: {
    cx: 0.5,
    cy: -0.4,
    r: 1.9
    },
    stops: [
    [0.5, 'rgba(255, 255, 255, 0.2)'],
    [0.5, 'rgba(200, 200, 200, 0.2)']
    ]
    } : null
    }]
    },

    yAxis: {
    labels: {
    distance: -20
    },
    min: 0,
    max: 12,
    lineWidth: 0,
    showFirstLabel: false,

    minorTickInterval: 'auto',
    minorTickWidth: 1,
    minorTickLength: 5,
    minorTickPosition: 'inside',
    minorGridLineWidth: 0,
    minorTickColor: '#666',

    tickInterval: 1,
    tickWidth: 2,
    tickPosition: 'inside',
    tickLength: 10,
    tickColor: '#666',
    title: {
    text: 'Powered by<br/>Highcharts',
    style: {
    color: '#BBB',
    fontWeight: 'normal',
    fontSize: '8px',
    lineHeight: '10px'
    },
    y: 10
    }
    },

    tooltip: {
    formatter: function () {
    return this.series.chart.tooltipText;
    }
    },

    series: [{
    data: [{
    id: 'hour',
    y: now.hours,
    dial: {
    radius: '60%',
    baseWidth: 4,
    baseLength: '95%',
    rearLength: 0
    }
    }, {
    id: 'minute',
    y: now.minutes,
    dial: {
    baseLength: '95%',
    rearLength: 0
    }
    }, {
    id: 'second',
    y: now.seconds,
    dial: {
    radius: '100%',
    baseWidth: 1,
    rearLength: '20%'
    }
    }],
    animation: false,
    dataLabels: {
    enabled: false
    }
    }]
    },

    // Move
    function (chart) {
    setInterval(function () {
    var hour = chart.get('hour'),
    minute = chart.get('minute'),
    second = chart.get('second'),
    now = getNow(),
    // run animation unless we're wrapping around from 59 to 0
    animation = now.seconds == 0 ?
    false :
    {
    easing: 'easeOutElastic'
    };

    // Cache the tooltip text
    chart.tooltipText =
    pad(Math.floor(now.hours), 2) + ':' +
    pad(Math.floor(now.minutes * 5), 2) + ':' +
    pad(now.seconds * 5, 2);

    hour.update(now.hours, true, animation);
    minute.update(now.minutes, true, animation);
    second.update(now.seconds, true, animation);

    }, 1000);

    });
    });

    // Extend jQuery with some easing (copied from jQuery UI)
    $.extend($.easing, {
    easeOutElastic: function (x, t, b, c, d) {
    var s=1.70158;var p=0;var a=c;
    if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
    if (a < Math.abs(c)) { a=c; var s=p/4; }
    else var s = p/(2*Math.PI) * Math.asin (c/a);
    return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
    }
    });
    </script>
    </head>
    <body>
    <div id="container" style="min-700px;height:400px"></div>
    </body>
    </html>

  • 相关阅读:
    单位rem 触屏适配总结
    汉字转拼音插件:LM-PinYin.js
    PngOptimizer PNG压缩工具
    H5微信场景应用 audio模块
    LM_ReadImgMode.js PC单页轮播读图模式组件,零依赖!
    js中的eval方法
    IE6利用iframe遮挡 弹层 select
    H5 video安卓默认点击不能全屏播放解决办法
    JS正则截取两个字符串之间的字符串
    定宽320 缩放适配手机屏幕
  • 原文地址:https://www.cnblogs.com/huangf714/p/5922589.html
Copyright © 2011-2022 走看看