可点击的重叠div和焦点

时间:2015-03-30 15:18:01

标签: html css opacity overlap

我有一组不同不透明度的多个圆圈,每个圆圈都应该是可点击的,当点击时,它应该会聚焦,点击后会出现在其他圆圈前面。

很简单,你会说...

我的问题是如何使用CSS或Jquery以及如何实现它

示例:

enter image description here

.circles{}
.round{opacity: 0.4;;width:75px;height:75px;border-radius: 50%; position: relative;}
.circle1{background:#0f4977;top: 35px;left: 200px;z-index: 1;}
.circle2{background:#f41875;top: 0px;left: 250px;z-index: 2;}
.circle3{background:#6b259c;top: -50px;left: 205px;z-index: 3;}`


$(".round").click(function() {   //on click of any circle
    $(this).css("z-index", "99");
    $(this).css("opacity", "1");
    $(this).siblings().css("opacity", "0.5");
    $(this).siblings().css("z-index", "5");
});

<div clas="circles">
      <div class="round circle1"></div>
      <div class="round circle2"></div>
      <div class="round circle3"></div>
</div>

小提琴:https://jsfiddle.net/cLqqfh4v/8/

1 个答案:

答案 0 :(得分:1)

怎么样......

$(".round").click(function() {   //on click of any circle
    $(this).css("z-index", "99"); //set this circle's z-index to 99, i.e. bringing it to the front
    $(this).css("opacity", "1");  //Set its opacity to 1 (opaque)
//Reset all other circles:
    $(this).siblings().css("opacity", "0.5");
    $(this).siblings().css("z-index", "5");
});

当你的HTML是:

<div class="round" id="circle1></div>
<div class="round" id="circle2></div>
<div class="round" id="circle3></div>

或类似的东西;你的圈子必须有班级circle

参见JSFiddle:https://jsfiddle.net/jofish999/somad48j/1/

修改


@Sai 所述,更有效的解决方案是为类.opaque设置CSS规则。然后,不是使用jQuery来更改圆圈的CSS,而是使用addClass()为其提供该类,然后removeClass()再次删除它。

$(".round").click(function () { //on click of any circle
   $(this).addClass("opaque");
   $(this).siblings().removeClass("opaque");

你的CSS在哪里:

.opaque {opacity:1; z-index:99;}