星 空 之 旅

我就是我,我就是那天边的一颗孤星,发出与众不同的光芒

 俩小站都是一时兴起之作

 

翻墙搜索:

http://cungle.tk

隐藏吧:

http://hide8.cc

 

前者是可以翻墙的GOOGLE搜索

可以避免因为不稳定的屏蔽造成无法使用GOOGLE进行搜索

而且对于搜索出来的结果可以进行翻墙查看

 

后者是短网址短域名服务

在域名上没啥优势长了点儿

其实也是想试试短网址服务的实现原理

 

俩站都仅由学习和交流产生

也仅供学习和交流使用

javascript统计某个字符在字符串中出现了多少次

 <script>
var str ="adadfdfseffserfefsefseeffffftsdg";
alert(str.split('f').length-1);
 </script>

 

javascript统计某个数字在数字的数组中出现了多少次

比如统计1在[1,3,6,11,3,2,1,6,7,0,9,4,3,2,21,1]中出现了多少次

要注意的是不要把11,21算作1出现的次数

代码如下:

 <script>
var
 ar=[1,3,6,11,3,2,1,6,7,0,9,4,3,2,21,1];
document.write(('['+ar.join('],[')+']').split('[1],').length);
 </script>

用javascript来统计一个字符串里每个字符出现的频率

并且把频率从高到低排序列出来

其实方法很简单的

单次循环加一个排序即可

目前看到网上一些循环啊正则啊比较啊挺复杂的

 

<script>

 var str ="adadfdfseffserfefsefseeffffftsdg",o={},ar=[],

        i=str.length,t,Inx=0;
while(i--){
    t=str.substr(i,1);
    t in o?++ar[o[t]][1]:ar[o[t]=Inx++]=[t,1];
}
ar=ar.sort(function(a,b){return b[1]-a[1]});

</script>

 

以上所得到的ar就是把每个字符的出现频率排好序了

使用以下遍历代码即可显示出来:


for(i=0;i<ar.length;i++){
    document.write(ar[i][0]+':'+ar[i][1]+'<br>');
}

很简单不是吗

 2012年3月

由于POPCAP公司认为在webqq中的植物大战僵尸应用是侵犯了他们的版权

应用被下架了

偶的网站流量因此而跌至底线

因此也无力负担服务器昂贵的月租

估计于下个月撤销3号和4号服务器

暂时保留1号和2号

仍然感谢A5站长对偶的大力支持继续赞助偶1号服

2号是个年租服务器到期后也许也会撤掉

 

这一天的到来早在偶预计中

不过没想到这么突然

就在偶已经忘记这种可能性的时候瞬间来临

因为本网站的植物僵尸最初只是偶练习写程序的一个生成品罢了

根本没想到要放在应用里给大家玩

因此是直接使用的植物大战僵尸的原始形象

后来也是机遇使然进入了腾讯的webqq平台

进入平台的那天起偶就预感这一天早晚来临

知道消息的短时间内偶十分失落和伤感

一年多的努力似乎一瞬间就化为乌有

一年多的积累一下子就崩溃

不过转念一想

偶网站还在

偶技术还在

偶不应该忘记当初的理想

大不了从头再来

总是抄袭人家的形象创意也不是长久之计

这次也是给了偶一次转型的机会

偶不会放弃不会丧气

这也算不上是什么大的打击

也没什么损失

当前偶工作上也很繁忙

在解决这个事儿上可能也会耽误不少时间

偶希望能尽快解决工作上的问题

及早把自己的网站再度壮大

 

  领导交托的任务,

从未做过视频不得不临时下载了会声会影10一边学一边做,

在很有限的时间内匆忙完成了这个处女作。

在团拜会上的大屏幕播放笑果还不错~

总算一番心血没白费。

内容是2011年长沙县泉塘街道一年的大概工作总结。

 

 不要迷恋姐,姐只是个传说

 
在这么多站长中,我大概算是个异类了。
 
站长,也可以算是IT群体中一个数量庞大而却又比较特殊的群体,他们中可以有非常专业的人士,互联网行业中的精英,也可以有上班族、在校的中学生和大学生、做小生意的以及各行各业的人士,他们通过拥有一个网站成为一个站长而成为了IT业种的一员,他们都是个体小站长,也就是所谓的草根站长。互联网行业中的竞争可以说是血雨腥风啊,每年都有无数个站关张,每年又有无数个站冒出来,像我们这些草根站长要如何在这残酷的历史车轮碾压中生存下来?站长们的小站是脱颖而出还是默默无闻?你还能承受得住这看起来美好实际却压力巨大的称呼吗?

