Javascript 在Google Chrome以外的浏览器中提高JS滚动动画的性能
我有一个非常好的动画,标题和标题缩小,最后保持固定的顶部。就我现在所知,这在纯CSS中是不可能的,需要Javascript。我有一个可行的解决方案,但是取决于浏览器,动画远不是平滑的。Chrome处理得最好,Firefox有点小问题Internet Explorer是一场灾难Javascript 在Google Chrome以外的浏览器中提高JS滚动动画的性能,javascript,css,performance,animation,scroll,Javascript,Css,Performance,Animation,Scroll,我有一个非常好的动画,标题和标题缩小,最后保持固定的顶部。就我现在所知,这在纯CSS中是不可能的,需要Javascript。我有一个可行的解决方案,但是取决于浏览器,动画远不是平滑的。Chrome处理得最好,Firefox有点小问题Internet Explorer是一场灾难
window.addEventListener('load',function(){
if($(“.sub header”)[0]){
window.addEventListener('scroll',函数(){
var scroll_top=$(窗口).scrollTop();
var font_size=Math.max(2,4-0.005*滚动顶部)+“rem”;
var padding=Math.max(1,4-0.01*scroll_top)+“rem 15px”;
变量标题高度=数学最大值(84330-0.5*滚动顶部);
var margin_top=数学最小值(664,84+收割台高度+滚动顶部)+“px”;
$('headline').css({'font-size':font-u-size,'行高]:font-u-size});
$(“.sub header”).css({'height':header_height}).find(“.container”).css({'padding':padding});
$(“#content”).css({'margin-top':margin_-top});
});
}
});代码>
.navbar{
高度:84px;
}
.副标题{
颜色:#ffffff;
高度:330px;
边缘顶部:84px;
}
.副标题.集装箱{
身高:100%;
填充:4rem 15px;
}
.副标题h1{
字号:600;
字号:4rem;
线高:4rem;
}
#内容{
利润上限:414px;
填充:4REM0;
}
-
-
-
-
大字标题
次要标题
他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的
在亨德雷特的两个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里。这是一位杰出的领袖,他是一位伟大的领袖
但是,在最低限度的利益下,我们必须在公共消费品的基础上,继续履行我们的义务。在亨德雷特的两个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的
在亨德雷特的两个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里。这是一位杰出的领袖,他是一位伟大的领袖
但是,在最低限度的利益下,我们必须在公共消费品的基础上,继续履行我们的义务。在亨德雷特的两个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里,一个房间里。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。Lorem ipsum Door sit amet,consetetur sadipscing eli
function scrollCallback() {
var scroll_top = $(window).scrollTop();
var font_size = Math.max(2, 4 - 0.005 * scroll_top) + "rem";
var padding = Math.max(1, 4 - 0.01 * scroll_top) + "rem 15px";
var header_height = Math.max(84, 330 - 0.5 * scroll_top);
var margin_top = Math.min(664, 84 + header_height + scroll_top) + "px";
$('#headline').css({'font-size': font_size, 'line-height': font_size});
$(".sub-header").css({'height': header_height}).find(".container").css({'padding': padding});
$("#content").css({'margin-top': margin_top});
};
function debounce(f, ms) {
let isCooldown = false;
return function() {
if (isCooldown) return;
f.apply(this, arguments);
isCooldown = true;
setTimeout(() => isCooldown = false, ms);
};
};
window.addEventListener('load', function () {
if ($(".sub-header")[0]) {
window.addEventListener('scroll', debounce(scrollCallback, 100));
}
});
const scrollHandler = () => {
var scroll_top = $(window).scrollTop();
var font_size = Math.max(2, 4 - 0.005 * scroll_top) + "rem";
var padding = Math.max(1, 4 - 0.01 * scroll_top) + "rem 15px";
var header_height = Math.max(84, 330 - 0.5 * scroll_top);
var margin_top = Math.min(664, 84 + header_height + scroll_top) + "px";
$('#headline').css({
'font-size': font_size,
'line-height': font_size
});
$(".sub-header").css({
'height': header_height
}).find(".container").css({
'padding': padding
});
$("#content").css({
'margin-top': margin_top
});
};
window.addEventListener('scroll', () => requestAnimationFrame(scrollHandler));