js实现点击某个div层置顶显示

假如有5个DIV,当点击其中任意一个时,触发单击事件,将该DIV置顶显示.求大神帮忙啊...... 假如有5个DIV , 当点击其中任意一个时,触发单击事件,将该DIV置顶显示.
求大神帮忙啊...
展开
 我来答
ab916943003
2017-06-22 · TA获得超过103个赞
知道答主
回答量:172
采纳率:40%
帮助的人:46.8万
展开全部

如果点击某个div层置顶显示的话 

需要用到Z-index 值 

而使用zIndex值 就必须对元素进行绝对定位

可以用如下方法 让被点击的层置顶

//创建一个公共Z值
var z=999;
//然后获取所有div
var aDiv=document.getElementsByTagName('div');
//遍历元素
for(var i=0;i<aDiv.length;i++){

//添加事件
aDiv[i].onclick=function(){

//控制当前点击的div每次点击就z++
//比如这次点击了z值到了1000
//然后下一个div点击的时候
//把这个值赋给他 然后他还++一次 变成1001
//这样那个又是最高的了
this.style.zIndex=z++

}

};
匿名用户
推荐于2018-03-05
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>test</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
border: 0;
}

body {
-moz-user-select: none; 
-webkit-user-select: none;  
-ms-user-select: none;  
-khtml-user-select: none;  
user-select: none;
}

div {
width: 100px;
height: 100px;
text-align: left;
border: 1px solid black;
position: relative;
cursor: pointer;
}
</style>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script>
jQuery (function ($)
    {
    var deltaX = 0, deltaY = 0;
    var docu = $ (document);
init (docu.find('body'), 52);
    randomColorZIndex (docu);
    docu.mouseup (function (event)
    {
    $ (this).unbind ('mousemove');
    return destroy (event);
    });
    });
    var destroy = function (event)
    {
    if (!!$.browser.msie)
    {
    event.returnValue = false;
    event.cancelBubble = true;
    }
    else
    {
    event.preventDefault ();
    event.stopPropagation ();
    }
    return false;
    }
    
    var reorder = function (div) 
    {
     div.css ('z-index', $('div').length);
     var zIndex = 1, arr = $('div').not('div:eq('+div.index('div')+')');
     arr.sort(function(a, b)
     {
     var f = parseInt(a.style.zIndex, 10);
     var s = parseInt(b.style.zIndex, 10);
     if (f > s)
            {
            return 1;
            }
     else if (f < s)
            {
            return -1;
            }
     else 
     {
return 0;
}
     });
     arr.each(function(i, dom)
        {
        $(this).css ('z-index', zIndex + i);
        });
    }
    
    var randomColorZIndex = function (docu)
    {
    var zIndex = 1;
    $ ('div').each (function (i, dom)
    {
     var div = $(this);
     div.css ('z-index', zIndex + i);
    var r = Math.floor(Math.random () * 255), g = Math.floor(Math.random () * 255), b = Math.floor(Math.random () * 255);
    div.css ('background-color', 'rgb(' + r + ',' + g + ',' + b + ')');
    if (i > 0)
            {
     div.css
     ({
     'left': parseFloat(div.prev('div').css('left')) + 40 + 'px',
     'top': parseFloat(div.prev('div').css('top')) - 80 + 'px'
     });
            }
    div.mousedown (function (event)
    {
        if (event.which != 1)
                {
         return destroy (event);
                }
        reorder(div);
        div.css ('cursor', 'move');
        var left = parseFloat (this.style.left) || this.clientLeft;
        var top = parseFloat (this.style.top) || this.clientTop;
        deltaX = event.clientX - left;
        deltaY = event.clientY - top;
        docu.mousemove (function (event)
        {
            div.css 
            ({
             'left': event.clientX - deltaX + 'px',
             'top': event.clientY - deltaY + 'px'
            });
            return destroy (event);
        });
        return destroy (event);
     }).mouseup (function ()
     {
      div.css ('cursor', 'pointer');
     });
    });
    }
    
    var init = function (body, num)
    {
     for ( var i = 0; i < num; i++)
        {
        body.append('<div><font color="white">第' + ( i + 1 ) + '个层</font></div>');
        }
     body.find('div:first').css
     ({
     'left': '0px',
     'top': '0px'
     });
    }
    document.onselectstart=document.ondragstart=document.oncontextmenu=function () {return false;};
</script>
</head>
<body>
</body>
</html>
更多追问追答
追问
老兄 辛苦你了,我的问题已经解决了.
追答
不用,我的这个答案是以前写的,随便放上来就可以解决你的问题。看来你不懂的很多很多
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诺伊eA
2017-07-15 · TA获得超过151个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:43.5万
展开全部
设置各个层的z-index
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
内的权势
2015-02-06 · TA获得超过349个赞
知道小有建树答主
回答量:367
采纳率:50%
帮助的人:274万
展开全部
设置各个层的z-index
追问
你这样达不到使层的z-index值循环递增,也就是当你之前点击过的某个层再被点击时,该层就不能被置顶了.
追答

复制不完。反正行。就js在这里了

<script>
    window.onload = function () {
        for (var i = 0; i < document.getElementsByTagName("div").length; i++) {
            document.getElementsByTagName("div")[i].onclick = function () {
 
                this.style.zIndex = 4;
            }
 
             document.getElementsByTagName("div")[i].onmouseout = function () {
 
                this.style.zIndex =1;
            }
        }
 
    }
</script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式