如何用jquery和css3在手机上实现*SMOOTH*淡入淡出动画
how to achieve *SMOOTH* fade in and out animation on mobile with jquery and css3?
我知道我可以使用jquery淡入淡出,但在移动设备上会有抖动,喜欢低fps之类的。经过大量搜索,我发现我可以使用css3转换到opacitiy 0,但问题是元素仍然有自己的位置。即使有可见性:没有,它也会保持原来的空间。唯一的方法是使用display:没有,但据我所知,我无法设置动画。那么,有没有一种方法可以通过jquery和css3的组合在手机上实现平滑的淡入淡出动画呢?甚至只有一个?非常感谢。
**EDIT**
:好的,淡出的答案很好,现在淡出会很好。问题是我认为我必须在CCD_ 2之后和CCD_。如果它是有效的,就不要这样做。但它是这样工作的,但我所有的其他动画都不起作用。我还是很困惑。
您应该始终尝试使用CSS3转换,而不是jQuery动画。在这里,我使用CSS3转换来淡出.square
,然后等待转换结束,将display
设置为none
。
如果在jQuery中设置元素的动画,例如,使用fadeOut
,您将看到会发生什么。它基本上将不透明度设置为1,然后以微小的增量将该值降至0。这是非常低效的。因此,最好尽可能始终使用CSS3转换和动画。
淡出:https://jsfiddle.net/danhaswings/znLL0ws5/1/
淡入:https://jsfiddle.net/danhaswings/kjgmxa8x/
HTML
<div class="square"></div>
CSS
.square {
width: 100px;
height: 100px;
background-color: red;
transition: opacity 1s ease-in-out;
}
jQuery
var $square = $('.square');
$square.css('opacity', '0');
$square.one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function() {
$(this).css('display', 'none');
});
你在测试什么样的手机才能获得如此缓慢/抖动的动画?我的似乎适用于移动浏览器上支持的所有动画。
在任何情况下,您都可以尝试使用css关键帧。
令人烦恼的是,您不能为某些属性(如display
)设置动画,但它确实允许很多事情,包括不透明度,如下所示。
div {
width: 100px;
height: 100px;
background: red;
margin: 20px;
}
.to_hide {
-webkit-animation: hide 5s forwards;
animation: hide 2s forwards;
}
@-webkit-keyframes hide {
from {
opacity: 1;
}
40% {
opacity: 0;
}
100% {
position: absolute;
opacity: 0;
}
}
<div class="to_hide"></div>
<div></div>
- MDN上的关键帧
最终,在手机上,你应该尽量避免使用动画,因为手机浏览器并没有针对这些事情进行优化。你的网站应该在大小、布局、内容和动画方面都有所下降。
如果使用jQuery的fadeIn()
,它将在元素中淡入display: none
$element.fadeIn();
function show() {
$("#el").fadeIn();
}
#el {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="show()">Show</button>
<div id="el">Hello</div>
看看这篇文章
您应该始终避免设置会触发布局或绘制的属性的动画,这两种属性都很昂贵,并且可能导致跳过帧。
您应该能够实现结合不透明度和变换属性的渐变
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 实现一个建立在google.com之上的自定义搜索引擎
- 多个组件是如何实现的
- window.location使用jquery mobile实现chrome跳转
- 如何在OpenERP中实现网络摄像头
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- javascript加密实现,包括可信否认
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 如何让程序员在javascript中实现正确的回调
- 如何使用自定义辅助对象(handler)实现嵌套的每个循环
- AngularJS智能表全局配置实现
- 如何用jquery和css3在手机上实现*SMOOTH*淡入淡出动画
- 我可以像Chromium smooth Scroller一样在html页面中实现平滑滚动吗