Javascript:实操---右键显示列表

JS部分

<script type="text/javascript">

window.onload=function(){

  var oUl1=document.getElementById("ul1");

  var oLi1=oUl1.children;

  var bodyWidth=document.documentElement.clientWidth||document.body.clientWidth;

  var bodyHeight=document.documentElement.clientHeight||document.body.clientHeight;

  

  document.oncontextmenu=function(e){

    oUl1.style.display="block";

    var bodyScrolltop=document.body.scrollTop;

    var iWidth=oUl1.offsetWidth;

    var iheight=oUl1.offsetHeight;

    e=e||window.event;

    var x=e.clientX;

    var y=e.clientY;

    if(x<iWidth/2){

      oUl1.style.left=0;

    }else if(x>bodyWidth-iWidth/2){

      oUl1.style.left=bodyWidth-iWidth+"px";

    }else{

      oUl1.style.left=x-iWidth/2+"px";

    }

    if(y>bodyHeight-iHeight){

      oUl1.style.top=bodyHeight-iHeight+bodyScrolltop+"px";

    }else{

      oUl1.style.top=y+bodyScrolltop+"px";

    }

    for(var i=0;i<oLi1.length;i++){

      oLi1[i].index=i;

      oLi1[i].onmouseover=function(){

        var oUl2=oLi1[this.index].children[0];

        oUl2.style.display="block";

        

        var iWidth2=oUl2.offsetWidth;

        var iHeight2=oUl2.offsetHeight;

        if(x>bodyWidth-iWidth-iWidth2){

          oUl2.style.left=-iWidth+"px";

        }

        else{

          oUl2.style.left=iWidth+"px";

        }

        oUl2.style.top=oLi1[this.index].offsetHeight*this.index+"px";

        oLi1[this.index].onmouseout=function(){

          oUl2.style.display="none";

        }

      }

    }

    return false;

  }  

  document.onclick=function(){

    oUl1.style.display="none";

  }

}

</script>

CSS部分

<style type="text/css">
*{margin:0; padding:0;}
body{height:3000px;}
#ul1{display:none; position:absolute; left:0px; top:0px;}
/*#ul2{display: block;}*/
li{list-style:none; border:1px solid #ccc; width:100px;}
#ul1>li ul{display:none; position:absolute; left:0px; top:0px;}

</style>

HTML部分

<ul id="ul1">
    <li>列表1
        <ul>
            <li>子列表1.0</li>
            <li>子列表1.1</li>
        </ul>
    </li>
    <li>列表2
        <ul>
            <li>子列表2.0</li>
            <li>子列表2.1</li>
        </ul>
    <li>列表3
        <ul>
            <li>子列表3</li>
        </ul>
    <li>列表4
        <ul>
            <li>子列表4</li>
        </ul>
    <li>列表5
        <ul>
            <li>子列表5</li>
        </ul>
    </li>
    <li>列表6
        <ul>
            <li>子列表6</li>
        </ul>
    </li>
    <li>列表7
        <ul>
            <li>子列表7</li>
        </ul>
    </li>
    <li>列表8
        <ul>
            <li>子列表8</li>
        </ul>
    </li>
    <li>列表9
        <ul>
            <li>子列表9</li>
        </ul>
    </li>
    <li>列表10
        <ul>
            <li>子列表10.0</li>
            <li>子列表10.1</li>
        </ul>
    </li>
</ul>

Javascript:实操---右键显示列表

时间: 2024-11-09 01:16:07

Javascript:实操---右键显示列表的相关文章

实操:商品列表三级分类的实现方法

对于分类来说,一般包括一级分类,二级分类,三级分类,一般2级分类是比较好做的,大部分网站都是左边点击二级分类,右边显示相对应商品,这就要用到jquery技术了.下面就来为大家详细分析一下该如何实现吧. 首先把二级分类给全部遍历出来,Html代码如下:<volist name='cate' id='vo'> <li <if condition="$Think.get.name eq $vo['name']">class="active"&

Javascript:实操---矩形碰撞后显示颜色

CSS部分 <style type="text/css">div{    font-size: 70px;}#div1{    height: 100px;    width: 100px;    background-color: #ccc;    position: absolute;}    #div2{    height: 100px;    width: 100px;    background-color: yellow;    position: absol

Javascript:实操---自定义滚动条

CSS部分 <style type="text/css">*{    margin: 0;    padding: 0;}#wrap{    width: 300px;    height: 400px;    overflow: hidden;    position: relative;    border: 1px solid #ccc;    margin: 100px;}    #content{    position: absolute;    font-si

Javascript:实操---拖拽(完整版)

CSS部分 <style type="text/css">body{height: 3000px;    width: 3000px;}#div1{    height: 100px;    width: 100px;    background-color: #ccc;    position: absolute;}</style> HTML部分 <div id="div1">DFDSF</div>我发的思考附近的刷

Javascript:实操---放大镜效果(2)

CSS部分<style type="text/css">/* body{    padding: 10px;} */#minWrap{    width: 350px;    height: 350px;    border: 1px solid #ccc;    position: relative;}    #slider{    height: 175px;    width: 175px;    background-color: yellow;    opacit

Javascript:实操---放大镜效果

CSS部分<style type="text/css">/* body{    padding: 10px;} */#minWrap{    width: 350px;    height: 350px;    border: 1px solid #ccc;    position: relative;}    #slider{    height: 175px;    width: 175px;    background-color: yellow;    opacit

Javascript:实操---类似京东图片点击切换

CSS部分 <style>*{ margin:0; padding:0;}#div1{ width:670px; height:150px; margin:20px auto; position:relative; overflow:hidden;}.out{ width:5000px; height:150px; overflow:hidden; position:absolute;}.out ul{ height:150px; list-style:none; position:absol

Javascript:实操---导航条滚动

CSS部分 <style>*{ margin:0; padding:0;}.out{ position:absolute;}.tabs{ width:300px; height:100px; margin-top:20px; position:absolute;}.slider{ height:7px; width:79px; border-bottom:2px solid #E4393C; text-align:center; overflow:hidden; position:absolu

Javascript:实操---碰壁反弹(有阻碍物)

CSS部分 <style>*{    margin: 0px;    padding: 0px; }#main{    width: 700px;    height: 500px;    border: 1px solid black;    position: relative;}#child{    width: 30px;    height: 30px;    border-radius: 15px;    background-color: #ccc;    position: a