悬停时的 jQuery 卡片动画

2024-03-23

当鼠标悬停在其中一张卡片上时,其余卡片应正确地逐一减小大小 - 例如,将鼠标悬停在卡片 1 上。

目前我的解决方案是一一添加和删除类,但我想知道是否有更好的方法使用 jQuery 来完成它。

$(".card").mouseover(function() {
  $(".card").removeClass('active');
  $(this).addClass('active');
});

$(".card").mouseout(function() {
  $(".card").removeClass('active');
  $(".c").addClass('active');
});

$(".a").mouseover(function() {
  $(".b").addClass('size1');
  $(".c").addClass('size2');
  $(".d").addClass('size3');
  $(".e").addClass('size4');
});

$(".a").mouseout(function() {
  $(".b").removeClass('size1');
  $(".c").removeClass('size2');
  $(".d").removeClass('size3');
  $(".e").removeClass('size4');
});

$(".b").mouseover(function() {
  $(".c").addClass('size1');
  $(".d").addClass('size2');
  $(".e").addClass('size3');
});

$(".b").mouseout(function() {
  $(".c").removeClass('size1');
  $(".d").removeClass('size2');
  $(".e").removeClass('size3');
});
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 100px;
}

.container .card {
  background-color: red;
  color: #fff;
  width: 100px;
  height: 150px;
  text-align: center;
  display: inline-block;
  transition: 0.2s;
}

.container .card.active {
  transform: scale(1.4, 1.4);
  position: relative;
  z-index: 100;
}

.container .card.a {
  background-color: black;
}

.container .card.b {
  background-color: blue;
  width: 120px;
  height: 170px;
}

.container .card.c {
  background-color: red;
}

.container .card.d {
  background-color: orange;
  width: 120px;
  height: 170px;
}

.container .card.e {
  background-color: yellow;
}

.container .card.size1 {
  transform: scale(1.1, 1.1);
  z-index: 1;
}

.container .card.size2 {
  transform: scale(1.15, 1.15);
  z-index: -1;
}

.container .card.size3 {
  transform: scale(0.9);
  z-index: -2;
}

.container .card.size4 {
  transform: scale(0.8);
  z-index: -3;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div class="container">
  <div class="card a"><p>Card 1</p></div>
  <div class="card b"><p>Card 2</p></div>
  <div class="card c active"><p>Card 3</p></div>
  <div class="card d"><p>Card 4</p></div>
  <div class="card e"><p>Card 5</p></div>
</div>

jsFiddle https://jsfiddle.net/ns75bzdc/


您可以使用 switch 语句和包含要针对每种情况进行切换的不同类的数组:

const arr1 = ['b', 'c', 'd', 'e'];
const arr2 = ['a', 'c', 'd', 'e'];
const arr3 = ['a', 'b', 'd', 'e'];
const arr4 = ['a', 'b', 'c', 'e'];
const arr5 = ['a', 'b', 'c', 'd'];
var l = arr1.length;

$(".card").mouseover(function() {
  $(".card").removeClass('active');
  
  switch($(this).attr('class')){
  case 'card a':
    for(var i=0;i<l;i++){$("." + arr1[i]).addClass('size' + i)}
    break;
  case 'card b':
    for(var i=0;i<l;i++){$("." + arr2[i]).addClass('size' + i)}
    break;
  case 'card c':
    for(var i=0;i<l;i++){$("." + arr3[i]).addClass('size' + i)}
    break;
  case 'card d':
    for(var i=0;i<l;i++){$("." + arr4[i]).addClass('size' + i)}
    break;
  case 'card e':
    for(var i=0;i<l;i++){$("." + arr5[i]).addClass('size' + i)}
    break;
  }
  $(this).addClass('active');
});

$(".card").mouseout(function() {
  $(".card").removeClass('active');
  
  switch($(this).attr('class')) {
  case 'card a':
    for(var i=0;i<l;i++){$("." + arr1[i]).removeClass('size' + i)}
    break;
  case 'card b':
    for(var i=0;i<l;i++){$("." + arr2[i]).removeClass('size' + i)}
    break;
  case 'card c':
    for(var i=0;i<l;i++){$("." + arr3[i]).removeClass('size' + i)}
    break;
  case 'card d':
    for(var i=0;i<l;i++){$("." + arr4[i]).removeClass('size' + i)}
    break;
  case 'card e':
    for(var i=0;i<l;i++){$("." + arr5[i]).removeClass('size' + i)}
    break;
  }
   $(".c").addClass('active'); 
});
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 100px;
}

