我有一个脚本可以在小屏幕上折叠我的网站导航,基于 Brad Front 的示例:http: //codepen.io/bradfrost/full/sHvaz
脚本所做的只是在单击时切换一个类,然后 CSS 使用最大高度上的转换来隐藏和显示菜单。
在我的一个站点上,脚本运行得很好,但在其他站点上,在 CSS 转换开始之前单击“隐藏菜单”后会有明显的延迟。
按预期运行的脚本在这里:http ://archstglassinc.com/ (当浏览器窗口窄于 768px 时,该脚本开始发挥作用)。
这是未缩小的脚本:
var $menu = jQuery('#menu-main-nav'),
$menulink = jQuery('.menu-link');
$menulink.click(function() {
$menulink.toggleClass('active');
$menu.toggleClass('active');
return false;
});
而滞后的脚本在这里:https://www.talleyreedinsurance.com/ (请注意:为了访问本网站上的折叠菜单,当您的浏览器窗口小于768 像素)。第一次单击可以很好地显示菜单,但是在第二次单击之后菜单开始消失之前会有延迟。
这个脚本,未缩小,有点长,因为它启用了一些将在未来阶段出现的下拉菜单,但相关部分是相同的,只是它使用preventDefault
而不是return false
停止链接:
var $menu = $('#menu-partial-nav-for-launch'),
$menulink = $('.menu-link'),
$menuTrigger = $('.family-link > a, .business-link > a');
$menulink.click(function(e) {
e.preventDefault();
$menulink.toggleClass('active');
$menu.toggleClass('active');
});
$menuTrigger.click(function(e) {
e.preventDefault();
var $this = $(this);
$this.toggleClass('active').next('ul').toggleClass('active');
});
不过,给你这个代码可能是无关紧要的。我可以说类切换确实会立即发生,因为“站点菜单”链接文本旁边的图标会立即切换,这依赖于切换类。
但是在最大高度转换开始之前会有半秒或更长时间的延迟。
谁能确定(甚至推测)什么会导致过渡中的这种停顿?