代码之家  ›  专栏  ›  技术社区  ›  Mitchell van Zuylen

图像覆盖在鼠标上方和鼠标高度?

  •  0
  • Mitchell van Zuylen  · 技术社区  · 6 年前

    w3schools在这里有一个很好的图像覆盖演示,这对我想要的有很大帮助。

    https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_image_overlay_slidebottom

    .container:hover .overlay {
      height: 100%;
    }
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Stakvino    6 年前

    您可以使用jQuery获得这种行为

    $("div.container").mousemove(function(e){
      var avatarImg = $("#avatar");
      var avatarPosition = avatarImg.offset();
      var mousePositionX = e.pageX - avatarPosition.left;
      var mousePositionY = e.pageY - avatarPosition.top;
      var overlayNewHeight = avatarImg.height() - mousePositionY;
      $("div.overlay").height(overlayNewHeight);
    });
    
    
    $("div.container").mouseleave(function(){
      $("div.overlay").height(0);
    });
    .container {
      position: relative;
      width: 50%;
      margin-left: 100px;
      margin-top: 100px;
      border: black solid 1px;
    }
    
    #avatar {
      display: block;
      width: 100%;
      height: auto;
    }
    
    .overlay {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background-color: #008CBA;
      overflow: hidden;
      width: 100%;
      height: 0;
      transition: .5s ease;
    }
    
    .text {
      color: white;
      font-size: 20px;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
    }
    <body>
    
    <h2>Slide in Overlay from the Bottom</h2>
    <p>Hover over the image to see the effect.</p>
    
    <div class="container">
      <img src="https://i.imgur.com/I80W1Q0.png" alt="Avatar" class="image" id="avatar">
      <div class="overlay">
        <div class="text">Hello World</div>
      </div>
    </div>
    
    <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
    </body>