zoukankan      html  css  js  c++  java
  • QQ菜单OUTLOOK风格

      1<html>
      2<head>
      3<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
      4<style type='text/css'>
      5.folder1 {}{text-align:center; background: #00A4E1; border: 2px outset; background-image:url(Images/skin/folder_bg.gif); border-color: #00BBFF #0077FF #FFFFFF #00BBFF; cursor: hand; font-size: 9pt}
      6.folder2 {}{text-align:center; background: #20C1FF; border: 2px outset; background-image:url(Images/skin/folder_bg.gif); border-color: #00BBFF #0077FF #0077FF #60D3FF; cursor: hand; font-size: 9pt}
      7.foldercont{}{background: #D9ECF4; border: 1px outset; border-color: #B0D8FF #0077FF #0077FF #B0D8FF; font-size: 9pt; cursor: default;}
      8</style>
      9
     10<SCRIPT LANGUAGE=javascript>
     11onload=function(){
     12 var lstr = ""
     13 for (var i=0; i<30; i++) lstr+= "haha..<br>";
     14 var lofolder = new outlookfolder(null,335,100,15);
     15 lofolder.addfolder("菜单1","1..<br>2..");
     16 lofolder.addfolder("菜单2",lstr);
     17 lofolder.addfolder("菜单3");
     18 lofolder.addfolder("菜单4");
     19 lofolder.addfolder("菜单5");
     20 lofolder.showfolderX(0);
     21}

     22     //[容器,高,宽,展开速度]
     23function outlookfolder(aoP,aih,aiw,ait){
     24 if (aih==null) aih=400;
     25 if (aiw==null) aiw="100%";
     26 if (ait==null) ait=20;
     27 var loMain  = document.createElement("<span style='overflow:hidden;height:"+aih+";"+aiw+"'></span>");
     28    var lsUniqueID = loMain.uniqueID;
     29 var loSlide = document.createElement("span");
     30    loSlide.innerHTML = "<button onmouseout='"+lsUniqueID+".SlideClickStop()' onmousedown='"+lsUniqueID+".SlideClickStart();"+lsUniqueID+".SlideCilckup()' style='position:absolute;display:none;10;height:10'></button><button onmouseout='"+lsUniqueID+".SlideClickStop()' onmousedown='"+lsUniqueID+".SlideClickStart();"+lsUniqueID+".SlideCilckdown()' style='position:absolute;display:none;10;height:10'></button>";
     31 var liContH = aih;
     32    if (aoP==null){
     33        document.body.appendChild(loMain);
     34        document.body.appendChild(loSlide);
     35    }
    else{
     36        aoP.appendChild(loMain);
     37        aoP.appendChild(loSlide);
     38    }

     39         //增加一个目录[名字,内容]
     40    loMain.addfolder = function(str,cont){
     41     var loPar = document.createElement("SPAN");
     42     loPar.innerHTML = "<span onclick='"+lsUniqueID+".showme(this)' style='overflow:hidden;100%;' class='folder1'></span><span style='position:relative;overflow:hidden;100%;height:1' class='foldercont'></span>";
     43  this.appendChild(loPar);
     44  loPar.children[0].innerHTML = (str==null?" ":str);
     45  loPar.children[1].innerHTML = (cont==null?" ":cont);
     46  liContH -= parseInt(loPar.children[0].offsetHeight);
     47    }

     48         //打开/关闭第x个目录夹
     49 loMain.showfolderX = function(aix){
     50  loMain.showme(loMain.children[aix].children[0])
     51 }

     52      //打开/关闭当前obj所在的目录
     53    loMain.showme = function(obj){
     54  if (loMain.moving) return;
     55  loMain.moving = true;
     56  if (obj.bOpen){
     57   obj.bOpen = false;
     58   loMain.closefolder(obj.parentElement.children[1]);
     59   obj.className = 'folder1';
     60  }
    else{
     61   obj.bOpen = true;
     62   loMain.openfolder(obj.parentElement.children[1]); 
     63   obj.className = 'folder2';
     64   var lxfolders = loMain.children;
     65   for (var i=0; i<lxfolders.length; i++){
     66    var loChild = lxfolders[i].children[0];
     67    if(loChild.uniqueID!=obj.uniqueID){
     68     lxfolders[i].children[1].style.height=1;
     69     loChild.bOpen = false;
     70     loChild.className = 'folder1';
     71    }

     72   }

     73  }

     74  loMain.SlideItemsAction(obj.parentElement.children[1]);
     75    }

     76         //为目录内容设置Slide
     77    var loSlideItem = null;
     78 var lbSlideing = false;
     79 loMain.SlideCilckdown = function(){  //向下滚动
     80  loSlideItem.scrollTop += 2;
     81  if (!lbSlideing&&loSlideItem.scrollTop<loSlideItem.scrollHeight) setTimeout(lsUniqueID+'.SlideCilckdown()',1)
     82 }

     83 loMain.SlideCilckup = function(){  //向上滚动
     84  loSlideItem.scrollTop -= 2;
     85  if (!lbSlideing&&loSlideItem.scrollTop>0) setTimeout(lsUniqueID+'.SlideCilckup()',1)
     86 }

     87 loMain.SlideClickStart = function()//允许开始滚动
     88  lbSlideing=false;
     89 }

     90 loMain.SlideClickStop = function(){  //强制停止滚动
     91  lbSlideing=true;
     92 }

     93    loMain.SlideItemsAction = function(obj){
     94  var loUp   = loSlide.children[0];
     95  var loDown = loSlide.children[1];
     96  if (obj.scrollHeight<=liContH||obj.parentElement.children[0].bOpen!=true){
     97   loUp.style.display="none";
     98   loDown.style.display="none";
     99  }
    else{
    100   loSlideItem = obj;
    101   var lxOffset = getTrueOffset(obj);
    102   var lileft = lxOffset[0]+obj.offsetWidth-20;
    103   var litop  = lxOffset[1]+obj.offsetHeight+5;
    104   with(loUp.style){
    105    display="";
    106    left=lileft;
    107    top=litop;
    108   }

    109   with(loDown.style){
    110    display="";
    111    left=lileft;
    112    top=litop+liContH-40;
    113   }

    114  }

    115    }

    116        //逐渐关闭obj所在的内容显示
    117 loMain.closefolder = function(obj,ai){
    118  if (ai==null) ai=liContH;
    119  if (ai<ait){ obj.style.height=1; ai=1}
    120  if (ai>1){
    121   obj.style.height = ai;
    122   ai -= ait;
    123   setTimeout(lsUniqueID+'.closefolder('+obj.uniqueID+','+ai+')',1)
    124   return;
    125  }

    126  loMain.moving = false;
    127 }

    128     //逐渐打开obj所在的内容显示
    129 loMain.openfolder = function(obj,ai){
    130  if (ai==null) ai=1;
    131  if (liContH>ai){
    132   obj.style.height = ai;
    133   ai += ait;
    134   setTimeout(lsUniqueID+'.openfolder('+obj.uniqueID+','+ai+')',1)
    135   return;
    136  }

    137  loMain.moving = false;
    138 }

    139 function getTrueOffset(e){
    140    var x=0var y=0;
    141    if(!e)return [x,y];
    142    while(e){
    143      x+=parseInt(e.offsetLeft);
    144      y+=parseInt(e.offsetTop);
    145      e=e.offsetParent;
    146   }

    147   return [x,y];
    148  }

    149  return loMain;
    150}

    151</SCRIPT>
    152
  • 相关阅读:
    Python Scrapy 自动爬虫注意细节(3)
    Python Scrapy 验证码登录处理
    Python Scrapy 自动爬虫注意细节(2)
    Python Scrapy 自动爬虫注意细节(1)
    Python 爬虫知识点
    Android权限全记录(转)
    Python 爬虫知识点
    eclipse的Maven项目pom.xml错误信息提示missingxxxjar解决方案
    Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
    spark学习系列
  • 原文地址:https://www.cnblogs.com/skyblue/p/892677.html
Copyright © 2011-2022 走看看