我在我的网站上遇到此问题的一些原因。
当网站加载时,子菜单会在一秒钟内可见。如果我去那里点击任何其他菜单,我将看到的第一个是子菜单将再次可见一秒钟。我检查了 Firefox、Chrome、safari 到处都是一样的。
我花了很多时间来解决这个问题,但不幸的是我做不到。该页面在这里: http: //myproperty-solution.co.uk/index.php
有人可以帮我看看这个吗?
先感谢您,
问候,
丹尼尔
我在我的网站上遇到此问题的一些原因。
当网站加载时,子菜单会在一秒钟内可见。如果我去那里点击任何其他菜单,我将看到的第一个是子菜单将再次可见一秒钟。我检查了 Firefox、Chrome、safari 到处都是一样的。
我花了很多时间来解决这个问题,但不幸的是我做不到。该页面在这里: http: //myproperty-solution.co.uk/index.php
有人可以帮我看看这个吗?
先感谢您,
问候,
丹尼尔
所有其他答案都很好但不完整 - 只有在打开 javascript 时才应该隐藏它。当 javascript 关闭时,您仍然应该显示它们。
所以你应该做这样的事情:
.js .sf-menu ul {
display: none;
}
只有当.js
js打开时,你的身体上才设置一个类,就像这样,在你的<head>
<script>
<!--
if (document.documentElement && document.getElementById){
document.documentElement.className += " js";
}
// -->
</script>
我检查了您的代码,在您的样式表中添加此代码
.sf-menu ul { display: none;}
添加样式=“显示:无;” 到您的子菜单 ul's。
<ul class="sf-menu">
<li><a href="index.php">Home</a></li>
<!-- ... -->
<li><a href="?page=contactus">Contact us</a>
<ul style="display: none;"> <!-- add style here -->
<li><a href="#">Commercial</a></li>
<!-- ... -->
</ul>
</li>
</ul>
问题是它们的菜单脚本(superfish)是在document.ready事件上触发的,该事件发生在页面上的所有元素都加载之后。目前,在触发 ready 事件之前,您的子菜单是可见的。
编辑:正如其他人所说,应该将样式添加到 CSS,而不是直接在元素上使用样式属性。
您应该display:none
在 css 中将它们设置为,以便它们在页面加载时不可见。
在此处发布您的 CSS 代码,而不是将用户发送到您的网站进行修复。
我认为这是因为您使用 javascript 控制菜单,并且 javascript 代码在页面加载时起作用。所以有一会儿你的菜单只使用 css。
尝试添加到css文件
ul ul { display: none; }