变身在镀铬中闪烁
Transformation flickers in chrome
>我对我的横幅元素进行了转换,该转换在滚动时稍微调整了图像的大小,请参见此处
转换的代码如下所示:
$(window).scroll(function(){
var x = $(this).scrollTop(),
transY = (x * 0.5), scale = 1 + (x * 0.0003),
transform = 'translateY('+transY+'px) scale('+scale+') translate3d(0,0,0)';
$('#myCarousel .carousel-inner').css({
opacity: 1 - (x * 0.0008),
WebkitTransform: transform,
MozTransform: transform,
msTransform: transform,
transform: transform
});
});
我的问题是,虽然动画在 Firefox 中运行非常流畅,但我在 chrome 中获得了闪烁/可见的大小调整效果。
我应该在 css 中更改什么以使其在 chrome 中顺利运行,还是此浏览器无法进行简单的转换?
你可以尝试一个基本的测试与 setTimeout :
$(window).scroll(function(){
var x = $(this).scrollTop(),
transY = (x * 0.5), scale = 1 + (x * 0.0003),
transform = 'translateY('+transY+'px) scale('+scale+') translate3d(0,0,0)';
setTimeout(function(){
$('#myCarousel .carousel-inner').css({
opacity: 1 - (x * 0.0008),
WebkitTransform: transform,
MozTransform: transform,
msTransform: transform,
transform: transform
});
}, 3);
}); // - EOF - $(window).scroll(function()
我会这样做:
var x, transY, transform, scale, c = $('#myCarousel .carousel-inner');
$(window)
.scroll(function() {
x = $(this)
.scrollTop();
transY = (x * 0.5);
scale = 1 + (x * 0.0003);
transform = 'translateY(' + transY + 'px) scale(' + scale + ') translate3d(0,0,0)';
});
requestAnimationFrame(function anim() {
c.css({
opacity: 1 - (x * 0.0008),
WebkitTransform: transform,
MozTransform: transform,
msTransform: transform,
transform: transform
});
requestAnimationFrame(anim);
});
但我从未见过你在铬中谈论的闪烁。
相关文章:
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 使用jQuery以红色和黑色闪烁文本
- 我的Tizen应用程序在点击时会闪烁
- IE6在启用/禁用文本字段上闪烁
- JavaScript:单击时相对于父级增加变量值
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- .scroll()函数在上次更新后在谷歌chrome中定位闪烁
- 页面加载之间闪烁
- 如何在ui路由器angularjs中只更改子ui视图,同时保持父视图不变
- 将数据保存到数据库(ajax/php)后,使文本字段变灰/禁用
- 如何从特定页面中提取php变量值
- JavaScript模数未正确递增变量值
- 替换另一个变量对象中的变量值
- mandrill合并标记不接受变量值
- 创建闪烁“;文本“;在javascript中
- 如何使用按键避免图像闪烁
- 将变量值从一个javascript传递到另一个javascript
- 如何将变量值附加到另一个变量
- 如何使表格的一部分变灰
- 变身在镀铬中闪烁