- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 jQuery 和 CSS3 动画,发现发生了一些奇怪的事情。在我的笔上,当您将鼠标悬停在卡片上或专注于 CCV 字段时,当卡片翻转时,颜色需要一秒钟才能透出。它几乎看起来像它的加载。有人知道这里可能发生什么吗?我才开始使用 jQuery,所以请忽略该代码,除非那是导致问题的原因。
代码笔:https://codepen.io/maciekmat/pen/MWWVPqX
HTML
<div class="page-container">
<h1>Fill in your card details</h1>
<div class="card-scene">
<div class="card-container">
<div class="card card-front">
<div class="card-numbers">
<p id="cardNumber4">0000</p>
<p id="cardNumber8">0000</p>
<p id="cardNumber12">0000</p>
<p id="cardNumber16">0000</p>
</div>
<p id="cardName">M J SMITH</p>
<div class="sortcode-numbers">
<p id="cardSortCode1">00</p>
<p id="cardSortCode2">00</p>
<p id="cardSortCode3">00</p>
</div>
</div>
<div class="card card-back">
<div class="black-strip"></div>
<div class="ccv-strip">
<p id="cardCcvNum">000</p>
</div>
</div>
</div>
</div>
<form action="">
<label>Account Holder Name</label>
<input type="text" id="cardNameField" class="card-name" required></input>
<label>Card Number</label>
<div class="cardnumber-container">
<input type="text" id="cardField4" maxlength="4" minlength="4" class="card-number" required></input>
<input type="text" id="cardField8" maxlength="4" class="card-number" required></input>
<input type="text" id="cardField12" maxlength="4" class="card-number" required></input>
<input type="text" id="cardField16" maxlength="4" class="card-number" required></input>
</div>
<div class="card-numbers-wrap">
<div class="sortcodes-wrap">
<label>Sort Code</label>
<div class="sortcodes">
<input type="text" id="sortCodeFirst" maxlength="2" class="sort-code" required></input>
<input type="text" id="sortCodeSecond" maxlength="2" class="sort-code" required></input>
<input type="text" id="sortCodeThird" maxlength="2" class="sort-code" required></input>
</div>
</div>
<div class="security-code-wrap">
<label>Security Code (CCV)</label>
<input type="text" id="securityCode" maxlength="3" class="security-code" required></input>
</div>
</div>
<button type="submit" id="cardSubmit">Submit</button>
</form>
<!-- <a id="cardSubmit">Submit</a> -->
</div>
CSS:
*{
box-sizing: border-box;
}
p, a, h1{
padding: 0;
margin: 0;
}
body{
font-family: 'Quicksand', sans-serif;
}
.page-container{
width: 350px;
margin: auto;
display: flex;
flex-direction: column;
}
.card-scene{
perspective: 600px;
}
.card{
position: absolute;
margin-top: 1em;
width: 100%;
height: 200px;
display: flex;
flex-direction: column;
justify-content: flex-end;
border-radius: 8px;
padding: 0 0 26px 40px;
transition:all .5s ease;
backface-visibility: hidden;
p{
margin-right: 12px;
letter-spacing: 4px;
margin-top: 5px;
}
#cardName{
margin-top: 22px;
text-transform: uppercase;
}
}
.card-container{
width: 100%;
height: 100%;
transition: transform 1s;
transform-style: preserve-3d;
cursor: pointer;
position: relative;
}
.card-container.is-flipped {
transform: rotateY(180deg);
}
.card-front{
background: rgb(228,228,228);
background: linear-gradient(90deg, rgba(228,228,228,1) 0%, rgba(207,207,207,1) 50%, rgba(132,18,189,1) 50%, rgba(20,106,162,1) 100%);
background-size: 200% 100%;
background-position: left bottom;
}
.card-back{
transform: rotateY(180deg);
background: rgb(228,228,228);
background: linear-gradient(90deg, rgba(228,228,228,1) 0%, rgba(207,207,207,1) 50%, rgba(20,106,162,1) 50%, rgba(132,18,189,1) 100%);
background-size: 200% 100%;
background-position: left bottom;
}
.card-numbers{
display: flex;
flex-direction: row;
}
.sortcode-numbers{
display: flex;
flex-direction: row;
p{
margin: 0;
}
p::after{
content: "-";
margin: 0 5px;
}
p:last-child::after{
content: "";
}
}
form{
margin-top: 14em;
width: 100%;
display: flex;
flex-direction: column;
align-items: flex-start;
}
input{
margin: 1em 0 0;
padding: 14px;
border: 1px solid lightgrey;
border-radius: 5px;
text-align: center;
font-size: 16px;
}
input:focus{
transition: .2s ease;
outline: none !important;
border:1px solid #4d3db0;
box-shadow: 0 0 8px rgba(132,18,189, 0.3);
}
.cardnumber-container{
display: flex;
justify-content: space-between;
}
.card-number{
width: 23%;
}
.card-name{
width: 100%;
text-align: left;
text-transform: uppercase;
}
label{
padding-left: 5px;
margin-top: 1em;
}
.sortcodes{
display: flex;
flex-direction: row;
}
.sortcodes-wrap{
display: flex;
flex-direction: column;
width: 50%;
}
.sort-code{
width: 50px;
margin-right: 10px;
}
.security-code{
width: 70px;
}
.security-code-wrap{
width: 50%;
display: flex;
flex-direction: column;
align-items: flex-end;
}
.card-numbers-wrap{
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
}
#cardSubmit{
background: lightgrey;
padding: 13px 28px;
border-radius: 5px;
margin-top: 2em;
cursor: pointer;
}
.black-strip{
position: absolute;
top: 20px;
left: 0;
width: 100%;
height: 40px;
background: black;
}
.ccv-strip{
position: absolute;
top: 70px;
left: 10px;
width: 250px;
height: 35px;
background: white;
p{
float: right;
margin-top: 7px;
}
}
jQuery:
$("#cardSubmit").on("click", function (e) {
e.preventDefault();
// Grab entered card number fields
const cardNumberFirst = $("#cardField4").val();
const cardNumberSecond = $("#cardField8").val();
const cardNumberThird = $("#cardField12").val();
const cardNumberFourth = $("#cardField16").val();
// Grab entered sort code number fields
const sortCodeFirst = $("#sortCodeFirst").val();
const sortCodeSecond = $("#sortCodeSecond").val();
const sortCodeThird = $("#sortCodeThird").val();
// Grab entered name field
const cardName = $("#cardNameField").val();
// Print the entered values onto the card
$("#cardNumber4").html(cardNumberFirst);
$("#cardNumber8").html(cardNumberSecond);
$("#cardNumber12").html(cardNumberThird);
$("#cardNumber16").html(cardNumberFourth);
$("#cardSortCode1").html(sortCodeFirst);
$("#cardSortCode2").html(sortCodeSecond);
$("#cardSortCode3").html(sortCodeThird);
$("#cardName").html(cardName);
// Change colour of card
$(".card-front, .card-back").css({
"background-position": "right bottom",
color: "white"
});
});
$(".card-number").keyup(function () {
if (this.value.length == this.maxLength) {
$(this)
.next(".card-number")
.focus();
}
});
$(".sort-code").keyup(function () {
if (this.value.length == this.maxLength) {
$(this)
.next(".sort-code")
.focus();
}
});
$(".card-container").hover(function () {
$(this).toggleClass("is-flipped");
});
$('#securityCode').focusin(function () {
$('.card-container').addClass("is-flipped");
});
$('#securityCode').focusout(function () {
$('.card-container').removeClass("is-flipped");
});
最佳答案
如果您指的是卡片翻转导致暂停时出现的闪烁。主要在 Chrome 上。
那么我认为问题在于您在卡的背面绝对定位了元素,这些元素在完成之前会导致转换出现问题。
我已经删除了black-strip
和ccv-strip
的绝对定位。现在过渡顺畅多了。显然,您需要通过其他方式定位这些元素。 (Flex 应该可以正常工作)。
$(".card-container").hover(function() {
$(this).toggleClass("is-flipped");
});
.page-container {
width: 350px;
margin: auto;
display: flex;
flex-direction: column;
}
.card-scene {
perspective: 600px;
}
.card {
position: absolute;
margin-top: 1em;
width: 100%;
height: 200px;
display: flex;
flex-direction: column;
justify-content: flex-end;
border-radius: 8px;
padding: 0 0 26px 40px;
transition: all .5s ease;
backface-visibility: hidden;
}
.card-container {
width: 100%;
height: 100%;
transition: transform 1s;
transform-style: preserve-3d;
cursor: pointer;
position: relative;
}
.card-container.is-flipped {
transform: rotateY(180deg);
}
.card-front {
background: rgb(228, 228, 228);
background: linear-gradient(90deg, rgba(228, 228, 228, 1) 0%, rgba(207, 207, 207, 1) 50%, rgba(132, 18, 189, 1) 50%, rgba(20, 106, 162, 1) 100%);
background-size: 200% 100%;
background-position: left bottom;
}
.card-back {
transform: rotateY(180deg);
background: rgb(228, 228, 228);
background: linear-gradient(90deg, rgba(228, 228, 228, 1) 0%, rgba(207, 207, 207, 1) 50%, rgba(20, 106, 162, 1) 50%, rgba(132, 18, 189, 1) 100%);
background-size: 200% 100%;
background-position: left bottom;
}
.card-numbers {
display: flex;
flex-direction: row;
}
.sortcode-numbers {
display: flex;
flex-direction: row;
}
.cardnumber-container {
display: flex;
justify-content: space-between;
}
.black-strip {
width: 100%;
height: 40px;
background: black;
}
.ccv-strip {
width: 250px;
height: 35px;
background: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="page-container">
<div class="card-scene">
<div class="card-container">
<div class="card card-front">
</div>
<div class="card card-back">
<div class="black-strip"></div>
<div class="ccv-strip">
<p id="cardCcvNum">000</p>
</div>
</div>
</div>
</div>
</div>
关于jquery - 使用 RotateY 缓慢加载卡片翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58751123/
我想要显示正在加载的 .gif,直到所有内容都已加载,包括嵌入的 iframe。但是,目前加载 gif 会在除 iframe 之外的所有内容都已加载后消失。我怎样才能让它等到 iframe 也加载完毕
首先,这是我第一次接触 Angular。 我想要实现的是,我有一个通知列表,我必须以某种方式限制 limitTo,因此元素被限制为三个,在我单击按钮后,其余的应该加载。 我不明白该怎么做: 设置“ V
我正在尝试在我的设备上运行这个非常简单的应用程序(使用 map API V2),并且出于某种原因尝试使用 MapView 时: 使用 java 文件: public class MainMap e
我正在使用 Python 2.6、Excel 2007 Professional 和最新版本的 PyXLL。在 PyXLL 中加载具有 import scipy 抛出异常,模块未加载。有没有人能够在
我想做这个: 创建并打包原始游戏。然后我想根据原始游戏中的蓝图创建具有新网格/声音/动画和蓝图的其他 PAK 文件。原始游戏不应该知道有关其他网格/动画/等的任何信息。因此,我需要在原始游戏中使用 A
**摘要:**在java项目中经常会使用到配置文件,这里就介绍几种加载配置文件的方法。 本文分享自华为云社区《【Java】读取/加载 properties配置文件的几种方法》,作者:Copy工程师。
在 Groovy 脚本中是否可以执行条件导入语句? if (test){ import this.package.class } else { import that.package.
我正在使用 NVidia 视觉分析器(来自 CUDA 5.0 beta 版本的基于 eclipse 的版本)和 Fermi 板,我不了解其中两个性能指标: 全局加载/存储效率表示实际内存事务数与请求事
有没有办法在通过 routeProvider 加载特定 View 时清除 Angular JS 存储的历史记录? ? 我正在使用 Angular 创建一个公共(public)安装,并且历史会积累很多,
使用 Xcode 4.2,在我的应用程序中, View 加载由 segue 事件触发。 在 View Controller 中首先调用什么方法? -(void) viewWillAppear:(BOO
我在某些Django模型中使用JSONField,并希望将此数据从Oracle迁移到Postgres。 到目前为止,当使用Django的dumpdata和loaddata命令时,我仍然没有运气来保持J
创建 Nib 时,我需要创建两种类型:WindowNib 或 ViewNib。我看到的区别是,窗口 Nib 有一个窗口和一个 View 。 如何将 View Nib 加载到另一个窗口中?我是否必须创建
我想将多个env.variables转换为静态结构。 我可以手动进行: Env { is_development: env::var("IS_DEVELOPMENT")
正如我从一个测试用例中看到的:https://godbolt.org/z/K477q1 生成的程序集加载/存储原子松弛与普通变量相同:ldr 和 str 那么,宽松的原子变量和普通变量之间有什么区别吗
我有一个重定向到外部网站的按钮/链接,但是外部网站需要一些时间来加载。所以我想添加一个加载屏幕,以便外部页面在显示之前完全加载。我无法控制外部网站,并且外部网站具有同源策略,因此我无法在 iFrame
我正在尝试为我的应用程序开发一个Dockerfile,该文件在初始化后加载大量环境变量。不知何故,当我稍后执行以下命令时,这些变量是不可用的: docker exec -it container_na
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我刚刚遇到一个问题,我有一个带有一些不同选项的选择标签。 现在我想检查用户选择了哪些选项。 然后我想将一个新的 html 文件加载到该网站(取决于用户选中的选项)宽度 javascript,我该怎么做
我知道两种保存/加载应用程序设置的方法: 使用PersistentStore 使用文件系统(存储,因为 SDCard 是可选的) 我想知道您使用应用程序设置的做法是什么? 使用 PersistentS
我开始使用 Vulkan 时偶然发现了我的第一个问题。尝试创建调试报告回调时(验证层和调试扩展在我的英特尔 hd vulkan 驱动程序上可用,至少它是这么说的),它没有告诉我 vkCreateDeb
我是一名优秀的程序员,十分优秀!