javascript - 使用 jQuery 在单击时叠加在图像上

标签 javascript jquery html css

现在,当我点击一张图片时,它会将整个页面设置为具有 60% 的透明度。 我只是想影响被点击的图像本身。

我使用的是 Bootstrap,因此图像的高度/宽度可能会略有不同。

演示: http://jsfiddle.net/txrt6zo1/

$(".thumb-overlay-content").on('click',function() {
    $(this).toggleClass('rotateOut rotateIn');
});
.thumb-overlay-content { margin:10px; background:#CCC; float:left; text-align:center; padding:0px; }
.rotateOut { border:3px solid blue; }
.rotateIn { border:3px solid green; background:green; }
.rotateIn .after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
    color: #FFF;
}
.rotateIn .after {
    display: block;
    background: rgba(0, 0, 0, .6);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="thumb-overlay-content animated rotateOut">
  <img src="http://placehold.it/200x200">
  <div class="after"></div>
</div>

<div class="thumb-overlay-content animated rotateOut">
  <img src="http://placehold.it/200x200">
  <div class="after"></div>
</div>

最佳答案

您需要将 position: relative 放在 .thumb-overlay-content CSS 中。这将使 absolve .after div 相对于其容器的位置。

$(".thumb-overlay-content").on('click', function() {
  $(this).toggleClass('rotateOut rotateIn');
});
.thumb-overlay-content {
  margin: 10px;
  background: #CCC;
  float: left;
  text-align: center;
  padding: 0px;
  position: relative;
}

.rotateOut {
  border: 3px solid blue;
}

.rotateIn {
  border: 3px solid green;
  background: green;
}

.rotateIn .after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  color: #FFF;
}

.rotateIn .after {
  display: block;
  background: rgba(0, 0, 0, .6);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="thumb-overlay-content animated rotateOut">
  <img src="http://placehold.it/200x200">
  <div class="after"></div>
</div>

<div class="thumb-overlay-content animated rotateOut">
  <img src="http://placehold.it/200x200">
  <div class="after"></div>
</div>

关于javascript - 使用 jQuery 在单击时叠加在图像上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48804370/

相关文章:

html - CSS 导航菜单不删除子菜单

javascript - React 中的 render 方法总是有义务的吗?

javascript - 如何检查对象数组中包含的字符串

jquery - 如何使用此 html 和 jquery 代码显示图像

jquery 窗口高度 iOS 7

javascript - ul 下拉菜单在页面缩放时略微移动

javascript - 如果选中复选框,则在数组中传递复选框值

javascript - 如何从异步调用返回响应?

javascript - 如何用 javascript 代码中的嵌入代码替换 youtube/vimeo url?

javascript - 在中央 Pane 中对齐按钮和下拉按钮