搜索
您的当前位置:首页正文

js调出上下文菜单的实例_javascript技巧

2023-12-06 来源:优库美食网

本文实例讲述了js调出上下文菜单的实例代码,分享给大家供大家参考,具体如下:

原理  当用户点击右键时会触发一个contextmenu事件,默认会触发浏览器的默认的上下文菜单,通过手动阻止这个默认行为,然后再显示自定义的上下文菜单,当用户单击时隐藏这个菜单即可。代码1、html

 
  • 按钮1
  • 按钮2
  • 按钮3
  • 2、js

    代码出现的EventUtil在这篇文章有介绍: 《js跨浏览器的事件侦听器和事件对象的使用方法》

    小编还为您整理了以下内容,可能对您也有帮助:

    通过javascript执行链获取上下文对象

    一、介绍

    本篇继上一篇深入理解js执行--单线程的JS,这次我们来深入了解js执行过程中的执行上下文。

    本篇涉及到的名词:预执行,执行上下文,变量对象,活动对象,作用域链,this等

    二、预执行

    在上一篇说到,在js代码被执行,执行上下文会被压进执行栈中,但是在此之前还有一步工作要做,就是创建好执行上下文,因为创建好才能被压进去啊。

    创建执行上下文就是预执行过程: 接下来说说创建执行上下文的细节部分。

    三、创建执行上下文

    (1)执行上下文组成

    执行上下文:也叫一个执行环境,有全局执行环境和函数执行环境两种。每个执行环境中包含这三部分:变量对象/活动对象,作用域链,this的值

    代码模拟

    //可以把执行上下文看作一个对象exeContext = {
    VO = [...],  //VO代表变量对象,保存变量和函数声明
    scopeChain = [...];  //作用域链
    thisValue = {...};  //this的值}

    创建执行上下文就是创建变量对象,作用域链和this过程

    接下来就分别细说创建变量对象/活动对象,作用域链,this值的过程。

    (2)变量对象(variable object)

    变量对象中存储了在上下文(环境)中定义的变量和函数声明

    创建变量对象(VO)时就是将各种变量和函数声明进行提升的环节:

    //用下面代码为例子console.log(a);console.log(b);console.log(c);console.log(d);var a = 100;
    b = 10;function c(){};var d = function(){};

    上述代码的变量对象:

    //这里用VO表示变量对象VO = {
    a = undefined; //有a,a使用var声明,值会被赋值为undefined
    //没有b,因为b没用var声明
    c = function c (){}  //有c,c是函数声明,并且c指向该函数
    d = undefined; //有d,d用var声明,值会被赋值为undefined}

    解说:执行上述代码的时候,会创建一个全局执行上下文,上下文中包含上面变量对象,创建完执行上下文后,这个执行上下文才会被压进执行栈中。开始执行后,因为js代码一步一步被执行,后面赋值的代码还没被执行到,所以使用console.log函数打印各个变量的值是变量对象中的值。

    在运行到第二行时会报错(报错后就不再执行了),因为没有b(b is no defined)。把第二行注释掉后,再执行各个结果就是VO里面的对应的值。

    讲到这里我想大家对变量对象理解了吧,以及对变量提升和函数提升有个深入了解。

    (3)活动对象(activation object)

    活动对象是在函数执行上下文里面的,其实也是变量对象,只是它需要在函数被调用时才被激活,而且初始化arguments,激活后就是看做变量对象执行上面一样的步骤。

    //例子function fn(name){    var age = 3;    console.log(name);
    }
    fn('ry');

    当上面的函数fn被调用,就会创建一个执行上下文,同时活动对象被激活

    //活动对象AO = {    arguments : {0:'ry'},  //arguments的值初始化为传入的参数
    name : ry,  //形参初始化为传进来的值
    age : undefined  //var 声明的age,赋值为undefined}

    活动对象其实也是变量对象,做着同样的工作。其实不管变量还是活动对象,这里都表明了,全局执行和函数执行时都有一个变量对象来储存着该上下文(环境内)定义的变量和函数。

    (4)作用域链(scope chain)

    在创建执行上下文时还要创建一个重要的东西,就是作用域链。每个执行环境的作用域链由当前环境的变量对象及父级环境的作用域链构成。

    创建作用域链过程:

    //以本段代码为例function fn(a,b){    var x = 'string',
    }
    fn(1,2);

    1.函数被调用前,初始化function fn,fn有个私有属性[[scope]],它会被初始化为当前全局的作用域,fn.[[scope]="globalScope"。

    2.调用函数fn(1,2),开始创建fn执行上下文,同时创建作用域链fn.scopeChain = [fn.[[scope]]],此时作用域链中有全局作用域。

    3.fn活动对象AO被初始化后,把活动对象作为变量对象推到作用域链前端,此时fn.scopeChain = [fn.AO,fn.[[scope]]],构建完成,此时作用域链中有两个值,一个当前活动对象,一个全局作用域。

    fn的作用域链构建完成,作用域链中有两个值,第一个是fn函数自身的活动对象,能访问自身的变量,还有一个是全局作用域,所以fn能访问外部的变量。这里就说明了为什么函数中能够访问函数外部的变量,因为有作用域链,在自身找不到就顺着作用域链往上找。

    (5)this的值

    上面说过执行上下文有两种,一个全局执行上下文,一个函数执行上下,下面分别说说这两种上下文的this。

    a.全局执行上下文的this

    指向window全局对象

    b.函数执行上下文的this(主要讲函数的this)

    在《JavaScript权威指南》中有这么几句话:
    1.this是关键字,不是变量,不是属性名,js语法不允许给this赋值。
    2.关键字this没有作用域*,嵌套的函数不会从调用它的函数中继承this。
    3.如果嵌套函数作为方法调用,其this指向调用它的对象。
    4.如果嵌套函数作为函数调用,其this值是window(非严格模式),或undefined(严格模式下)。

    解读一下: 上面说的概括了this两种值的情况:
    1.函数直接作为某对象的方法被调用则函数的this指向该对象。
    2.函数作为函数直接独立调用(不是某对象的方法),或是函数中的函数,其this指向window。

    我们看几个栗子便可理解:
    栗子1:(这个例子我相信都能理解)当函数被独立运行时,其this的值指向window对象。

    function a(){    console.log(this);
    }//独立运行a();  //window

    栗子2:(函数中函数,这里嵌套了个外围函数)这里也是指向window对象,也相当于函数作为函数调用,就是独立运行。其实这个例子也说明闭包的this指向Window。

    //外围函数function a(){    //b函数在里面
    function b(){        console.log(this);
    }    //虽然在函数中,但b函数独立运行,不是那个对象的方法
    b();
    }
    a();  //window

    栗子3:(再写复杂点的话)x函数即使在对象里面,但它是函数中的函数,也是作为函数运行,不是Object的方法。getName才是objcet的方法,所以getName的this指向object(在下个栗子有)。

    //一个对象var object = {    //getName是Object的方法
    getName : function(){        //x是getName里面的函数,它是作为函数调用的,this就是window啦
    function x(){            console.log(this);
    }
    x();
    }
    }
    object.getName();  //window

    以上三个都是输出window,下面是this指向某个对象的情况。

    栗子4:函数作为某个对象的方法被调用。

    //一个对象var object = {
    name : "object",    //getName是Object的方法
    getName : function(){
    console.log(this === object);
    }
    }object.getName(); //true , 说明this指向了object

    这里的getName中的this是指向objct对象的,因为getName是object的一个方法,它作为对象方法被调用。

    栗子5:再来个栗子。

    var name = "window";var obj = {
    name : "obj"};function fn (){    console.log(this.name);
    }//将fn通过call或bind或apply直接绑定给obj,从而成为obj的方法。fn.call(obj);  //obj

    再总结一下this的值

    全局执行上下文:this的值是window
    函数执行上下文:this的值两种:
    1.函数中this指向某对象,因为函数作为对象的方法:怎么看函数是对象的方法,一种是直接写在对象里面(不是嵌套在对象方法中的函数,不懂再看看栗子3),另一种是通过call等方法直接绑定在对象中。

    2.函数中this指向window:函数独立运行,不是对象的方法,函数中的函数(闭包),其this指向window。

    四、总结整个js代码执行过程

    (1)JS执行过程

    js代码执行分成了两部分:预执行和执行

      预执行:创建好执行上下文,有两种,一种是开始执行js代码就创建全局的执行上下文,一种是当某个函数被调用时创建它自己的函数执行上下文。这里也就是本节主要讲的东西,创建执行上下文的三个重要成分。

      执行:在执行栈中执行,栈顶的执行上下文获得执行权,并按顺序执行当前上下文中的代码,执行完后弹栈销毁上下文,执行权交给下一个栈顶执行上下文。

      (2)放上图示

      某个执行上下文生命周期:

      五、后话

      整个js的执行过程就这样了,一开始可能有点难理解,但看多几遍就慢慢领会了。希望大家能够理解。如果觉得写得好,记得点赞,关注哦。

    通过javascript执行链获取上下文对象

    一、介绍

    本篇继上一篇深入理解js执行--单线程的JS,这次我们来深入了解js执行过程中的执行上下文。

    本篇涉及到的名词:预执行,执行上下文,变量对象,活动对象,作用域链,this等

    二、预执行

    在上一篇说到,在js代码被执行,执行上下文会被压进执行栈中,但是在此之前还有一步工作要做,就是创建好执行上下文,因为创建好才能被压进去啊。

    创建执行上下文就是预执行过程: 接下来说说创建执行上下文的细节部分。

    三、创建执行上下文

    (1)执行上下文组成

    执行上下文:也叫一个执行环境,有全局执行环境和函数执行环境两种。每个执行环境中包含这三部分:变量对象/活动对象,作用域链,this的值

    代码模拟

    //可以把执行上下文看作一个对象exeContext = {
    VO = [...],  //VO代表变量对象,保存变量和函数声明
    scopeChain = [...];  //作用域链
    thisValue = {...};  //this的值}

    创建执行上下文就是创建变量对象,作用域链和this过程

    接下来就分别细说创建变量对象/活动对象,作用域链,this值的过程。

    (2)变量对象(variable object)

    变量对象中存储了在上下文(环境)中定义的变量和函数声明

    创建变量对象(VO)时就是将各种变量和函数声明进行提升的环节:

    //用下面代码为例子console.log(a);console.log(b);console.log(c);console.log(d);var a = 100;
    b = 10;function c(){};var d = function(){};

    上述代码的变量对象:

    //这里用VO表示变量对象VO = {
    a = undefined; //有a,a使用var声明,值会被赋值为undefined
    //没有b,因为b没用var声明
    c = function c (){}  //有c,c是函数声明,并且c指向该函数
    d = undefined; //有d,d用var声明,值会被赋值为undefined}

    解说:执行上述代码的时候,会创建一个全局执行上下文,上下文中包含上面变量对象,创建完执行上下文后,这个执行上下文才会被压进执行栈中。开始执行后,因为js代码一步一步被执行,后面赋值的代码还没被执行到,所以使用console.log函数打印各个变量的值是变量对象中的值。

    在运行到第二行时会报错(报错后就不再执行了),因为没有b(b is no defined)。把第二行注释掉后,再执行各个结果就是VO里面的对应的值。

    讲到这里我想大家对变量对象理解了吧,以及对变量提升和函数提升有个深入了解。

    (3)活动对象(activation object)

    活动对象是在函数执行上下文里面的,其实也是变量对象,只是它需要在函数被调用时才被激活,而且初始化arguments,激活后就是看做变量对象执行上面一样的步骤。

    //例子function fn(name){    var age = 3;    console.log(name);
    }
    fn('ry');

    当上面的函数fn被调用,就会创建一个执行上下文,同时活动对象被激活

    //活动对象AO = {    arguments : {0:'ry'},  //arguments的值初始化为传入的参数
    name : ry,  //形参初始化为传进来的值
    age : undefined  //var 声明的age,赋值为undefined}

    活动对象其实也是变量对象,做着同样的工作。其实不管变量还是活动对象,这里都表明了,全局执行和函数执行时都有一个变量对象来储存着该上下文(环境内)定义的变量和函数。

    (4)作用域链(scope chain)

    在创建执行上下文时还要创建一个重要的东西,就是作用域链。每个执行环境的作用域链由当前环境的变量对象及父级环境的作用域链构成。

    创建作用域链过程:

    //以本段代码为例function fn(a,b){    var x = 'string',
    }
    fn(1,2);

    1.函数被调用前,初始化function fn,fn有个私有属性[[scope]],它会被初始化为当前全局的作用域,fn.[[scope]="globalScope"。

    2.调用函数fn(1,2),开始创建fn执行上下文,同时创建作用域链fn.scopeChain = [fn.[[scope]]],此时作用域链中有全局作用域。

    3.fn活动对象AO被初始化后,把活动对象作为变量对象推到作用域链前端,此时fn.scopeChain = [fn.AO,fn.[[scope]]],构建完成,此时作用域链中有两个值,一个当前活动对象,一个全局作用域。

    fn的作用域链构建完成,作用域链中有两个值,第一个是fn函数自身的活动对象,能访问自身的变量,还有一个是全局作用域,所以fn能访问外部的变量。这里就说明了为什么函数中能够访问函数外部的变量,因为有作用域链,在自身找不到就顺着作用域链往上找。

    (5)this的值

    上面说过执行上下文有两种,一个全局执行上下文,一个函数执行上下,下面分别说说这两种上下文的this。

    a.全局执行上下文的this

    指向window全局对象

    b.函数执行上下文的this(主要讲函数的this)

    在《JavaScript权威指南》中有这么几句话:
    1.this是关键字,不是变量,不是属性名,js语法不允许给this赋值。
    2.关键字this没有作用域*,嵌套的函数不会从调用它的函数中继承this。
    3.如果嵌套函数作为方法调用,其this指向调用它的对象。
    4.如果嵌套函数作为函数调用,其this值是window(非严格模式),或undefined(严格模式下)。

    解读一下: 上面说的概括了this两种值的情况:
    1.函数直接作为某对象的方法被调用则函数的this指向该对象。
    2.函数作为函数直接独立调用(不是某对象的方法),或是函数中的函数,其this指向window。

    我们看几个栗子便可理解:
    栗子1:(这个例子我相信都能理解)当函数被独立运行时,其this的值指向window对象。

    function a(){    console.log(this);
    }//独立运行a();  //window

    栗子2:(函数中函数,这里嵌套了个外围函数)这里也是指向window对象,也相当于函数作为函数调用,就是独立运行。其实这个例子也说明闭包的this指向Window。

    //外围函数function a(){    //b函数在里面
    function b(){        console.log(this);
    }    //虽然在函数中,但b函数独立运行,不是那个对象的方法
    b();
    }
    a();  //window

    栗子3:(再写复杂点的话)x函数即使在对象里面,但它是函数中的函数,也是作为函数运行,不是Object的方法。getName才是objcet的方法,所以getName的this指向object(在下个栗子有)。

    //一个对象var object = {    //getName是Object的方法
    getName : function(){        //x是getName里面的函数,它是作为函数调用的,this就是window啦
    function x(){            console.log(this);
    }
    x();
    }
    }
    object.getName();  //window

    以上三个都是输出window,下面是this指向某个对象的情况。

    栗子4:函数作为某个对象的方法被调用。

    //一个对象var object = {
    name : "object",    //getName是Object的方法
    getName : function(){
    console.log(this === object);
    }
    }object.getName(); //true , 说明this指向了object

    这里的getName中的this是指向objct对象的,因为getName是object的一个方法,它作为对象方法被调用。

    栗子5:再来个栗子。

    var name = "window";var obj = {
    name : "obj"};function fn (){    console.log(this.name);
    }//将fn通过call或bind或apply直接绑定给obj,从而成为obj的方法。fn.call(obj);  //obj

    再总结一下this的值

    全局执行上下文:this的值是window
    函数执行上下文:this的值两种:
    1.函数中this指向某对象,因为函数作为对象的方法:怎么看函数是对象的方法,一种是直接写在对象里面(不是嵌套在对象方法中的函数,不懂再看看栗子3),另一种是通过call等方法直接绑定在对象中。

    2.函数中this指向window:函数独立运行,不是对象的方法,函数中的函数(闭包),其this指向window。

    四、总结整个js代码执行过程

    (1)JS执行过程

    js代码执行分成了两部分:预执行和执行

      预执行:创建好执行上下文,有两种,一种是开始执行js代码就创建全局的执行上下文,一种是当某个函数被调用时创建它自己的函数执行上下文。这里也就是本节主要讲的东西,创建执行上下文的三个重要成分。

      执行:在执行栈中执行,栈顶的执行上下文获得执行权,并按顺序执行当前上下文中的代码,执行完后弹栈销毁上下文,执行权交给下一个栈顶执行上下文。

      (2)放上图示

      某个执行上下文生命周期:

      五、后话

      整个js的执行过程就这样了,一开始可能有点难理解,但看多几遍就慢慢领会了。希望大家能够理解。如果觉得写得好,记得点赞,关注哦。

    求个简单javascript代码 谢谢,网站菜单功能

    不用说自己菜不菜的,能有这个学习的精神已经很值得鼓励了

    呵呵,下面,我来给你介绍几个网站常见的菜单

    第一个:仿网易的滑动门导航菜单
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>仿网易的滑动门技术,用DIV+CSS技术实现</title>
    <style type="text/css">
    <!--
    #header {
    background-color: #F8F4EF;
    height: 200px;
    width: 400px;
    margin: 0px;
    padding: 0px;
    border: 1px solid #ECE1D5;
    font-family: "宋体";
    font-size: 12px;
    }
    #menu {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
    }
    #menu li {
    display: block;
    width: 100px;
    text-align: center;
    float: left;
    margin: 0px;
    padding-top: 0.2em;
    padding-right: 0px;
    padding-bottom: 0.2em;
    padding-left: 0px;
    cursor: hand;
    }
    .sec1 { background-color: #FFFFCC;}
    .sec2 { background-color: #00CCFF;}
    .block { display: block;}
    .unblock { display: none;}
    -->
    </style>
    </head>
    <body>
    <script language=javascript>
    function secBoard(n)
    {
    for(i=0;i<menu.childNodes.length;i++)
    menu.childNodes[i].className="sec1";
    menu.childNodes[n].className="sec2";
    for(i=0;i<main.childNodes.length;i++)
    main.childNodes[i].style.display="none";
    main.childNodes[n].style.display="block";
    }
    </script>
    <div id="header">
    <ul id="menu">
    <li onMouseOver="secBoard(0)" class="sec2">最新新闻</li>
    <li onMouseOver="secBoard(1)" class="sec1">最新文章</li>
    <li onMouseOver="secBoard(2)" class="sec1">最新日志</li>
    <li onMouseOver="secBoard(3)" class="sec1">论坛新帖</li>
    </ul>
    <!--内容显示区域-->
    <ul id="main">
    <li class="block">第一个内容</li>
    <li class="unblock">第二个内容</li>
    <li class="unblock">第三个内容</li>
    <li class="unblock">第四个内容</li>
    </ul>
    <!--内容显示区域-->
    </div>
    </body>
    </html>
    这里基本上是使用Css与Div的结合,在整个布局中已层为单位,实行滑动菜单的是一个javascript脚本函数,调用就可以了,看不懂不要紧,日渐积累才是重要

    第二个:经典实用的触发型导航(这是鼠标单击事件控制)

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>网页特效代码|JsCode.CN|---经典实用的触发型导航菜单</title>

    </head>

    <body>

    <STYLE type=text/css>.sec1 {
    BORDER-RIGHT: gray 1px solid; BORDER-TOP:

    #ffffff 1px solid; BORDER-LEFT: #ffffff 1px

    solid; CURSOR: hand; COLOR: #000000; BORDER-

    BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR:

    #eeeeee
    }
    .sec2 {
    BORDER-RIGHT: gray 1px solid; BORDER-TOP:

    #ffffff 1px solid; FONT-WEIGHT: bold; BORDER-

    LEFT: #ffffff 1px solid; CURSOR: hand; COLOR:

    #000000; BACKGROUND-COLOR: #d4d0c8
    }
    .main_tab {
    BORDER-RIGHT: gray 1px solid; BORDER-

    LEFT: #ffffff 1px solid; COLOR: #000000; BORDER-

    BOTTOM: gray 1px solid; BACKGROUND-COLOR: #d4d0c8
    }
    </STYLE>
    <!--JavaScript部分-->
    <SCRIPT language=javascript>
    function secBoard(n)
    {
    for(i=0;i<secTable.cells.length;i++)
    secTable.cells

    [i].className="sec1";
    secTable.cells[n].className="sec2";
    for(i=0;i<mainTable.tBodies.length;i++)
    mainTable.tBodies

    [i].style.display="none";
    mainTable.tBodies

    [n].style.display="block";
    }
    </SCRIPT>
    <!--HTML部分-->
    <TABLE id=secTable cellSpacing=0 cellPadding=0 width=549 border=0>
    <TBODY>
    <TR align=middle height=20>
    <TD class=sec2 onclick=secBoard(0) width="10%">关于TBODY标记</TD>
    <TD class=sec1 onclick=secBoard(1) width="10%">关于cells集合</TD>
    <TD class=sec1 onclick=secBoard(2) width="10%">关于tBodies集合</TD>
    <TD class=sec1 onclick=secBoard(3) width="10%">关于display属性</TD></TR></TBODY></TABLE>
    <TABLE class=main_tab id=mainTable height=240 cellSpacing=0 cellPadding=0 width=549 border=0><!--关于TBODY标记-->
    <TBODY style="DISPLAY: block">
    <TR>
    <TD vAlign=top align=middle><BR><BR>
    <TABLE cellSpacing=0 cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>指定行做为表体。

    <BR>注释:TBODY要素是块要素,并且需要结束标

    签。<BR> 即使如果表格没有显式定义TBODY

    要素,该要素也提供给所有表。<BR><BR>

    参考:《动态HTML参考和开发应用大全》(人民邮电出

    版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于cells集合-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>检索表行或者整个

    表中所有单元格的集合。<BR>应用于TR、TABLE。

    <BR><BR>参考:《动态HTML参考和开发应

    用大全》(人民邮电出版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于tBodies集合-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>检索表中所有TBODY

    对象的集合。对象在该集合中按照HTML源顺序排列。

    <BR>应用于TABLE。<BR><BR>参考:

    《动态HTML参考和开发应用大全》(人民邮电出版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于display属性-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>设置或者检索对象

    是否被提供。<BR>可能的值为block、none、

    inline、list-item、table-header-group、table-

    footer-group。<BR>该特性可读写,块要素默认

    值为block,内联要素默认值为inline;层叠样式表

    (CSS)属性不可继承。<BR><BR>参考:《

    动态HTML参考和开发应用大全》(人民邮电出版社
    Microsoft Corporation著

    北京华中兴业科技发展有限公司译)

    <BR><BR><A

    href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/display.asp?frame=true" target=_blank>点击此处
    </A>可参阅微软<A href="http://msdn.microsoft.com/" target=_blank>MSDN在线</A>上的解释。

    </TD></TR></TBODY></TABLE>

    ;</TD></TR></TBODY></TABLE&g

    t;</body>

    </html>

    这里跟上面不同的区别在与这是鼠标移动和滑动的事件区别!

    第三个:仿拍拍的切换效果菜单(里面的图片是我放上去的,所以会看不到图片的,呵呵 继续)
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
    <head>
    <meta http-equiv="Content-Language" content="zh-cn" />
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta name="robots" content="all" />
    <title>网页特效|网页特效代码(JsHtml.cn)---仿拍拍paipai.com首页产品图片随机轮显切换效果</title><style>
    body {font-size:12px}
    img {border:0px}
    #sale{right:206px;top:0;width:260px;background:#fff}
    #saleTitle{text-align:right;padding-top:5px;padding-right:5px;width:255px;height:20px;background:url("images/saleTitle.gif") no-repeat}
    #saleList{margin-top:5px}
    #saleList .saleTwo{height:108px;background:url("images/salelineH.gif") bottom repeat-x;}
    #saleList a{display:block;height:108px;width:86px;text-align:center;float:left;overflow:hidden}
    #saleList a.saleItem{background:url("images/salelineV.gif") right repeat-y;}
    #saleList a img{margin:5px 0}
    #saleList a:hover{background-color:#EBFFC5}
    </style>
    <script type="text/javascript">
    rnd.today=new Date();
    rnd.seed=rnd.today.getTime();
    function rnd(){
    rnd.seed = (rnd.seed*9301+49297) % 233280;
    return rnd.seed/(233280.0);
    }
    function rand(number){
    return Math.ceil(rnd()*number)-1;
    }
    function nextSale(order){
    if(order=="up") saleNum--;
    else saleNum++;
    if(saleNum>2) saleNum=0
    else if(saleNum<0) saleNum=2;
    //alert(saleNum);
    for(i=0;i<3;i++)
    document.getElementById("saleList"+i).style.display="none";
    document.getElementById("saleList"+saleNum).style.display="";
    }
    </script>
    </head>
    <body>
    <div id="sale" class="absolute overflow">
    <div id="saleTitle" class="absolute">
    <a href="javascript:nextSale('up')" title="点击到上一屏">
    <img src="images/saleFore.gif" hspace="4" onmouseover="this.src='images/saleForeOver.gif'" onmouseout="this.src='images/saleFore.gif'" /></a><a href="javascript:nextSale('down')" title="点击到下一屏"><img src="images/saleNext.gif" onmouseover="this.src='images/saleNextOver.gif'" onmouseout="this.src='images/saleNext.gif'" /></a></div>
    <div class="overflow" style="height:330px" id="saleList">
    <script type="text/javascript">var saleNum=rand(3);</script>
    <div id="saleList0" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞浪漫饰品超级大促" src="/jsimages/UploadFiles_3321/200804/20080423085515804.jpg" width="65" height="65" /></div>
    <div>
    圣诞浪漫饰品<br />
    超级大促</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="复古牛仔外套特惠119元起" src="/jsimages/UploadFiles_3321/200804/20080423085516293.jpg" width="65" height="65" /></div>
    <div>
    复古牛仔外套<br />
    特惠119元起</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供运动服3折" src="/jsimages/UploadFiles_3321/200804/20080423085516802.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    运动服3折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供电脑周边4折" src="/jsimages/UploadFiles_3321/200804/20080423085516530.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    电脑周边4折</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="party扮靓甜美腮红" src="/jsimages/UploadFiles_3321/200804/20080423085516658.jpg" width="65" width="65" height="65" /></div>
    <div>
    party扮靓<br />
    甜美腮红</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    </div>
    <div id="saleList1" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="新奇好玩便宜尽在网游频道" src="/jsimages/UploadFiles_3321/200804/20080423085516612.jpg" width="65" height="65" /></div>
    <div>
    新奇好玩便宜<br />
    尽在网游频道</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="展现高贵气质骑士系马靴" src="/jsimages/UploadFiles_3321/200804/20080423085516202.jpg" width="65" height="65" /></div>
    <div>
    展现高贵气质<br />
    骑士系马靴</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="永不过时条纹毛衣" src="/jsimages/UploadFiles_3321/200804/20080423085516984.jpg" width="65" height="65" /></div>
    <div>
    永不过时<br />
    条纹毛衣</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供运动鞋2折" src="/jsimages/UploadFiles_3321/200804/20080423085516651.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    运动鞋2折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="精简唯美索爱K630" src="/jsimages/UploadFiles_3321/200804/20080423085516302.jpg" width="65" height="65" /></div>
    <div>
    精简唯美<br />
    索爱K630</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="原装瑞士军刀精选" src="/jsimages/UploadFiles_3321/200804/20080423085516549.jpg" width="65" width="65" height="65" /></div>
    <div>
    原装瑞士军刀<br />
    精选</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
    <div>
    超薄机身<br />
    索爱W880</div>
    </a></div>
    </div>
    <div id="saleList2" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="各就各味秋冬饮食计划" src="/jsimages/UploadFiles_3321/200804/20080423085516704.jpg&type=3" width="65" height="65" /></div>
    <div>
    各就各味<br />
    秋冬饮食计划</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供随身视听5折" src="/jsimages/UploadFiles_3321/200804/20080423085516375.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    随身视听5折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
    <div>
    超薄机身<br />
    索爱W880</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="我爱我家家居大抢购" src="/jsimages/UploadFiles_3321/200804/20080423085516954.jpg" width="65" height="65" /></div>
    <div>
    我爱我家<br />
    家居大抢购</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超值彩妆套装变身派对女王" src="/jsimages/UploadFiles_3321/200804/20080423085516919.jpg" width="65" width="65" height="65" /></div>
    <div>
    超值彩妆套装<br />
    变身派对女王</div>
    </a></div>
    </div>
    </div>
    </div>
    <script type="text/javascript">document.getElementById("saleList"+saleNum).style.display="";</script>
    <p> </p>
    <p>更多网页特效代码尽在 <a href="http://www.jshtml.cn/">网页特效代码</a></p>
    </body>
    </html>
    这个仿拍拍基本上就是2层放图片,但用起来的效果还是可以的,如果不喜欢我还有下面呢,慢慢学,总会看懂的 (最重要的还是Css哦)

    这个主要就是让层实现隐藏 我觉得这个在层使用方面还是好的

    从总体上看,在实现层与层之间的交互,在其代码 我觉得你有必要去认真看下 !
    以上是我介绍额度菜单,虽然不是很强大,但是却很使用,而且在J2EE中
    菜单基本上是一个假象,都是用层与Css之间的特效做出来的!
    学会了层的具体应用,我相信你也可以有自己特色的菜单的

    那我祝你好运咯!!加油!!

    求个简单javascript代码 谢谢,网站菜单功能

    不用说自己菜不菜的,能有这个学习的精神已经很值得鼓励了

    呵呵,下面,我来给你介绍几个网站常见的菜单

    第一个:仿网易的滑动门导航菜单
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>仿网易的滑动门技术,用DIV+CSS技术实现</title>
    <style type="text/css">
    <!--
    #header {
    background-color: #F8F4EF;
    height: 200px;
    width: 400px;
    margin: 0px;
    padding: 0px;
    border: 1px solid #ECE1D5;
    font-family: "宋体";
    font-size: 12px;
    }
    #menu {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
    }
    #menu li {
    display: block;
    width: 100px;
    text-align: center;
    float: left;
    margin: 0px;
    padding-top: 0.2em;
    padding-right: 0px;
    padding-bottom: 0.2em;
    padding-left: 0px;
    cursor: hand;
    }
    .sec1 { background-color: #FFFFCC;}
    .sec2 { background-color: #00CCFF;}
    .block { display: block;}
    .unblock { display: none;}
    -->
    </style>
    </head>
    <body>
    <script language=javascript>
    function secBoard(n)
    {
    for(i=0;i<menu.childNodes.length;i++)
    menu.childNodes[i].className="sec1";
    menu.childNodes[n].className="sec2";
    for(i=0;i<main.childNodes.length;i++)
    main.childNodes[i].style.display="none";
    main.childNodes[n].style.display="block";
    }
    </script>
    <div id="header">
    <ul id="menu">
    <li onMouseOver="secBoard(0)" class="sec2">最新新闻</li>
    <li onMouseOver="secBoard(1)" class="sec1">最新文章</li>
    <li onMouseOver="secBoard(2)" class="sec1">最新日志</li>
    <li onMouseOver="secBoard(3)" class="sec1">论坛新帖</li>
    </ul>
    <!--内容显示区域-->
    <ul id="main">
    <li class="block">第一个内容</li>
    <li class="unblock">第二个内容</li>
    <li class="unblock">第三个内容</li>
    <li class="unblock">第四个内容</li>
    </ul>
    <!--内容显示区域-->
    </div>
    </body>
    </html>
    这里基本上是使用Css与Div的结合,在整个布局中已层为单位,实行滑动菜单的是一个javascript脚本函数,调用就可以了,看不懂不要紧,日渐积累才是重要

    第二个:经典实用的触发型导航(这是鼠标单击事件控制)

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>网页特效代码|JsCode.CN|---经典实用的触发型导航菜单</title>

    </head>

    <body>

    <STYLE type=text/css>.sec1 {
    BORDER-RIGHT: gray 1px solid; BORDER-TOP:

    #ffffff 1px solid; BORDER-LEFT: #ffffff 1px

    solid; CURSOR: hand; COLOR: #000000; BORDER-

    BOTTOM: #ffffff 1px solid; BACKGROUND-COLOR:

    #eeeeee
    }
    .sec2 {
    BORDER-RIGHT: gray 1px solid; BORDER-TOP:

    #ffffff 1px solid; FONT-WEIGHT: bold; BORDER-

    LEFT: #ffffff 1px solid; CURSOR: hand; COLOR:

    #000000; BACKGROUND-COLOR: #d4d0c8
    }
    .main_tab {
    BORDER-RIGHT: gray 1px solid; BORDER-

    LEFT: #ffffff 1px solid; COLOR: #000000; BORDER-

    BOTTOM: gray 1px solid; BACKGROUND-COLOR: #d4d0c8
    }
    </STYLE>
    <!--JavaScript部分-->
    <SCRIPT language=javascript>
    function secBoard(n)
    {
    for(i=0;i<secTable.cells.length;i++)
    secTable.cells

    [i].className="sec1";
    secTable.cells[n].className="sec2";
    for(i=0;i<mainTable.tBodies.length;i++)
    mainTable.tBodies

    [i].style.display="none";
    mainTable.tBodies

    [n].style.display="block";
    }
    </SCRIPT>
    <!--HTML部分-->
    <TABLE id=secTable cellSpacing=0 cellPadding=0 width=549 border=0>
    <TBODY>
    <TR align=middle height=20>
    <TD class=sec2 onclick=secBoard(0) width="10%">关于TBODY标记</TD>
    <TD class=sec1 onclick=secBoard(1) width="10%">关于cells集合</TD>
    <TD class=sec1 onclick=secBoard(2) width="10%">关于tBodies集合</TD>
    <TD class=sec1 onclick=secBoard(3) width="10%">关于display属性</TD></TR></TBODY></TABLE>
    <TABLE class=main_tab id=mainTable height=240 cellSpacing=0 cellPadding=0 width=549 border=0><!--关于TBODY标记-->
    <TBODY style="DISPLAY: block">
    <TR>
    <TD vAlign=top align=middle><BR><BR>
    <TABLE cellSpacing=0 cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>指定行做为表体。

    <BR>注释:TBODY要素是块要素,并且需要结束标

    签。<BR> 即使如果表格没有显式定义TBODY

    要素,该要素也提供给所有表。<BR><BR>

    参考:《动态HTML参考和开发应用大全》(人民邮电出

    版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于cells集合-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>检索表行或者整个

    表中所有单元格的集合。<BR>应用于TR、TABLE。

    <BR><BR>参考:《动态HTML参考和开发应

    用大全》(人民邮电出版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于tBodies集合-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>检索表中所有TBODY

    对象的集合。对象在该集合中按照HTML源顺序排列。

    <BR>应用于TABLE。<BR><BR>参考:

    《动态HTML参考和开发应用大全》(人民邮电出版社
    Microsoft Corporation著
    北京华中兴业科技发展有限公司

    译)

    <BR><BR></TD></TR></TB

    ODY></TABLE></TD></TR></T

    BODY><!--关于display属性-->
    <TBODY style="DISPLAY:

    none">
    <TR>
    <TD vAlign=top

    align=middle><BR><BR>
    <TABLE cellSpacing=0

    cellPadding=0 width=490 border=0>
    <TBODY>
    <TR>
    <TD>设置或者检索对象

    是否被提供。<BR>可能的值为block、none、

    inline、list-item、table-header-group、table-

    footer-group。<BR>该特性可读写,块要素默认

    值为block,内联要素默认值为inline;层叠样式表

    (CSS)属性不可继承。<BR><BR>参考:《

    动态HTML参考和开发应用大全》(人民邮电出版社
    Microsoft Corporation著

    北京华中兴业科技发展有限公司译)

    <BR><BR><A

    href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/display.asp?frame=true" target=_blank>点击此处
    </A>可参阅微软<A href="http://msdn.microsoft.com/" target=_blank>MSDN在线</A>上的解释。

    </TD></TR></TBODY></TABLE>

    ;</TD></TR></TBODY></TABLE&g

    t;</body>

    </html>

    这里跟上面不同的区别在与这是鼠标移动和滑动的事件区别!

    第三个:仿拍拍的切换效果菜单(里面的图片是我放上去的,所以会看不到图片的,呵呵 继续)
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
    <head>
    <meta http-equiv="Content-Language" content="zh-cn" />
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta name="robots" content="all" />
    <title>网页特效|网页特效代码(JsHtml.cn)---仿拍拍paipai.com首页产品图片随机轮显切换效果</title><style>
    body {font-size:12px}
    img {border:0px}
    #sale{right:206px;top:0;width:260px;background:#fff}
    #saleTitle{text-align:right;padding-top:5px;padding-right:5px;width:255px;height:20px;background:url("images/saleTitle.gif") no-repeat}
    #saleList{margin-top:5px}
    #saleList .saleTwo{height:108px;background:url("images/salelineH.gif") bottom repeat-x;}
    #saleList a{display:block;height:108px;width:86px;text-align:center;float:left;overflow:hidden}
    #saleList a.saleItem{background:url("images/salelineV.gif") right repeat-y;}
    #saleList a img{margin:5px 0}
    #saleList a:hover{background-color:#EBFFC5}
    </style>
    <script type="text/javascript">
    rnd.today=new Date();
    rnd.seed=rnd.today.getTime();
    function rnd(){
    rnd.seed = (rnd.seed*9301+49297) % 233280;
    return rnd.seed/(233280.0);
    }
    function rand(number){
    return Math.ceil(rnd()*number)-1;
    }
    function nextSale(order){
    if(order=="up") saleNum--;
    else saleNum++;
    if(saleNum>2) saleNum=0
    else if(saleNum<0) saleNum=2;
    //alert(saleNum);
    for(i=0;i<3;i++)
    document.getElementById("saleList"+i).style.display="none";
    document.getElementById("saleList"+saleNum).style.display="";
    }
    </script>
    </head>
    <body>
    <div id="sale" class="absolute overflow">
    <div id="saleTitle" class="absolute">
    <a href="javascript:nextSale('up')" title="点击到上一屏">
    <img src="images/saleFore.gif" hspace="4" onmouseover="this.src='images/saleForeOver.gif'" onmouseout="this.src='images/saleFore.gif'" /></a><a href="javascript:nextSale('down')" title="点击到下一屏"><img src="images/saleNext.gif" onmouseover="this.src='images/saleNextOver.gif'" onmouseout="this.src='images/saleNext.gif'" /></a></div>
    <div class="overflow" style="height:330px" id="saleList">
    <script type="text/javascript">var saleNum=rand(3);</script>
    <div id="saleList0" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞浪漫饰品超级大促" src="/jsimages/UploadFiles_3321/200804/20080423085515804.jpg" width="65" height="65" /></div>
    <div>
    圣诞浪漫饰品<br />
    超级大促</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="复古牛仔外套特惠119元起" src="/jsimages/UploadFiles_3321/200804/20080423085516293.jpg" width="65" height="65" /></div>
    <div>
    复古牛仔外套<br />
    特惠119元起</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供运动服3折" src="/jsimages/UploadFiles_3321/200804/20080423085516802.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    运动服3折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供电脑周边4折" src="/jsimages/UploadFiles_3321/200804/20080423085516530.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    电脑周边4折</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="party扮靓甜美腮红" src="/jsimages/UploadFiles_3321/200804/20080423085516658.jpg" width="65" width="65" height="65" /></div>
    <div>
    party扮靓<br />
    甜美腮红</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    </div>
    <div id="saleList1" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="新奇好玩便宜尽在网游频道" src="/jsimages/UploadFiles_3321/200804/20080423085516612.jpg" width="65" height="65" /></div>
    <div>
    新奇好玩便宜<br />
    尽在网游频道</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="展现高贵气质骑士系马靴" src="/jsimages/UploadFiles_3321/200804/20080423085516202.jpg" width="65" height="65" /></div>
    <div>
    展现高贵气质<br />
    骑士系马靴</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="摄像头集结号给你新的感觉" src="/jsimages/UploadFiles_3321/200804/20080423085516472.jpg" width="65" height="65" /></div>
    <div>
    摄像头集结号<br />
    给你新的感觉</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="永不过时条纹毛衣" src="/jsimages/UploadFiles_3321/200804/20080423085516984.jpg" width="65" height="65" /></div>
    <div>
    永不过时<br />
    条纹毛衣</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供运动鞋2折" src="/jsimages/UploadFiles_3321/200804/20080423085516651.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    运动鞋2折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="精简唯美索爱K630" src="/jsimages/UploadFiles_3321/200804/20080423085516302.jpg" width="65" height="65" /></div>
    <div>
    精简唯美<br />
    索爱K630</div>
    </a>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="原装瑞士军刀精选" src="/jsimages/UploadFiles_3321/200804/20080423085516549.jpg" width="65" width="65" height="65" /></div>
    <div>
    原装瑞士军刀<br />
    精选</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
    <div>
    超薄机身<br />
    索爱W880</div>
    </a></div>
    </div>
    <div id="saleList2" style="display:none">
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="各就各味秋冬饮食计划" src="/jsimages/UploadFiles_3321/200804/20080423085516704.jpg&type=3" width="65" height="65" /></div>
    <div>
    各就各味<br />
    秋冬饮食计划</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="好感度提升韩版娃娃装" src="/jsimages/UploadFiles_3321/200804/20080423085516162.jpg" width="65" height="65" /></div>
    <div>
    好感度提升<br />
    韩版娃娃装</div>
    </a></div>
    <div class="saleTwo">
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="圣诞拍拍特供随身视听5折" src="/jsimages/UploadFiles_3321/200804/20080423085516375.jpg" width="65" height="65" /></div>
    <div>
    圣诞拍拍特供<br />
    随身视听5折</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超薄机身索爱W880" src="/jsimages/UploadFiles_3321/200804/20080423085516711.jpg" width="65" height="65" /></div>
    <div>
    超薄机身<br />
    索爱W880</div>
    </a></div>
    <div>
    <a class="saleItem" href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="我爱我家家居大抢购" src="/jsimages/UploadFiles_3321/200804/20080423085516954.jpg" width="65" height="65" /></div>
    <div>
    我爱我家<br />
    家居大抢购</div>
    </a><a href="http://www.jshtml.cn" target="_blank">
    <div>
    <img alt="超值彩妆套装变身派对女王" src="/jsimages/UploadFiles_3321/200804/20080423085516919.jpg" width="65" width="65" height="65" /></div>
    <div>
    超值彩妆套装<br />
    变身派对女王</div>
    </a></div>
    </div>
    </div>
    </div>
    <script type="text/javascript">document.getElementById("saleList"+saleNum).style.display="";</script>
    <p> </p>
    <p>更多网页特效代码尽在 <a href="http://www.jshtml.cn/">网页特效代码</a></p>
    </body>
    </html>
    这个仿拍拍基本上就是2层放图片,但用起来的效果还是可以的,如果不喜欢我还有下面呢,慢慢学,总会看懂的 (最重要的还是Css哦)

    这个主要就是让层实现隐藏 我觉得这个在层使用方面还是好的

    从总体上看,在实现层与层之间的交互,在其代码 我觉得你有必要去认真看下 !
    以上是我介绍额度菜单,虽然不是很强大,但是却很使用,而且在J2EE中
    菜单基本上是一个假象,都是用层与Css之间的特效做出来的!
    学会了层的具体应用,我相信你也可以有自己特色的菜单的

    那我祝你好运咯!!加油!!

    JS处理剪贴板

    IE 是第一个支持剪贴板相关事件及通过 JavaScript 访问剪贴板数据的浏览器。IE 的实现成为了事实 标准,这是因为 Safari、Chrome、Opera 和 Firefox 都实现了相同的事件和剪贴板访问机制,后来 HTML5 也增加了剪贴板事件 。

    (1) beforecopy:复制操作发生前触发。

    (2) copy:复制操作发生时触发。

    (3) beforecut:剪切操作发生前触发。

    (4) cut:剪切操作发生时触发。

    (5) beforepaste:粘贴操作发生前触发。

    (6) paste:粘贴操作发生时触发。

    这是一个比较新的控制剪贴板访问的标准,事件的行为及相关对象会因浏览器而异。在 Safari、 Chrome 和 Firefox 中,beforecopy、beforecut 和 beforepaste 事件只会在显示文本框的上下文菜 单(预期会发生剪贴板事件)时触发,但 IE 不仅在这种情况下触发,也会在 copy、cut 和 paste 事 件之前触发。无论是在上下文菜单中做出选择还是使用键盘快捷键,copy、cut 和 paste 事件在所有 浏览器中都会按预期触发。

    通过 beforecopy、beforecut 和 beforepaste 事件可以在向剪贴板发送或从中检索数据前修改 数据。不过,取消这些事件并不会取消剪贴板操作。要阻止实际的剪贴板操作,必须取消 copy、cut 和 paste 事件。

    剪贴板上的数据可以通过 window 对象(IE)或 event 对象(Firefox、Safari 和 Chrome)上的 clipboardData 对象来获取。在 Firefox、Safari 和 Chrome 中,为防止未经授权访问剪贴板,只能在剪 贴板事件期间访问 clipboardData 对象;IE 则在任何时候都会暴露 clipboardData 对象。为了跨浏 览器兼容,最好只在剪贴板事件期间使用这个对象。

    clipboardData 对象上有 3 个方法:getData()、setData()和 clearData(),其中 getData() 方法从剪贴板检索字符串数据,并接收一个参数,该参数是要检索的数据的格式。IE 为此规定了两个选 项:"text"和"URL"。Firefox、Safari 和 Chrome 则期待 MIME 类型,不过会将"text"视为等价于 "text/plain"。

    setData()方法也类似,其第一个参数用于指定数据类型,第二个参数是要放到剪贴板上的文本。 同样,IE 支持"text"和"URL",Safari 和 Chrome 则期待 MIME 类型。不过,与 getData()不同的是, Safari 和 Chrome 不认可"text"类型。只有在 IE8 及更早版本中调用 setData()才有效,其他浏览器会 忽略对这个方法的调用。

    这里的 getClipboardText()函数相对简单,它只需要知道 clipboardData 对象在哪里,然后 便可以通过"text"类型调用 getData()。相应的,setClipboardText()函数则要复杂一些。在确定 clipboardData 对象的位置之后,需要根据实现以相应的类型(Firefox、Safari 和 Chrome 是 "text/plain",而 IE 是"text")调用 setData()。

    如果文本框期待某些字符或某种格式的文本,那么从剪贴板中读取文本是有帮助的。比如,如果文 本框只允许输入数字,那么就必须检查粘贴过来的值,确保其中只包含数字。在 paste 事件中,可以 确定剪贴板上的文本是否无效,如果无效就取消默认行为,如下面的例子所示:

    这个 onpaste 事件处理程序确保只有数字才能粘贴到文本框中。如果剪贴板中的值不符合指定模 式,则取消粘贴操作。Firefox、Safari 和 Chrome 只允许在 onpaste 事件处理程序中访问 getData() 方法。

    因为不是所有浏览器都支持剪贴板访问,所以有时候更容易屏蔽一个或多个剪贴板操作。在支持 copy、cut 和 paste 事件的浏览器(IE、Safari、Chrome 和 Firefox)中,很容易阻止事件的默认行为。 在 Opera 中,则需要屏蔽导致相应事件的按键,同时阻止显示相应的上下文菜单。

    关于下拉菜单的JS代码

    <styletype="text/css">

    mainMenu{

    background-color:FFF;/*Backgroundcolorofmainmenu*/

    font-family:TrebuchetMS,LucidaSansUnicode,Arial,sans-serif;/*Fontsofmainmenuitems*/

    font-size:1.2em;/*Fontsizeofmainmenuitems*/

    border-bottom:1pxsolid000000;/*Bottomborderofmainmenu*/

    height:30px;/*Heightofmainmenu*/

    position:relative;/*Don'tchangethispositionattribute*/

    visibility:hidden;

    }

    mainMenua{

    padding-left:20px;/*Spacesattheleftofmainmenuitems*/

    padding-right:20px;/*Spacesattherightofmainmenuitems*/

    font-weight:bold;

    /*Don'tchangethesetwooptions*/

    position:absolute;

    bottom:-1px;

    }

    submenu{

    font-family:TrebuchetMS,LucidaSansUnicode,Arial,sans-serif;/*Fontofsubmenuitems*/

    background-color:E2EBED;/*Backgroundcolorofsubmenuitems*/

    visibility:hidden;

    width:778px;/*Don'tchangethisoption*/

    }

    html>bodyclearmenu{/*nonIEbrowsersmenubottomspacing*/

    margin-bottom:2px;

    }

    submenudiv{

    white-space:nowrap;/*Don'tchangethisoption*/

    }

    /*

    Styleattributesofactivemenuitem

    */

    mainMenu.activeMenuItem{

    /*Borderoptions*/

    border-left:1pxsolid000000;

    border-top:1pxsolid000000;

    border-right:1pxsolid000000;

    background-color:E2EBED;/*Backgroundcolor*/

    cursor:pointer;/*Cursorlikeahandwhentheusermovesthemouseoverthemenuitem*/

    }

    /*

    Styleattributesofinactivemenuitems

    */

    mainMenu.inactiveMenuItem{

    color:000;/*Textcolor*/

    cursor:pointer;/*Cursorlikeahandwhentheusermovesthemouseoverthemenuitem*/

    }

    submenua{

    text-decoration:none;/*Nounderlineonsubmenuitems-usetext-decoration:underline;ifyouwantthelinkstobeunderlined*/

    padding-left:5px;/*Spaceattheleftofeachsubmenuitem*/

    padding-right:5px;/*Spaceattherightofeachsubmenuitem*/

    color:000;/*Textcolor*/

    }

    submenua:hover{

    color:FF0000;/*Redcolorwhentheusermovesthemouseoversubmenuitems*/

    }

    </style>

    <scripttype="text/javascript">

    //morejavascriptfrom/support/analyzer/manual/html/General/CookiesJavaScript.htm

    */

    functionGet_Cookie(name){

    varstart=document.cookie.indexOf(name+"=");

    varlen=start+name.length+1;

    if((!start)&&(name!=document.cookie.substring(0,name.length)))returnnull;

    if(start==-1)returnnull;

    varend=document.cookie.indexOf(";",len);

    if(end==-1)end=document.cookie.length;

    returnunescape(document.cookie.substring(len,end));

    }

    //Thisfunctionhasbeenslightlymodified

    functionSet_Cookie(name,value,expires,path,domain,secure){

    expires=expires*60*60*24*1000;

    vartoday=newDate();

    varexpires_date=newDate(today.getTime()+(expires));

    varcookieString=name+"="+escape(value)+

    ((expires)?";expires="+expires_date.toGMTString():"")+

    ((path)?";path="+path:"")+

    ((domain)?";domain="+domain:"")+

    ((secure)?";secure":"");

    document.cookie=cookieString;

    }

    functionshowHide()

    {

    if(activeMenuItem){

    activeMenuItem.className='inactiveMenuItem';

    vartheId=activeMenuItem.id.replace(/[^d]/g,'');

    document.getElementById('submenu_'+theId).style.display='none';

    }

    activeMenuItem=this;

    this.className='activeMenuItem';

    vartheId=this.id.replace(/[^d]/g,'');

    document.getElementById('submenu_'+theId).style.display='block';

    if(rememberActiveTabByCookie){

    Set_Cookie('dhtmlgoodies_tab_menu_tabIndex','index:'+(theId-1),100);

    }

    }

    functioninitMenu()

    {

    varmainMenuObj=document.getElementById('mainMenu');

    varsubMenuObj=document.getElementById('submenu');//DDaddedline

    mainMenuObj.style.visibility=subMenuObj.style.visibility="visible"//DDaddedline

    varmenuItems=mainMenuObj.getElementsByTagName('A');

    if(document.all){

    mainMenuObj.style.visibility='hidden';

    document.getElementById('submenu').style.visibility='hidden';

    }

    if(rememberActiveTabByCookie){

    varcookieValue=Get_Cookie('dhtmlgoodies_tab_menu_tabIndex')+'';

    cookieValue=cookieValue.replace(/[^d]/g,'');

    if(cookieValue.length>0&&cookieValue<menuItems.length){

    activeTabIndex=cookieValue/1;

    }

    }

    varcurrentLeftPos=15;

    for(varno=0;no<menuItems.length;no++){

    if(activateSubOnClick)menuItems[no].onclick=showHide;elsemenuItems[no].onmouseover=showHide;

    menuItems[no].id='mainMenuItem'+(no+1);

    menuItems[no].style.left=currentLeftPos+'px';

    currentLeftPos=currentLeftPos+menuItems[no].offsetWidth+topMenuSpacer;

    if(no==activeTabIndex){

    menuItems[no].className='activeMenuItem';

    activeMenuItem=menuItems[no];

    }elsemenuItems[no].className='inactiveMenuItem';

    if(!document.all)menuItems[no].style.bottom='-1px';

    }

    varmainMenuLinks=mainMenuObj.getElementsByTagName('A');

    varsubCounter=1;

    varparentWidth=mainMenuObj.offsetWidth;

    while(document.getElementById('submenu_'+subCounter)){

    varsubItem=document.getElementById('submenu_'+subCounter);

    if(leftAlignSubItems){

    //Noaction

    }else{

    varleftPos=mainMenuLinks[subCounter-1].offsetLeft;

    document.getElementById('submenu_'+subCounter).style.paddingLeft=leftPos+'px';

    subItem.style.position='absolute';

    if(subItem.offsetWidth>parentWidth){

    leftPos=leftPos-Math.max(0,subItem.offsetWidth-parentWidth);

    }

    subItem.style.paddingLeft=leftPos+'px';

    subItem.style.position='static';

    }

    if(subCounter==(activeTabIndex+1)){

    subItem.style.display='block';

    }else{

    subItem.style.display='none';

    }

    subCounter++;

    }

    if(document.all){

    mainMenuObj.style.visibility='visible';

    document.getElementById('submenu').style.visibility='visible';

    }

    document.getElementById('submenu').style.display='block';

    }

    window.onload=initMenu;

    </script>

    <divid="mainMenu">

    <a>网页特效</a>

    <a>插件下载</a>

    <a>网络学院</a>

    <a>网站联盟</a>

    </div>

    <divid="submenu">

    <!--Thefirstsubmenu-->

    <divid="submenu_1">

    <ahref="javascript.asp?type=图形图像">图形图像</a>

    <ahref="javascript.asp?type=鼠标事件">鼠标事件</a>

    <ahref="javascript.asp?type=时间日期">时间日期</a>

    <ahref="javascript.asp?type=导航菜单">导航菜单</a>

    <ahref="javascript.asp?type=文字效果">文字效果</a>

    <ahref="javascript.asp?type=窗体变化">窗体变化</a>

    </div>

    <!--Secondsubmenu-->

    <divid="submenu_2">

    <ahref="plug.asp?type=DreamWeaver插件">DreamWeaver插件</a>

    <ahref="plug.asp?type=FireWork插件"FireWork插件</a>

    <ahref="plug.asp?type=PhotoShop插件">PhotoShop插件</a>

    <ahref="plug.asp?type=FLASH组件">FLASH组件</a>

    </div>

    <!--Thirdsubmenu-->

    <divid="submenu_3">

    <ahref="study.asp?type=网页制作">网页制作</a>

    <ahref="study.asp?type=网络编程">网络编程</a>

    <ahref="study.asp?type=图形图像">图形图像</a>

    <ahref="study.asp?type=多媒作">多媒作</a>

    <ahref="study.asp?type=网站建设">网站建设</a>

    <ahref="study.asp?type=操作系统">操作系统</a>

    </div>

    <!--Fourthsubmenu-->

    <divid="submenu_4">

    <ahref="webmeng_show.asp?type=1">网页设计</a>

    <ahref="webmeng_show.asp?type=2">艺术创作</a>

    <ahref="webmeng_show.asp?type=3">电脑网络</a>

    <ahref="webmeng_show.asp?type=4">生活休闲</a>

    <ahref="webmeng_show.asp?type=5">个性展示</a>

    <ahref="webmeng_show.asp?type=6">其它类型</a>

    </div>

    </div>

    <brid="clearmenu"/>

    优库美食网还为您提供以下相关内容希望对您有帮助:

    ...有哪些建议和技巧附五款有用的调试工具_javascript技巧

    1)Drosera可以调试任何WebKit程序,不仅仅是Safari浏览器。2)Dragonfly源代码视图有语法高亮,可以设置断点。强大的搜索功能,支持正则表达式。3)Getfirebug可以在任何网页编辑、调试和实时监视CSS、HTML和JavaScript。4)Debugbar5)VenkmanVenkman是Mozilla的JavaScript调试器名称。它旨在为以Mozilla为基础的浏览器(Firefox, Netsc...

    如何实现在一个网页中弹出多个不同的小窗口

    center: {yes | no | 1 | 0 } 指定是否将对话框在桌面上居中,默认值是“yes”。help: {yes | no | 1 | 0 } 指定对话框窗口中是否显示上下文敏感的帮助图标。默认值是“yes”。 resizable: {yes | no | 1 | 0 } 指定是否对话框窗口大小可变。默认值是“no”。 status: {yes | no | 1 | 0...

    弹出窗口的html的代码是怎么写的?

    1、最基本的弹出窗口代码 &lt; SCRIPT LANGUAGE="javascript"&gt; &lt; !-- window.open ("page.html")-- &gt; &lt; /SCRIPT&gt; window.open ("page.html") 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。2、经过设置后的...

    Electron跨平台桌面应用程序开发框架入门简介及学习笔记

    渲染进程:第一种方法:preload加载的可直接使用在newBrowserWindow(查看官网它的详细参数)时使用webPreferences:{preload:path.join(__dirname,"renderer/preload.js")BrowserWindow通过preload.js可直接使用nodejs模块 第二种方法:不在preload加载的如果要在index.html引用Nodejs的模块如index.html里加了在rederer.js中如果...

    网页内容不允许复制,鼠标右键被屏蔽,如何解决

    1.可以象第一种方法的破解一样,在地址栏输入 javascript:alert(document.onmousedown="OK")2.或者在弹出警告对话框时按住右键不放,用左键单击确定(也可以按回车或空格键)后再松开右键,右键菜单就出来了,当然,你也可以直接按键盘上右Win徽征键和右Ctrl键间的那个打开上下文菜单的键。注意:本例的...

    web前端开发需要掌握的几个必备技术

    第一阶段:HTML+CSS:HTML进阶、CSS进阶、div+css布局、HTML+css整站开发、JavaScript基础:Js基础教程、js内置对象常用方法、常见DOM树操作大全、ECMAscript、DOM、BOM、定时器和焦点图。JS基本特效:常见特效、例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件...

    如何限制浏览器窗口的大小,寻求精华知识啊!!!

    JS控制浏览器窗口的大小代码之二: 程序代码 &lt;SCRIPT&gt; if (window != top) top.location.href = location.href; self.resizeTo(800,600); &lt;/SCRIPT&gt; JS控制浏览器窗口的大小代码之三: 程序代码 function openWin() { var i=0; i = open("","",...

    如何编码使网页调试指定内容在调试台中显示

    要添加特性,请右键单击“HTML”或“CSS”选项卡的左窗格中的元素,然后单击上下文菜单中的“添加属性”。你需要知道该特性的格式(如"background-color:")和正确值。若要删除某个特性(你添加的特性或现有特性),请在右窗格视图中单击该特性,然后按Delete键。对于原始页中的特性,可通过刷新网页恢复它们。添加的特性...

    web前端开发需要哪些技能

    一、HTML5+CSS3 HTML5和CSS3是通往Web工程师路上必须学会的基本内容,主要包括了解常用浏览器和浏览器内核;了解语义化的概念;掌握HTML5语法及使用技巧;掌握HTML5常用标签。掌握CSS语法及使用技巧;掌握DIV+CSS布局方式;掌握常见网页布局模式。掌握HTML5新布局标签、多媒体标签;掌握CSS32D、3D变换、动画...

    火狐浏览器怎么禁用javascript?

    1.在Firefox里,您可以设置是否在网页中使用或者禁止,要启用JavaScript:点击 Firefox 窗口顶部的 工具 菜单并选择 选项 菜单。1.在设置 窗口, 选择内容 选项卡.2,启用JavaScript: 勾选该选项来启用JavaScript。要更改高级设置,按下 高级 3.点击确定按钮关闭“选项”窗口 高级 JavaScript 设置 通过高级 ...

    Top