设为首页 收藏本站
查看: 2510|回复: 0

[经验分享] Outlook 日历时间块布局 html5实现

[复制链接]

尚未签到

发表于 2015-9-14 08:31:40 | 显示全部楼层 |阅读模式
  

DSC0000.gif

  将左边的数据排列成右边的整齐和密集的数据。
  <html>
  
  <body>
    <canvas id=&quot;CanvasOri&quot; width=&quot;200&quot; height=&quot;200&quot; style=&quot;border:1px solid #c3c3c3;&quot;>
      Your browser does not support the canvas element.
    </canvas>
    <canvas id=&quot;Canvas1&quot; width=&quot;200&quot; height=&quot;200&quot; style=&quot;border:1px solid #c3c3c3;&quot;>
      Your browser does not support the canvas element.
    </canvas>
    <script type=&quot;text/javascript&quot;>
    var alldata = [[0, 90, -1], [0, 30, -1], [39, 51, -1], [0, 30, -1], [30, 120, -1], [30, 60, -1], [60, 90, -1], [15, 40, -1], [50, 70, -1], [30, 61, -1], [130, 165, -1], [135, 175, -1], [175, 200, -1]];
      function draw(canvas, data, bar, group) {
        var c = document.getElementById(canvas);
        var cxt = c.getContext(&quot;2d&quot;);
        cxt.fillStyle = &quot;#BBD7AF&quot;;
        var grd = cxt.createLinearGradient(0, 0, 200, 200);
        grd.addColorStop(0, &quot;#B9D6AD&quot;);
        grd.addColorStop(1, &quot;#D8E7D1&quot;);
        cxt.lineWidth = 1;


        var len = data.length;
        if (group == -1) group = len;
        bar = bar / group
        for (var i = 0; i < len; i&#43;&#43;) {
          var index = i;
          if (data[2] != -1) index = data[2];
          cxt.fillStyle = grd;
          cxt.strokeRect(bar * index, data[0], bar, data[1] - data[0]);
          cxt.fillRect(bar * index &#43; 1, data[0] &#43; 1, bar - 2, data[1] - data[0] - 2);
          cxt.fillStyle = &quot;#FF0000&quot;;
          cxt.fillText(data[0]&#43;&quot;,&quot;&#43;data[1],bar * index &#43; bar/2-10, data[0]&#43;(data[1]-data[0])/2);
        }
      }
      //已经排序好的数据
      function splitdata(data) {
        function numberorder(a, b) {
          return a[0] - b[0];
        }
        data.sort(numberorder);
        var stack = [];
        var len = data.length;
        var s = 0;
        var curmax = 0;
        for (var i = 0; i < len - 1; i&#43;&#43;) {
          if (curmax < data[1]) {
            curmax = data[1];
          }
          if (curmax <= data[i &#43; 1][0]) {
            stack.push(data.slice(s, i &#43; 1));
            s = i &#43; 1;
          }
        }
        stack.push(data.slice(s, i &#43; 1));
        return stack;
      }
      var alldata = splitdata(alldata);
      for (var m = 0; m < alldata.length; m&#43;&#43;) {
        var data = alldata[m];


        function numberorder(a, b) {
          return a[0] - b[0];
        }
        data.sort(numberorder);
        draw(&quot;CanvasOri&quot;, data, 200, -1);


        var k = 0;
        var len = data.length;
        for (var i = 0; i < len; i&#43;&#43;) {
          if (data[2] != -1) continue;
          data[2] = k;
          var curmax = data[1];
          for (var j = i &#43; 1; j < len; j&#43;&#43;) {
            if (curmax <= data[j][0] && data[j][2] == -1) {
              data[j][2] = k;
              curmax = data[j][1];
            }
          }
          k&#43;&#43;;
        }
        draw(&quot;Canvas1&quot;, data, 200, k);
        document.write(&quot;<br>--------------------<br>&quot;)
        for (var i = 0; i < len; i&#43;&#43;) {
          document.write(&quot;<br>&quot; &#43; data[0] &#43; &quot;&nbsp;&quot; &#43; data[1] &#43; &quot;&nbsp;&quot; &#43; data[2] &#43; &quot;<br>&quot;);
        }
      }
    </script>
  </body>


</html>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-113238-1-1.html 上篇帖子: mailto web弹出outlook发送邮件 下篇帖子: - C#编程大幅提高OUTLOOK的邮件搜索能力!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表