gpt4 book ai didi

javascript - 整个下拉菜单在页面加载时快速闪烁

转载 作者:技术小花猫 更新时间:2023-10-29 11:49:05 25 4
gpt4 key购买 nike

我有一个标准的下拉菜单,它使用 jQuery 来隐藏子 li 元素。但是,在加载站点时,子元素会快速出现并随后消失(有点像快速闪光)。我认为这与 flash-of-unstyled-content 已知问题完全无关。

该站点是希伯来语的,但这应该不会影响任何内容。本站位于here

如果您想要示例 HTML + CSS 和 Javascript 代码,我很乐意将其发布在这里。

我只是想知道以前是否有人遇到过这个问题。我在 Chrome 中看到它,但我还没有真正检查它是否也发生在 IE 和 Firefox 中。

谢谢!

编辑:如下所示的 HTML/CSS/JS:

HTML:

<ul class="menu">
<li><a href="#">blah</a>
<ul class="sub-menu">
<li><a href="#">blah</a></li>
</ul>
</li>
</ul>

CSS:

/* NAVIGATION -- level 1 */
ul.menu { float: right; list-style-type: none; font-size: 15px; margin-top: 50px; }
ul.menu > li{ float: right; display: inline; position: relative; margin-left: 30px; }
ul.menu li > a { display: block; color: #5c5d5f; text-decoration: none; border-bottom: solid 1px #9b9a95; }

ul.menu li:hover > a, ul.menu li a:hover , ul.menu li.current_page_item > a { color: black; }
body.home .current_page_item > a { }
body.home .current_page_item > a:hover { }

/* NAVIGATION -- level 2 */
ul.menu li > div { display: none; width: 157px; height: 171px; margin-right: -10px; position: absolute; opacity:0; background: url(images/subNav_bg.png) no-repeat top right; }

ul.menu li > div span { height: 15px; background: transparent; display: block; } /* used to push down the menu */

JS:

// navigation menu //
// add hasSubMenu to each li that has one //
$('.menu > li').has('ul').addClass('hasSubMenu');

// wrap with <div> //
$('li.hasSubMenu > ul').wrap('<div />');
$('ul.menu li > div').css('display', 'none');
$('ul.menu li > div').prepend('<span></span>');
$('li.hasSubMenu > a').click(function () {
return false;
});

// add class to <div> for extendedBg //
$('li.extendedBg').find('div').addClass('subBg2');

$('li.hasSubMenu').hover(function () {
// hover on
$(this).addClass('hover').find('div').stop().fadeTo("medium", 1, /* when done fading */
function () {
$(this).find('div').css('display', 'block');
//$(this).find('ul').css('display','block');
}
);

}, function () {
// hover off
$(this).removeClass('hover').find('div').stop().fadeOut();
});

最佳答案

在页面的 CSS 中或直接在元素本身中使用 style="display:none" 将下拉菜单设置为 display: none。这将在页面加载时将其隐藏。

关于javascript - 整个下拉菜单在页面加载时快速闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com