javascript - 使用 JQuery 悬停剪辑我的引导卡时“抽搐”
问题描述
我有一个问题,当我点击一个font awesome
图标时我的card
翻转(让它工作正常)但是当我hover
在icon
它“抽搐”时,有时开始翻转卡片但然后停止。
我用我正在使用的所有代码创建了这个小提琴,它也在这样做,所以我知道它没有覆盖我代码中的任何内容。
HTML
<div id="col" class="col-12 col-md-4">
<div class="flip">
<div id="trunkCard" class="card">
<div class="face front">
<div class="card-body" style="padding-top: .5rem">
<div class="form-group row">
<div class="col-12 pr-0" style="display: inline-flex">
<div class="alert-success card-icon w-100">
<canvas id="extensions" class=""></canvas>
</div>
<i id="trunkIcon" class="fas fa-info-circle fa-4x text-info pl-3" style="cursor: pointer; height: fit-content"></i>
</div>
</div>
<div class="form-group row dashboardCardHeadingRow">
<div class="col-12">
<div class="card-subtitle text-muted">Extensions</div>
</div>
</div>
<div class="row text-center">
<div class="col-6">
<div class="card-subtitle text-muted">Billable</div>
<h4 class="mb-0">0</h4>
</div>
<div class="col-6">
<div class="card-subtitle text-muted">Non-billable</div>
<h4 class="mb-0">0</h4>
</div>
</div>
</div>
</div>
<div class="face back">
<div class="card-body">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat animi nobis quia. Adipisci veritatis nihil, quo impedit aliquid provident maxime
maiores
explicabo incidunt. Iste ea eius rem eveniet! Atque, exercitationem?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat animi nobis quia. Adipisci veritatis nihil, quo impedit aliquid provident maxime
maiores
explicabo
incidunt. Iste ea eius rem eveniet! Atque, exercitationem?</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat animi nobis quia. Adipisci veritatis nihil, quo impedit aliquid provident maxime
maiores
explicabo
incidunt. Iste ea eius rem eveniet! Atque, exercitationem?</p>
</div>
</div>
</div>
</div>
</div>
jQuery
$("#extInfoIcon").hover(function () {
$('#extCard').addClass('flipped');
}, function () {
$('#extCard').removeClass('flipped');
});
CSS
.flip {
-webkit-perspective: 800;
perspective: 800;
position: relative;
text-align: center;
}
.flip .card.flipped {
-webkit-transform: rotatey(-180deg);
transform: rotatey(-180deg);
}
.flip .card {
-webkit-transform-style: preserve-3d;
-webkit-transition: 0.5s;
transform-style: preserve-3d;
transition: 0.5s;
background-color: #fff;
}
.flip .card .face {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 2;
}
.flip .card .front {
z-index: 1;
}
.flip .card .back {
-webkit-transform: rotatey(-180deg);
transform: rotatey(-180deg);
position: absolute;
}
同样,这是我使用上述代码的小提琴。
解决方案
我知道这不是你要问的,但你为什么不在点击时切换课程呢?IMO 悬停事件在这种情况下效果不佳,因为一旦光标位于图标上,就会添加类并开始动画。如果您不小心移动了一点光标,动画会重新开始,导致您看到的抽搐。
我个人会将添加/删除类位更改为:
$("#extInfoIcon").click(function () {
$('#extCard').toggleClass('flipped');
}
然后只需添加另一个单击事件处理程序即可再次将其返回。抽搐没了。
推荐阅读
- javascript - 刷新后如何使javascript倒计时继续
- mysql - 如何获取所有父母ID
- c# - 试图从非常大的数据中检索mysql中多个相关表的数据
- sql-server - 如何使用 c#.net 从组合框中的 NpgsqlConnection 获取所有数据库的列表
- paw-app - Paw - 一种在请求之间移动时使所选请求/响应选项卡保持粘性的方法
- node.js - 登录后重定向到个人资料网址
- oauth-2.0 - LinkedIn API 未授权_范围_错误
- c - 在宏定义中转义结构字段
- python - 可以遍历具有不同名称工作表的 excel 文件并导入列表吗?
- angular - 将字符串 [] 数据发送到 api Angular 4