You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现图片悬停隐藏其余图片并让对应内容滑入显示的交互效果

图片悬停与内容滑入交互实现方案

核心思路

通过监听图片的hover事件,实现以下交互:

  • 鼠标悬停时:隐藏其余两张图片,同时让对应内容模块以滑入动画显示
  • 鼠标离开时:恢复所有图片显示,隐藏对应内容模块

1. 基础HTML结构

为了让代码更易维护,使用data-target属性关联图片与对应内容模块:

<div class="image-group">
  <img src="image1.jpg" class="img-height-1" data-target="content-1" alt="图片1">
  <img src="image2.jpg" class="img-height-2" data-target="content-2" alt="图片2">
  <img src="image3.jpg" class="img-height-3" data-target="content-3" alt="图片3">
</div>

<div class="content-group">
  <div id="content-1" class="content-item">图片1对应的内容</div>
  <div id="content-2" class="content-item">图片2对应的内容</div>
  <div id="content-3" class="content-item">图片3对应的内容</div>
</div>

2. CSS样式配置

初始化内容模块为隐藏状态,并设置动画基础样式:

/* 图片样式(可选,根据需求调整) */
.image-group img {
  margin: 0 10px;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

/* 内容模块基础样式 */
.content-group {
  margin-top: 20px;
  overflow: hidden; /* 防止动画溢出 */
}

.content-item {
  display: none;
  padding: 15px;
  background-color: #f5f5f5;
  border: 1px solid #eee;
}

3. jQuery交互逻辑实现

结合hover事件与jQuery动画方法,完成需求:

$(document).ready(function() {
  // 缓存DOM元素,提升性能
  const $allImages = $('.img-height-1, .img-height-2, .img-height-3');
  const $allContents = $('.content-item');

  // 绑定悬停事件
  $allImages.hover(
    // 鼠标进入时的处理
    function() {
      const targetId = $(this).data('target');
      
      // 隐藏其他图片(使用fadeOut实现平滑过渡)
      $allImages.not(this).fadeOut(300);
      
      // 显示对应内容,使用slideUp的反向逻辑(slideDown实现滑入效果)
      // 若需要内容从下方滑入,可替换为CSS过渡方案(见下文)
      $allContents.slideUp(200);
      $('#' + targetId).slideDown(400);
    },
    // 鼠标离开时的处理
    function() {
      // 恢复所有图片显示
      $allImages.fadeIn(300);
      
      // 隐藏所有内容
      $allContents.slideUp(400);
    }
  );
});

可选:CSS实现内容向上滑入效果

如果需要内容从容器底部向上滑入(而非向下展开),可替换为以下CSS+JS方案:

调整后的CSS

.content-group {
  position: relative;
  height: 200px; /* 根据内容高度设置 */
  overflow: hidden;
}

.content-item {
  position: absolute;
  bottom: -100%;
  left: 0;
  right: 0;
  padding: 15px;
  background-color: #f5f5f5;
  border: 1px solid #eee;
  transition: bottom 0.4s ease;
}

.content-item.active {
  bottom: 0;
}

对应jQuery代码

$(document).ready(function() {
  const $allImages = $('.img-height-1, .img-height-2, .img-height-3');
  const $allContents = $('.content-item');

  $allImages.hover(
    function() {
      const targetId = $(this).data('target');
      $allImages.not(this).fadeOut(300);
      
      // 移除所有内容的active类,给目标内容添加active类触发动画
      $allContents.removeClass('active');
      $('#' + targetId).addClass('active');
    },
    function() {
      $allImages.fadeIn(300);
      $allContents.removeClass('active');
    }
  );
});

内容的提问来源于stack exchange,提问作者Aimal Siddique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:40:28