【发布时间】:2020-12-09 11:37:17
【问题描述】:
我在我的网站上使用mmenu 作为响应式菜单。我最近注意到,在 Google 的搜索控制台中,由于高 CLS(累积布局移位)而出现错误。我检查了一下,确实如此,当我尝试以“慢”模式打开我的页面半秒时,我看到了原始菜单结构,然后加载了 mmenu(在 jQuery 准备好之后等)并且页面正确显示。
我的简化页面结构是:
$(document).ready(function() {
$("#menu").mmenu({
"extensions": ["pageshadow"],
"header": {
"title": "Menu",
"add": true,
"update": true
}
}, {
// config
offCanvas: {
pageSelector: "#container"
}
});
});
<html>
<head>
</head>
<body>
<nav id="menu">
<ul>
<li><a>Categories</a>
<ul>
<li>
<a href="https://example.com/1">Link 1</a>
</li>
<li>
<a href="https://example.com/2">Link 2</a>
</li>
<li>
<a href="https://example.com/3">Link 3</a>
</li>
</ul>
</nav>
<div class="content">This is content</div>
</body>
</html>
您认为,是否可以在此处应用任何快速修复来解决我的 CLS 问题?
【问题讨论】:
-
不确定究竟是什么导致了 cls,这也取决于菜单在之前/之后的外观,但我想说在 mmenu 执行之前尝试隐藏菜单是值得的。添加一个类做菜单,使其占据所需的空间,可能是一个加载器,并在 mmenu 执行后删除这个类,这样可以最大限度地减少布局更改并避免任何硬闪烁。
标签: javascript html jquery performance google-search-console