javascript - zoomIn 效果(Animate.css)在元素消失和放大之前快速闪烁元素
问题描述
我有一张我想在页面刷新时放大的图像。该图像位于页面的最顶部。当您从另一个网页打开页面时,图像会在那里停留片刻,然后消失,然后按照元素应有的方式放大。如何让瞬间的外观完全不显示,而让图像从 0 不透明度放大?
这是我的这个项目的代码:
@keyframes zoomIn {
from {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3);
}
100% {
opacity: 1;
}
}
.zoomIn {
-webkit-animation-name: zoomIn;
animation-name: zoomIn;
}
<div class="Header-Image-Container rellax">
<img src="images/Calibrator_Logo_Text_NoBackground.png" alt="Header Picture" class="Header-Image
wow zoomIn" data-wow-duration="3s" />
</div>
这是我遇到问题的实际站点的链接:www.calibrator.ca/TestSite。我只是想让图像从 0 不透明度开始,然后缩放到 1。在我看来,css 代码似乎可以完成此操作,但是当它在 chrome 和 firefox 中呈现时,它会在它消失之前有这个图像的闪光. 任何帮助表示赞赏。
解决方案
如果加载图像的绘制和动画开始之间有任何延迟(很可能),图像将在很短的时间内可见,从而导致您看到闪光。一种解决方案是在开始时为图像设置样式visibility: hidden
,然后将其设置visibility
为visible
动画的第一帧(或使用 JavaScript 使其可见)。(您也可以最初将图像设置为样式,opacity: 0
但随后您也可能会在开始时看到一个非 scale3d 图像,因此您最初也需要设置样式;从 . 开始可能更容易visibility: hidden
。)
顺便说一句,使用您编写的代码,您还可能会在图像加载之前发生动画(快速连接和缓存图像可能不会注意到这一点)。如果发生这种情况,您的动画基本上对用户来说是不可见的。一种解决方案是仅zoomIn
在图像load
事件触发后将动画类 ( ) 添加到图像中。(理想情况下,您可以load
使用 将处理程序附加到图像addEventListener()
,但您也可以保持简单并onload
直接在<img>
标签中使用属性。)
推荐阅读
- python - 当变量未通过时 Jinja2 无声地倒下-我宁愿得到一个错误
- python - 为熊猫饼图设置单独的楔形阴影线
- aws-sdk - 使用 Aws::S3::Model::StorageClassMapper::GetStorageClassForName 崩溃
- c++ - Xcode 构建规则:忽略输出,或按编译顺序调用文件映射
- terraform - 在服务部署上启动实例
- oracle - 打破 oracle sqldeveloper 中的任何异常
- java - 如何在 DragEvent 期间将 Imageview On Runtime 定位在特定坐标处?
- jq - 使用 jq 循环对象并返回一个迭代值
- python - python类:逐步运行函数并保存
- android - 将家庭活动设置为默认值