.container .card {
  background-color: red;
  color: #fff;
  width: 100px;
  height: 150px;
  text-align: center;
  display: inline-block;
  transition: 0.2s;
}

.container .card.active {
  transform: scale(1.4, 1.4);
  position: relative;
  z-index: 100;
}

.container .card.a {
  background-color: black;
}

.container .card.b {
  background-color: blue;
  width: 120px;
  height: 170px;
}

.container .card.c {
  background-color: red;
}

.container .card.d {
  background-color: orange;
  width: 120px;
  height: 170px;
}

.container .card.e {
  background-color: yellow;
}

.container .card.size0 {
  transform: scale(1.1, 1.1);
  z-index: 1;
}

.container .card.size1 {
  transform: scale(1.15, 1.15);
  z-index: -1;
}

.container .card.size2 {
  transform: scale(0.9);
  z-index: -2;
}

.container .card.size3 {
  transform: scale(0.8);
  z-index: -3;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div class="container">
  <div class="card a"><p>Card 0</p></div>
  <div class="card b"><p>Card 1</p></div>
  <div class="card c active"><p>Card 2</p></div>
  <div class="card d"><p>Card 3</p></div>
  <div class="card e"><p>Card 4</p></div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

悬停时的 jQuery 卡片动画 的相关文章

  • 如何创建共享网络目录或文件的超链接?

    我检查了以下两个相关讨论 1 如何创建指向本地可执行文件的超链接 https stackoverflow com questions 2815982 how do i make a hyperlink to a local executab
  • 检索受“rowspan”影响的行的列索引的最有效方法是什么?

    考虑下表 table thead tr th th th A th th B th th C th tr thead tbody tr th 1 th td Apples td td Oranges td td Pears td tr tb
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • getJson问题,它返回未定义

    大家好 我有这个代码 var temp if method 1 temp Words val get the words from textbox else getJSON http localhost mine test js funct
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • 如何在没有 jQuery 或延迟加载的情况下推迟背景图像

    根据帕特里克 塞克斯顿tutorial https varvy com pagespeed defer images html 我想以与这里相同的方式推迟背景图像img img src data image png base64 R0lGO
  • 使用mysql数据按高低价格排序

    这是我所拥有的以及我想做的 我的 MySql 数据库中有 12 个项目 4 个产品为 4 99 4 个产品为 3 99 4 个产品为 2 99 我意识到我可以像这样查询数据库 它会给我一个该价格的产品列表
  • Lodash _.hasIntersection?

    我想知道两个或多个数组是否有共同的项目 但我不在乎这些项目是什么 我知道 lodash 有一个 intersection方法 但我不需要它来遍历每个数组的每个项目 相反 我需要类似的东西 hasIntersection一旦找到第一个常见的出
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • 无需画布/显示器即可拍摄隐形 WebRTC/视频照片

    我读了拍摄静态照片 https developer mozilla org en US docs Web API WebRTC API Taking still photos来自 MDN 的描述如何从网络摄像头捕获照片 使用视频元素和med
  • 检查是否安装了 Google Analytics 或 Universal Analytics?

    我正在尝试通过 JavaScript 来确定是否加载了 Google Analytics 或 Universal Analytics 一些客户仍在使用旧的 Google Analytics 我们希望推出一个收集数据的 JavaScript
  • Woocommerce 中的 Ajaxify 标头购物车项目计数

    我正在为 WordPress 创建一个自定义 woocommerce 集成主题 我在顶部有一个 blob 显示购物车中的商品总数 我想使用 Jquery 更新此 blob 无需重新加载页面 我能够通过获取购物车中的当前数量来增加商品数量bl
  • 如何从代码隐藏中向我的 div 添加点击事件?

    如何从代码隐藏中向我的 div 添加点击事件 当我点击 div 时 会出现一个消息框 其中显示 您想删除它吗 并在框中显示 是 或 否 全部来自后面的代码 while reader Read System Web UI HtmlContro
  • Django - 渲染到字符串无法加载 CSS

    我正在尝试使用 Django 1 8 render to string 通过管理命令将 html 转换为 pdf 而不是使用 View request 以下代码可以将模板转换为 pdf 但它无法将 CSS 加载到模板中 def html t
  • 如何将 Django 数据库中的模板标签解释/渲染为 HTML

    我正在尝试添加带有来自 Django 管理站点的图像的帖子 但安全 自动转义关闭过滤器无法解释 Django 的模板标签 My input and page look like 复制图像地址 给出http 127 0 0 1 8000 7B
  • 阻止 PM2 上不同时运行的请求

    在我的 Express 应用程序中 我在应用程序中定义了 2 个端点 一种用于 is sever up 检查 另一种用于模拟阻塞操作 app use status req res gt res sendStatus 200 app use
  • javascript 加壳器与压缩器

    我想知道加壳器与压缩器的区别 优点是什么 即您应该在网络应用程序中部署压缩版本还是压缩版本 示例代码 var layout NAVVISIBLE 1 Init function this Resize Dimensions function
  • 如何在控制台中隐藏日志消息的来源?

    当将消息输出到控制台时 还会显示源代码 在 Chrome 开发者工具中 它位于右侧 console log Foo Source Foo test js 1 Output 但是 在某些网站上 会显示消息without正在显示的源 例如Fac
  • 如何将函数导入到Vue组件中?

    我正在尝试将单个函数导入到我的 Vue 组件中 我为我的函数创建了一个单独的 js 文件 randomId js exports randomId gt My function 在我的 Vue 组件中 我导入了 Random js let

随机推荐

  • 如何在子窗体打开时冻结父窗体

    我遇到的情况是 在某些情况下 我需要打开另一个表单并保持该表单的焦点 modal true 当它们不聚焦并且关闭时 父表单上的控件将使用可能已更改的可能数据进行刷新 最初我有一个方法可以DoEvents虽然子表单已打开 但它导致多个子表单无
  • 单击“确定”后如何停止 sweetalert 滚动到顶部?

    我在用着甜蜜警报2 https sweetalert2 github io当用户在我的网站上发表评论时的脚本 它会向下滚动到他们的评论并弹出甜蜜警报 但是当他们在甜蜜警报框中单击 确定 时 它会滚动回顶部 从我读到的内容来看 我需要某种预防
  • 禁用 Alamofire iOS 缓存

    我试图在使用 Alamofire 发出 iOS 请求时禁用缓存 当我尝试向服务器发出请求 然后以其他用户身份进行身份验证时发出请求时 我会收到 304 状态代码 我已经尝试过一切这个链接 https stackoverflow com qu
  • 具有 HTML 支持的 Angular Material 工具提示

    我只是想知道有没有好的第三方angular material tool tip plugin在 的支持下HTML 我在用Material design with Angular 7仅 无引导程序 虽然我正在使用ng2 工具提示指令 http
  • 函数超时(Windows)?

    我正在尝试为特定功能实现超时 我检查了SE中的许多问题 但找不到任何适合我的问题的解决方案 因为 我在 Windows 中运行 python 超时应用于我无法控制的Python函数 即它是在已经设计的模块中定义的 python函数不是子进程
  • 如何通过 ID 检查 Scratch 项目是否被共享?

    我不希望很多人知道这一点 但是有没有办法检查 Scratch 项目 ID 是否属于共享项目 例如 项目 ID3是一个实际项目 但不共享 而 ID399293697是共享的 那么我如何使用 JavaScript 来查看这些是否共享呢 我搜索了
  • “RVM 不是函数”错误

    RVM 已正确安装在我的计算机上 运行 Mac OSX 10 6 8 并且运行良好 奇怪的是 要运行它 我必须使用source rvm scripts rvm对于每个新会话 我尝试从它创建一个符号链接 opt local bin rvm 但
  • 如何删除 poi 3.8 中的超链接?

    我在读取包含 poi 中超链接文本的 Excel 文件时遇到一些问题 数据是这样的 excel文件 1 type category job type position name email 2 测试 开发商 兼职 经理 洪 asdf dsa
  • 广播接收器中的 Android AlarmManager

    我有广播接收器 该广播接收器应安排警报 通常我会这样做 AlarmManager am AlarmManager getSystemService ALARM SERVICE am set AlarmManager RTC time myP
  • 如何保持 Mercurial 存储库较小?

    我的中央存储库存储在 8GB USB 记忆棒上 我不小心提交了一些大文件 因此存储库不再适合放在内存条上 有办法纠正这种情况吗 我投票赞成了吸引人的答案 因为他有你可能会使用的步骤 但这里有一个方便的列表 不过 首先要提醒一下 如果您已经将
  • 使用 Boost::spirit 编写的解析器存在性能问题

    我想解析一个如下所示的文件 类似 FASTA 的文本格式 gt InfoHeader Some text sequence that has a line break after every 80 characters gt InfoHea
  • Facebook og:图像未以全尺寸显示

    从 ElfYourself com 共享视频时 发送到 Facebook 的 OG 图像为 130x130 像素 Facebook 表示 这是它将在新闻提要 时间轴中显示的最大尺寸 然而 Facebook 在图像提要中实际显示的是 90x9
  • 我们可以在 sails 中的 Create() 回调之后/之前更改属性值吗?

    我有一个场景 我必须用模型的 id 填充模型的属性 对于例如 在用户模型中 module exports attributes activation link string afterCreate function value cb val
  • java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory [重复]

    这个问题在这里已经有答案了 我已关注本教程 http www tutorialspoint com servlets servlets file uploading htm用于使用 servlet 进行文件上传 这是文件夹结构 使用 Ecl
  • 无法获取默认调试密钥库位置

    我在 Android Studio 设置中更改了项目默认位置 Documents Android Studio projects to Documents AndroidProjects 然后我在文件资源管理器中将现有项目从前者移动到后者
  • Play框架:继承按类型排序

    在我的应用程序中 我有两个课程 Group Model 和一个基类Element 我使用单表策略来持久化这些模型 strategy InheritanceType SINGLE TABLE 因此一列dtype在我的表中创建 我现在尝试根据此
  • 修复了使用 FlatList 进行原生反应的页脚

    下列的这个问题 https stackoverflow com questions 29447715 react native fixed footer在带有 ScrollView 的固定页脚上 我试图在屏幕上实现固定页脚FlatList
  • jquery防止窗口滚动

    我正在 jquery 中开发一个选择菜单替换 首先 我必须通过添加来使新的选择菜单可聚焦tabindex 0 到容器 然后 我禁用原始选择菜单的焦点并将焦点放在新菜单上 当新的焦点被聚焦并按下向上和向下箭头时 选项会相应改变 但有一个大问题
  • 在Python中从pdf中提取印地语编写的文本[重复]

    这个问题在这里已经有答案了 我想从 pdf 文档中提取印地文输入的文本 我已附上示例页面的图像 https i stack imgur com UkT86 jpg我正在处理 我尝试使用 pdfminer 从中获取文本 但文本是乱码 可能是由
  • 悬停时的 jQuery 卡片动画

    当鼠标悬停在其中一张卡片上时 其余卡片应正确地逐一减小大小 例如 将鼠标悬停在卡片 1 上 目前我的解决方案是一一添加和删除类 但我想知道是否有更好的方法使用 jQuery 来完成它 card mouseover function card