对很多草根站长来说,加入互联网这个行业有太多偶然,可能在某个时刻不经意间一个思路,一个引导,就带领你走上这个行业,成为一名草根站长。
时间飞逝,2011年已经接近尾声,2012正在走来,又即将过去的一年,你收获了什么?是否想过自己的前路在何方?

【转】淘宝上差评的原因【超搞笑】

 1,野生榛子差评[详情]榛子壳很硬,吃完这一斤,我的牙都快掉了,为了增加重量多收邮费,还往箱里塞一块破铁。

解释:你细看那块铁,中间是否有个螺丝,再往下看,是不中间有条缝,沿着这个缝用力分开---这块破铁就是给你夹榛子壳用的特制钳子!

2`物品名称:益达口香糖差评[详情]我要的是口香糖,但结果送来了一块象白乎乎的东西,甜死.无法吃.2006.04.04 16:56

解释:晕死,那是我送你的白巧克力啊,口香糖包在下面报纸里面呀,不会扔垃圾桶了吧?快去找找

中国,请放慢你跃进的脚步!

 中国不需要一个新的大跃进

或者称之为大跃进2012?

中国老百姓不需要世界排行前列

需要的只是有安全感的平实生活

需要的是不用担心吃东西被毒死上班被70码出事故被35人生命被奇迹

为什么上层领导都只注重面子工程

民众身体素质活动场地都普遍较差的情况下却只关注着拿金牌银牌

民众都在高房价高物价高消费的水深火热中挣扎却只在乎去年今年GDP涨了多少世界排行多少

人均收入世界垫底却只高呼国民生产总值世界第几

从基层到高层已经习惯性腐败官僚作风严重却日日笙歌山呼党国万岁过完90大寿已经开始憧憬下一个大庆

当一个灾难还未完结当受伤害的心灵还未平复就已经开始忙着筹办庆功会颁奖礼

打江山不易守江山更难

一个庞大的国家需要的是稳固的根基扎实的基础

不是拖着破败不堪的身躯打肿脸充胖子

这已经不是大跃进年代了

这已经不是唱着红歌喊着口号就能赶超英美的年代了

中国人民迫切想要幸福感安全感

中国,请放慢你跃进的脚步吧

你的子民已经跟不上你浮夸的脚步

你的灵魂已经被遗忘到身后

等一等你的道德

等一等你的良知

让每一个生命都重拾自己的尊严!

JS操作客户端缓存简单小函数

用getCookie,addCookie,deleteCookie三个小函数来对客户端缓存进行获取、添加、删除的操作

 /*获取document.cookie中指定名字的cookie
若cookie形如:a=1;b=2;c=3;那么getCookie('a')返回1
若形如a=1;b=x=1&y=2;那么getCookie('b')返回数组['x=1','y=2'];getCookie('b','x')返回1,getCookie('b','y')返回2
*/
var getCookie=function(name,name2){
    var strCookie=document.cookie,arrCookie=strCookie.split(';'),i=arrCookie.length,arr,i2,TmpStr;
    while(i--){
        TmpStr=(arr=arrCookie[i]).split('=');
        if(TmpStr[0].replace(' ','')==name){
            if((i2=TmpStr.length)==2){
                return TmpStr[1];
            }else{
                TmpStr.shift();
                TmpStr=TmpStr.join('=').split('&');
                if(name2==undefined){
                    return TmpStr;
                }else{
                    i2=TmpStr.length;
                    while(i2--){
                        if((arr=TmpStr[i2].split('='))[0].replace(' ','')==name2)return(arr[1]);
                    }
                }
            }
        }
    }
    return 0;
},

//添加一个cookie
addCookie=function(name,value){
    var cookieString=name+'='+escape(value);
    document.cookie=cookieString;
},

//删除一个cookie
deleteCookie=function(name){
    document.cookie=name+'=0;';
};

乱弹几则

 

1.问:“风吹草低见牛羊”是形容哪里?

答:鄱阳湖

 

2.问:黄瓜有哪些用途?

答:吃,美容,毒药,恩还有,你懂的。。。

 

3.某员工车爆胎,于是电话给单位请假,又于是人员去向牌上写着:请假两小时去安胎

 

悲催的六一

看着人家带着自己兴高采烈的小宝贝们过节日

心里拔凉拔凉的

不能陪小宝贝过节的爸妈是没尽到义务的

连小宝贝都不能回去看一眼的更加 杯具的

呆呆的点开一个又一个群里的大朋友的节日祝福

低落的心情

是自己丢下了乖乖

却又有一种被乖乖抛弃的感觉

宝贝

你那梦里的笑脸是为偶绽放么

仿windows经典扫雷小代码

08年底初学JS的第一个练手作品
 
翻出来稍作修改
 
算法神马的没动
 
另外在搜狗等浏览器上双键点击还有点问题
 
网址是
 
 
HTML语言:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>扫雷-JavaScript Mine Sweeper</title>
<style type="text/css">
table{TABLE-LAYOUT: fixed;cursor:pointer}
td{width: 20pxheight: 20pxfont-size: 12pxfont-family: Verdana;font-weight:boldtext-align:center;background:#CECECE;}
td.Normal, .Flag{border-left:2px solid #F5F5F5border-right:2px outset #F5F5F5border-top:2px solid #F5F5F5border-bottom:2px outset #F5F5F5font-weight:bold}
.Mine, .Boom, .M0, .M1, .M2, .M3, .M4, .M5, .M6, .M7, .M8{background:#C5C5C5;border-right:1px solid #B4B4B4border-bottom:1px solid #B4B4B4;}
td.Mine{background: url(mine.gif) no-repeat center}
td.Boom{background:#F00 url(mine.gif) no-repeat center}
td.Flag, td.ErrFlag{background-image: url(flag.gif);background-repeat: no-repeatbackground-position: center;}
td.ErrFlag{background:#0F0}
td.M1 {color: #00f}
td.M2 {color: #008000}
td.M3 {color: #f00}
td.M4 {color: #000080}
td.M5 {color: #800000}
td.M6 {color: #008080}
td.M7 {color: #000}
td.M8 {color: #808080}
</style>
<script>
var $=function(id){return document.getElementById(id)},
    MouseButton=LeftMouse=0,//作为双键单击的计数,mouseup事件置0,mousedown事件+1,当MouseButton=2说明双键同时单击;鼠标左键是否按下,当鼠标左键按下时为1,松开为0
    FlagImg=new Image(),
    HappyImg=new Image(),
    MineImg=new Image(),
    SadImg=new Image(),
    SuccessImg=new Image(),

    WhichButton=function(e){
        e=e||window.event;
        var b=getOs();
        if(b!=2){ //非FF
            switch(e.button){
                case 2:
                    return 0;
                case 0:
                    return b==1?0:1//b==1,IE
                default:
                    return 1;
            }
        }else{ //FF
            return e.which==3?0:1;
        }
    },

OMine={
    MaxX:9,MaxY:9,//最大的坐标
    MineCount:10,//定义雷的个数,可改
    FlagCount:0, //已经标记的旗子的数量
    OpenedCount:0, //已经打开的地区的数量
    MaxOpenCount:0,//应该要打开的最大地区数量
    //当OpenedCount=MaxOpenCount&&FlagCount=MineCount的时候,判断游戏成功结束
    Mine:[],
    GameOver:false, //true代表游戏失败结束
    Success:false, //true代表游戏成功结束
    aClear:[],//临时开雷的数组
    
    //刷新网页的时候初始化
    fInit:function(){
        var T=this,MaxX=T.MaxX,MaxY=T.MaxY,nX,nY=MaxY,MineCount=T.MineCount,
            AStr=['<table bordercolor="#000000" border="0" cellpadding="0" cellspacing="0" height="'+20*MaxY+'px" width="'+20*MaxX+'px" style="border: 10px inset #a0a0a0">'],
            i=0,TAr,TMine=T.Mine;
        T.MaxOpenCount=MaxX*MaxY-MineCount;
        while(nY--){
            AStr[++i]='<tr>';
            TAr=TMine[nY]=[];
            nX=MaxX;
            while(nX--){
                AStr[++i]='<td class="Normal" onmousedown="OMine.fMouseDown('+nX+','+nY+',event);" onmouseup="OMine.fMouseUp('+nX+','+nY+',event);" onmouseover="OMine.fButtonMouseOver('+nX+','+nY+')" onmouseout="OMine.fButtonMouseOut('+nX+','+nY+')" id="Img'+nX+'_'+nY+'"> </td>';
                TAr[nX]={
                    Mine:0, //0表示没有雷,1表示有雷
                    State:0,//0表示未开启,1表示左键开启,2表示右键标记
                    MineCount:0//周围有几个雷
                }
            }
              AStr[++i]='</tr>';
        }
        AStr[++i]='</table>';
        $('dMap').innerHTML=T.InitStr=AStr.join('');
        $('txtFlagCount').value=MineCount;
        T.fInitMine();
        $('btnRefreshMap').src='happy.gif';
        T.GameOver=T.Success=false;
        T.OpenedCount=T.FlagCount=T.aClear.lenght=0;
    },
    
    //为了方便循环赋值,给表格数组赋值的时候是XY倒过来循环的,所以调用的时候要倒回去
    //比如要获得该格子是否有雷,用OMine.fGetMine(x,y).Mine;
    fGetMine:function(X,Y){return this.Mine[Y][X]},
    
    //仅当按重新开始的按钮,不初始化大表格字符
    fRefreshMap:function(){
        var T=this;
        $('dMap').innerHTML=T.InitStr;
        T.fResetOMine();//必须先重置OMine,再重置99个雷
        T.fInitMine();
        T.GameOver=T.Success=false;
        $('btnRefreshMap').src='happy.gif';
        $('txtFlagCount').value=T.MineCount;
        T.OpenedCount=T.FlagCount=T.aClear.lenght=0;
    },

    //重置OMine.Mine数组
    fResetOMine:function(){
        var T=this,MaxY=T.MaxY,MaxX=T.MaxX,X,Y=MaxY,M,Mine=T.Mine,TAr;
        while(Y--){
            X=MaxX;
            TAr=Mine[Y];
            while(X--)(M=TAr[X]).Mine=M.State=M.MineCount=0;
        }
    },
    
    //初始化雷的数组
    fInitMine:function(){
        var T=this,MaxX=T.MaxX,MaxY=T.MaxY,a,fGetMine=T.fGetMine,
            aOld=[],x,y=MaxY,n=0,l=T.MineCount,xRand//一个随机数字
        while(y--){
            x=MaxX;
            while(x--)aOld[n++]=[x,y];
        }
        while(l--){
            a=aOld[xRand=Math.floor(Math.random()*(n-1))];
            T.fGetMine(a[0],a[1]).Mine=1;
            aOld.splice(xRand,1);
            --n;
        }
    },

    //鼠标移动到某格子的时候
    fButtonMouseOver:function(X,Y){
        var T=this;
        switch(MouseButton){
            case 2://双键按下的状态
                var arr=T.fGetAround(X,Y),i=arr.length,TAr;
                while(i--)T.fButtonDown((TAr=arr[i])[0],TAr[1]);
            case 1:
                LeftMouse==1&&T.fButtonDown(X,Y); //左键是按下的
        }
    },
    
    //鼠标移出某格子的时候
    fButtonMouseOut:function(X,Y){
        var T=this;
        switch(MouseButton){
            case 2://双键按下的状态
                var arr=T.fGetAround(X,Y),i=arr.length,TAr;
                while(i--)T.fButtonUp((TAr=arr[i])[0],TAr[1]);
            case 1:
                LeftMouse==1&&T.fButtonUp(X,Y); //左键是按下的
        }
    },

    //鼠标按下时没被开启的格子呈现被按下
    fButtonDown:function(X,Y){
        var srcEle=$('Img'+X+'_'+Y);
        srcEle.className=='Normal'&&(srcEle.className='M0');
    },
    
    //让没被开启并且已经呈现被按下的格子回复Normal
    fButtonUp:function(X,Y){
        var srcEle=$('Img'+X+'_'+Y);
        srcEle.className=='M0'&&!this.fGetMine(X,Y).State&&(srcEle.className='Normal');
    },
    
    //获取8个方向的坐标
    fGetAround:function(X,Y){
        var TX,TY,i=8,MX=this.MaxX-1,MY=this.MaxY-1,
            Arr=[[-1,0],[-1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1]],
            newArr=[],TAr;
        while(i--){
            TX=X+(TAr=Arr[i])[0];
            TY=Y+TAr[1];
            !(TX<0||TX>MX||TY<0||TY>MY)&&newArr.push([TX,TY]);
        }
        return newArr;
    },
    
    //鼠标在格子按下
    fMouseDown:function(X,Y,evt){
        var T=this;
        if(T.GameOver){
            alert('游戏失败,再接再厉!');
            return;
        }
        if(T.Success){
            alert('恭喜游戏成功!再来一局吧?');
            return;
        }
        var srcEle=$('Img'+X+'_'+Y),ObXY=T.fGetMine(X,Y),arr,i,TAr;
        ++MouseButton;
        evt=evt||window.event;
        switch(MouseButton){
            case 2:
                arr=T.fGetAround(X,Y);i=arr.length;
                while(i--)T.fButtonDown((TAr=arr[i])[0],TAr[1]);
                break;
            case 1:
                if(WhichButton(evt)){
                    LeftMouse=1;
                    T.fButtonDown(X,Y);
                }else{
                    switch(ObXY.State){
                        case 0:
                            ObXY.State=2;
                            srcEle.className='Flag';
                            --$('txtFlagCount').value;
                            ++T.FlagCount;
                            break;
                        case 2:
                            ObXY.State=0;
                            srcEle.className='Normal';
                            ++$('txtFlagCount').value;
                            --T.FlagCount;
                    }
                }
            }
    },
    
    //鼠标在格子弹起
    fMouseUp:function(X,Y,evt){
        var T=this;
        evt=evt||window.event;
        var srcEle=$('Img'+X+'_'+Y),ObXY=T.fGetMine(X,Y),arr,i,TAr;
        switch(MouseButton){
            case 2: //MouseDown为两个键都单击按下,任意一个键弹起都判断为双键弹起
                LeftMouse=0;
                //鼠标弹起,把呈现被按下状态的格子恢复
                arr=T.fGetAround(X,Y);i=arr.length;
                while(i--)T.fButtonUp((TAr=arr[i])[0],TAr[1]);
                !ObXY.State&&T.fButtonUp(X,Y);
                ObXY.State==1&&ObXY.MineCount&&T.fOpenFlagMine(X,Y);
                break;
            case 1: //当MouseDown为一个键单击时,MouseUp才判断为一个键弹起
                if(WhichButton(evt)){
                //只有在State=0才起作用,跟是否有雷没关系
                        LeftMouse=0;
                        if(ObXY.State){break;}
                        ObXY.Mine?(
                            //触雷,结束该局
                            T.fFail(),
                            srcEle.className='Boom'
                        ):(
                            ObXY.State=1, //压栈之前就要设置为已经开启
                            T.aClear.push([X,Y]),
                            T.fClearMine()
                        )
                }
        }
        MouseButton=0;
        if(T.OpenedCount==T.MaxOpenCount&&T.FlagCount==T.MineCount){
            T.fSuccess();
            alert('恭喜游戏成功!再来一局吧?');
            return;
        }
        //当剩余未开启的格子数=剩余的旗子数,自动完成
        T.MaxOpenCount+T.MineCount-T.OpenedCount-T.FlagCount==$('txtFlagCount').value&&(
            T.fSuccess(),
            T.fAutoFlag(),
            alert('恭喜游戏成功!再来一局吧?')
        )
    },
    
    //自动填充未开启的地区的雷
    fAutoFlag:function(){
        var T=this,nX,nY=T.MaxY,MaxX=T.MaxX,Mine=T.Mine,TAr;
        while(nY--){
            nX=MaxX;
            TAr=Mine[nY];
            while(nX--)!TAr[nX].State&&($('Img'+nX+'_'+nY).className='Flag');
        }
        $('txtFlagCount').value=0;
    },
    
    //递归开雷
    fClearMine:function(){
        var T=this;
        if(T.aClear.length==0){return}
        ++T.OpenedCount;
        var aXY=T.aClear.pop(),X=aXY[0],Y=aXY[1],TX,TY,
            aTmpClear=[], //一个临时数组
            srcEle=$('Img'+X+'_'+Y),
            ObXY,ObTXTY,
            countMine=0, //获取周围雷的个数
        //从正左开始的8个方向
            arr=T.fGetAround(X,Y),i=arr.length,TAr;
        while(i--){
            //TX,TY获得本格周围的坐标
            (ObTXTY=T.fGetMine(TX=(TAr=arr[i])[0],TY=TAr[1])).Mine==1&&++countMine;
            !ObTXTY.State&&aTmpClear.push([TX,TY]);
        }
        ObXY=T.fGetMine(X,Y);
        ObXY.MineCount=countMine;
        srcEle.className='M'+countMine;
        if(!countMine){
            Array.prototype.push.apply(T.aClear,aTmpClear);
            i=aTmpClear.length;
            while(i--)T.fGetMine((TAr=aTmpClear[i])[0],TAr[1]).State=1;
        }else{
            getOs()==2?
                srcEle.textContent=countMine
                :srcEle.innerText=countMine
        }
        T.fClearMine();
    },
    
    //获得双键辅助开启
    fOpenFlagMine:function(X,Y){
        var T=this,FlagCount=0,TX,TY,ObXY,ObTXTY,aTmpClear=[],FlagErr=false,
            arr=T.fGetAround(X,Y),i=arr.length,TAr;
        while(i--){
            //TX,TY获得本格周围的坐标
            ObTXTY=T.fGetMine(TX=(TAr=arr[i])[0],TY=TAr[1]);
            switch(ObTXTY.State){
                case 0: //未开启未标记
                    !ObTXTY.Mine&&aTmpClear.push([TX,TY]); //没雷也没旗子的时候加入到被辅助开启的数组}
                    break;
                case 2: //标记了旗子
                    ++FlagCount//只要标记了旗子,无论对错,都记录标记数+1
                    !ObTXTY.Mine&&(FlagErr=true); //没有雷但是标记了旗子,标记错误
            }
        }
        if(FlagCount<T.fGetMine(X,Y).MineCount||aTmpClear.length==0)return;
        //旗子比实际雷少,无论标记对错,不开启
        //没有可以提供开启的空格
        if(FlagErr){ //有错误则进行结束游戏处理
            T.fFail();
            return;
        }
        Array.prototype.push.apply(T.aClear,aTmpClear);
        i=aTmpClear.length;
        while(i--)T.fGetMine((TAr=aTmpClear[i])[0],TAr[1]).State=1;
        T.fClearMine();
    },
    
    //显示所有的雷
    fShowMine:function(){
        var T=this,X=0,Y=T.MaxY,MaxX=T.MaxX,Mine=T.Mine,TAr,TArX;
        while(Y--){
            X=MaxX;
            TAr=Mine[Y];
            while(X--){
                TArX=TAr[X];
                switch(TArX.Mine){
                    case 0:
                        TArX.State==2&&($('Img'+X+'_'+Y).className='ErrFlag');
                        break;
                    case 1:
                        $('Img'+X+'_'+Y).className='Mine';
                }
            }
        }
    },

    //游戏成功结束
    fSuccess:function(){
        this.Success=true;
        $('btnRefreshMap').src='success.gif';
    },
    
    //游戏失败结束
    fFail:function(){
        this.GameOver=true;
        $('btnRefreshMap').src='sad.gif';
        this.fShowMine();
    }
},

//换地图
ChangeMap=function(Map){
    var O=OMine;
    switch(Map){
        case 1:
            O.MaxX=O.MaxY=9;
            O.MineCount=10;
            break;
        case 2:
            O.MaxX=O.MaxY=16;
            O.MineCount=40;
            break;
        case 3:
            O.MaxX=30;
            O.MaxY=16;
            O.MineCount=99;
    }
    O.fInit();
},

getOs=function(){
   if(navigator.userAgent.indexOf("MSIE")>0)return 1;
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)return 2;
   if(isSafari=navigator.userAgent.indexOf("Safari")>0)return 3;   
   if(isCamino=navigator.userAgent.indexOf("Camino")>0)return 4;
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)return 5;
   return 0;
};


FlagImg.src='flag.gif';
HappyImg.src='happy.gif';
MineImg.src='mine.gif';
SadImg.src='sad.gif';
SuccessImg.src='success.gif';
</script>
</head>
<body topmargin="0" oncontextmenu="return false" ondragstart="return false" onselectstart="return false" onload="OMine.fInit()" bgcolor="#808080">
<center>
<div id="dTop" align="center" style="border-style: inset; border-width: 10;width:400">
<table cellpadding="0" cellspacing="0" style="border-collapse: collapse;" width="380" height="44">
  <tr>
    <td style="width: 102; height:50px">
    <input type="text" id="txtFlagCount" size="20" style="width: 60; height: 30; color:#FF0000; text-align:center; font-family:Verdana; font-weight:bold; background-color:#000000; font-size:13pt" value=""></td>
    <td style="width: 136; height:50px">
    <input onclick="OMine.fRefreshMap()" type="image" id="btnRefreshMap" src="happy.gif"><input onclick="OMine.fShowMine();" type="button" name="B3" value="显雷"style="display:none"></td>
    <td style="width: 142; height:50px">
    <input type="radio" value="V1" checked name="R1" id="R1" onclick="ChangeMap(1)">初级<input type="radio" value="V1" name="R1" id="R2" onclick="ChangeMap(2)">中级<input type="radio" value="V1" name="R1" id="R3" onclick="ChangeMap(3)">高级</td>
  </tr>

</table>
</div>
<div id="dMap" align="center"></div>
</center>
</body>
</html>

支持鼠标拖拽的简单目录树代码

一个小代码
 
类似资源管理器效果
 
支持鼠标拖拽
 
没写些细节东西
 
 
JavaScript语言:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

<div id="dContainer" style="z-index:1">
    <ul>
        <li><a href="">1</a></li>
        <li><a href="">2</a></li>
        <li><a href="">3</a></li>
        <li><a href="">4</a>
            <ul>
                <li><a href="">4-1</a></li>
                <li><a href="">4-2</a></li>
                <li><a href="">4-3</a></li>
            </ul>
        </li>
    </ul>

</div>

<script>
var 
$=function(id){return document.getElementById(id)},
LSDrag={
    TargetDOM:null, //储存当前拖拽的DOM对象引用
    InitHerf:function(o){ //传递一个DOM对象,给其中的a添加mouseover和mouseout事件
        var v=o.getElementsByTagName('a'),L=v.length,E;
        while(L--){
            (E=v[L]).onmousedown=function(){LSDrag.DragBegin(this)};
            E.onmouseover=function(){LSDrag.TargetDOM&&LSDrag.DragOver(this)};
            E.onmouseout=function(){LSDrag.TargetDOM&&LSDrag.DragOut(this)};
            E.onmouseup=function(){LSDrag.DragEnd(this)};
        }
    },
    DragOver:function(o){
        o.style.backgroundColor='#888';
        o.style.color='#FFF';
    },
    DragOut:function(o){
        o.style.backgroundColor='';
        o.style.color='';
    },
    DragBegin:function(o){
        LSDrag.TargetDOM=o;
    },
    DragEnd:function(o){
        var TargetDOM=LSDrag.TargetDOM,pTNode=TargetDOM.parentNode,
            pNode=o.parentNode,v=pTNode.getElementsByTagName('a'),L=v.length;
        switch(true){
            case TargetDOM==o:
                //这里写点击链接后发生的事件
                break;
            case pNode==pTNode.parentNode.parentNode:
                alert('无法移动,目标文件夹与源文件夹相同!');
                break;
            default:
                while(L--){
                    if(v[L]==o){
                        alert('不能移动到子目录下!');
                        o.style.backgroundColor='';
                        o.style.color='';
                        LSDrag.TargetDOM=null;
                        return;
                    }
                }
                (v=pNode.getElementsByTagName('ul')).length? //目标文件夹下有ul,添加自己到ul里最后
                    v[0].appendChild(pTNode):(pNode.appendChild(document.createElement('ul'))).appendChild(pTNode);
        }
        LSDrag.TargetDOM=null;
    }
};
LSDrag.InitHerf($('dContainer'));
</script>
</body>
</html>

第五届D2精彩瞬间回顾

收藏一下精彩瞬间的照片记录

 

 2010年12月18日,第五届D2在杭州如期举行。本届D2主题:D平方(D2 = D²),潜能无限!吸引了来自全国各地的500多名前端开发工程师齐聚一堂。

让我们再来回味第五届D2的各个精彩瞬间

分页:[«]1[2][»]
« 2012年4月 »
Sun Mon Tue Wed Thu Fri Sat
1234567
891011121314
15161718192021
22232425262728
2930

网站赞助

文章归档