zoukankan      html  css  js  c++  java
  • 模拟多桌面

    这段时间学习下linux,觉得linux的多桌面不错,于是顺便用js实现一个,虽说不知道有什么用,就当玩玩。

    PS:颜色的设定没有考虑,桌面多了颜色就会出错。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
    *{ margin: 0; padding: 0;}
    html,body{ height: 100%;}
    #wrap{ position: relative; 100%; height: 100%; overflow: hidden;}
    ul{ list-style: none;}
    #desktop_set{ z-index: 100; position: fixed; _position: absolute; top:0; right: 0; height: 30px; opacity: 0.7;}
    #desktop_nav li{ float: left; 120px; height: 30px; margin-bottom: 1px; background: #ff8c00; cursor: pointer;}
    #desktop_list{ position: absolute; top:0; left: 0; 100%; height: 100%;}
    .desktop_item{ position: absolute; 100%; height: 100%; color: #fff; font-size: 100px; overflow: hidden}
    </style>
    </head>
    <body>
    <div id="wrap">
    <div id="desktop_set">
    <ul id="desktop_nav">
    </ul>
    </div>
    <div id="desktop_list">
    </div>
    </div>
    <script type="text/javascript">
    var desktop_list = $('desktop_list');
    desktop_list.queen = [];
    var desktop_nav = $('desktop_nav');
    function $(id){
    return document.getElementById(id);
    }
    //创建桌面和导航条
    function createItem(rows,cols){
    var list = document.createDocumentFragment();
    var nav = document.createDocumentFragment();
    desktop_nav.style.width = cols*120 + 'px';
    for(var row = 0; row < rows; row++){
    for(var col = 0; col < cols; col++){
    var color = '#' + (row * 2) + (row * 2) + (col * 2) + (col * 2) + 0 + 'f';//这里颜色设定有问题
    var div = document.createElement('div');
    div.innerHTML = row + ':' + col;
    div.className = 'desktop_item';
    div.style.top = row*100 +'%';
    div.style.left = col*100 +'%';
    div.style.backgroundColor = color;
    list.appendChild(div);
    var li = document.createElement('li');
    li.row = row;
    li.col = col;
    li.innerHTML = row + ':' + col;
    li.style.background = color;
    nav.appendChild(li);
    }
    }
    desktop_list.appendChild(list);
    desktop_nav.appendChild(nav);
    }
    //切换桌面
    function changeDesk(list,row,col){
    var top = parseInt(list.style.top) || 0;
    var left = parseInt(list.style.left) || 0;
    var s = list.style;
    var queen= list.queen;
    for(var i = 0; i < 100; i++){
    (function(pos){
    var timer = setTimeout(function(){
    s.top = top -(pos+1)*(row + top/100) + '%';
    s.left = left -(pos+1)*(col + left/100) + '%';
    },(pos + 1)*10)
    queen.push(timer);
    })(i)
    }
    }
    //创建4*4个桌面
    createItem(4,4);
    desktop_nav.onclick = function(e){
    e = e || window.event;
    var t = e.target || e.srcElement;
    var queen = desktop_list.queen;
    if(t.tagName.toLowerCase() == 'li'){
    for(var i = 0,len = queen.length; i< len; i++){
    clearTimeout(queen[i]);
    }
    changeDesk(desktop_list,t.row,t.col);
    }
    }
    </script>
    </body>
    </html>



  • 相关阅读:
    (十三)网络html查看器
    (十二)handler消息处理机制
    (十一)ANR产生原理
    (十)android 中数据存储与访问——使用SharedPreferences保存数据
    (九)android 中数据存储与访问——保存文件到手机内存
    (八)activity的生命周期
    (七)android 通知对话框,并且监听了返回键,当按下返回键也会创建一个对话框
    (六)采用HTML创建UI
    (五)使用代码创建UI
    (六)代码编写UI
  • 原文地址:https://www.cnblogs.com/xesam/p/2275176.html
Copyright © 2011-2022 走看看