[英]Animate div-height depending from scrolling, without lag
我有一些部分,想根据滚动(为视差效果)设置一个单独的div(固定)的高度。 每个滚动动作$(window).scroll(function() {...});
以下代码被触发。 我认为这可以正常工作,但是由于CPU的使用,它非常缓慢。 您知道如何通过转换或其他方法将整个事情纳入GPU的使用。
var windowHeight = $(window).height();
var sectionNumber = 0;
$("main section").each(function() {
sectionNumber++;
var secPosition = $(this).position();
if( ( $(window).scrollTop() + windowHeight ) > secPosition.top ) {
var secScrollValue = ($(window).scrollTop() + windowHeight) - secPosition.top;
$(".parallaxBg" + sectionNumber).css("height", (windowHeight - secScrollValue) + "px");
} else {
$(".parallaxBg" + sectionNumber).css("height", "100%");
}
});
视差div(无节号):
.parallaxBg {
position: fixed;
height: 100%;
width: 100%;
top: 0px;
left: 0px;
background-position: 0px 0px;
background-size: 100%;
background-repeat: repeat-x;
background-attachment: fixed;
background-image: ...;
}
这是一个示例: http : //jsfiddle.net/c5axqoo1/在视网膜上并且内容更多时,它的处理方式会更慢!
为什么我用height
? 因为我要固定background-position
。
谢谢:)
您可以设置translateY的动画,使其使用GPU
这是一个可以帮助您的插件: http : //ricostacruz.com/jquery.transit/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.