目前,我唯一找到的是删除owl-carousel.js脚本,所以滑动变得平稳,但是走马灯当然不起作用,您可以在此处查看: https://dev.even-mind.com/Even-Mind
(在iPhone 5上测试)
通过查看DOM元素检查器,您可以发现在向下滚动时,标题的位置从absolute
更改为fixed
,也许这就是导致问题的原因。
这是滚动前的标题:
<div id="header" class="header">
滚动之后:
<div id="header" class="header header-fixed header-prepare">
fixed
:<div id="header" class="header header-fixed">
当我到达"WE ARE"幻灯片时,我看到了卡顿/滞后的滚动。
可能是由于淡入文本的动画从那里开始,导致了这种卡顿。我的建议是:
1- 将所有的<link>
和<script>
标签移动到HTML底部,在</body>
之后加载链接和脚本,让浏览器先加载HTML元素再加载链接和脚本。
2- 考虑删除任何不必要的动画、脚本、链接等等。 例如,我没有看到这些fadeIn动画在所有文本中的意义。如果你只是为了让网站看起来花哨而存在,那么没有问题,但我建议只对用户体验性能使用动画。 示例: 在您想让用户看到的特定元素上使用fadeIn或任何类型的动画。动画可以让眼睛集中注意力,用户会立刻看到动画并关注信息。
3- 像往常一样,压缩您的脚本、CSS 和图像。
4- 使用 G-zip
5- 使用 GTmetrix.com 查看您的网站中的所有问题
我将更仔细地查看您的代码,并查看是否有任何代码问题。
编辑:
和这里: https://gtmetrix.com/reports/even-mind.com/uVHRlGCl
注意: 您的网站大小为3.04MB,请考虑执行上述说明+链接说明!
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
var handyScrollFunction = debounce(function() {
// put your scroll/parallax in here
}, 250);
window.addEventListener('scroll', handyScrollFunction);
从DevTools时间轴视图中可以看到,顶部有很多红色标记。这些表示帧速慢。从屏幕截图可以轻松地看出滚动本身存在一些问题。
再深入一点-有2个函数与scroll
事件一起触发:
你可以通过将函数2委托给requestAnimationFrame
来提高滚动性能。最简单的形式如下:
$(window).scroll(function() {
requestAnimationFrame(someFunctionUpdatingDOM);
})
var $header = $('.header'); // traverse DOM once, cache variable for later use in function
function someFunctionUpdatingDOM() {
$header.addClass('something');
}
我注意到了另一件事情 - 在桌面视图中也存在滚动性能问题,这是由于背景图像的大量重绘引起的。这是由于脚本更改了background-position
以实现视差效果。通常最好使用CSS变换,例如translate3d()
,它们具有硬件加速功能。这样浏览器可以将层(图像)变换调度到GPU上,省略不必要的重绘,使页面滚动平稳。
祝你修复顺利!
Uncaught TypeError: $ is not a function
。您的网站在Chrome桌面上无法加载。 - s0rfi949