javascript - 悬停在图片上时显示说明

标签 javascript html css

我有 12 个带有图片和隐藏描述的元素。当我将鼠标悬停在图片上时,它会显示描述。比图片和描述在固定区域有一些背景颜色,但描述下方的图片是可见的,很难阅读描述。显示描述时如何完全覆盖下面的图片?假设图片是 200x200 像素,所以我想从图片顶部覆盖 50 像素。

代码如下:

$(document).ready(function() {
  $('.box').hover(function() {
    $(this).find('.details').show(500);
    $(this).addClass('higlighted');
    $(this).find('.details').css('visibility', 'visible');
  }, function() {
    $(this).find('.details').css('visibility', 'hidden');
    $(this).removeClass('higlighted');
  })
});
.products {
  max-width: 1200px !important;
}

.products-description h1 {
  font-family: 'Homenaje', sans-serif;
  font-size: 50px;
  padding-bottom: 40px;
  padding-top: 2em;
}

.products-description p {
  font-family: 'Mada', sans-serif;
  font-weight: 300;
  font-size: 22px;
  padding-bottom: 3em;
}

.box {
  margin-top: -5em;
}

.box .imgBox {
  padding-top: 2em;
  position: relative;
}

.box .details {
  transition: 0.5s;
  visibility: hidden;
}

.box .details p {
  font-size: 14px;
  color: #ffffff;
}

.higlighted {
  background: rgba(98, 192, 23);
  position: absolute;
  transition: 0.5s;
  cursor: pointer;
}
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
<div class="row products">
  <div class="col-lg-1 box" id="box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details" id="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
</div>
<div class="row products">
  <div class="col-lg-1 box" id="box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details" id="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
  <div class="col-lg-1 box">
    <div class="imgBox">
      <img class="product-mouseover" src="https://via.placeholder.com/150

C/O https://placeholder.com/" alt="">
    </div>
    <div class="details">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco</p>
    </div>
  </div>
</div>

最佳答案

唯一需要编辑的是 .highlighted 类的 CSS 和小的 JQuery 脚本。

你可以了解更多z-index here :

.higlighted {
  background: rgba(98, 192, 23);
  position: absolute;
  transition: 0.5s;
  cursor: pointer;
  z-index: 1;
}

我已经使用您的逻辑来满足您的需求,即通过切换 imgBox 的 css 可见性类。

<script>
    $(document).ready(function() {
  $('.box').hover(function() {
    $(this).find('.details').show(500);
    $(this).addClass('higlighted');
    $(this).find('.details').css('visibility', 'visible');
    $(this).find('.imgBox').css('visibility', 'hidden');
  }, function() {
    $(this).find('.details').css('visibility', 'hidden');
    $(this).find('.imgBox').css('visibility', 'visible');
    $(this).removeClass('higlighted');
  })
});
</script>

关于javascript - 悬停在图片上时显示说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55238805/

相关文章:

javascript - React 初学者问题 : Textfield Losing Focus On Update

javascript - 如何关闭所有用 jquery 打开的元素? (行为类似于 Accordion 菜单)

javascript - jQuery 用户界面 1.10 : dialog and zIndex option

html - 将 div 定位在具有绝对位置的 div 下方

CSS继承怪癖

javascript - 如果使用 IE9 Specific 的条件注释,我可以交换索引页中包含的 js 文件吗

javascript - 使用 jquery 从 .cshtml 页面调用 Controller 操作

javascript - 创建数组的排序映射并对数组进行排序

node.js - 如何使用适合移动设备的后置摄像头

javascript - 向上滑动整页