我使用suckerfish创建了一个CSS下拉菜单。它的问题是当您单击将您带到类别页面的顶级导航项时,指针仍然在该导航项上,并且下拉菜单会自动显示在IE中。
对于Firefox来说这很好,因为直到我移动鼠标才会出现下拉列表,但IE只是直接踢开而没有任何鼠标移动。
由于菜单非常大,用户不知道页面已经改变了。
此网站http://www.foodnetwork.com/似乎达到了我想要的效果,但在下拉列表再次出现之前稍有延迟。我知道他们正在将它与JS和CSS混合在一起,但无法弄清楚他们在做什么。
任何想法
答案 0 :(得分:1)
我知道你目前正在使用不同的技术解决方案解决这个问题,但在你判断之前,请至少看看我的建议。我不够好,无法直接解释,所以我只会给你一些要点,然后链接到解决方案以帮助你。
此解决方案包含以下属性:
发布文件的站点使用此菜单(它由作者拥有)。因此,请访问此GRC's Script-Free Pure-CSS Menuing System页面。
我真的希望这可以帮助你!!
答案 1 :(得分:0)
使用jQuery的hoverIntent来实现延迟效果。此外,即使光标暂时移出菜单,菜单也会停留在那里。防止分散菜单的闪烁效果出现和消失。
答案 2 :(得分:0)
把它扔到那里,因为可能有其他更改你希望菜单也有:
您可能需要考虑Superfish(更新/升级[并且可能看起来太过于难以理解] Suckerfish版本),其中一个补充是菜单上的delay
option。
答案 3 :(得分:0)
所以我得到了解决方案。
我在文档的头部添加了带有JS的CSS,并在其上设置了一个小延迟。这样,当用户单击主导航链接时,默认情况下会使用CSS隐藏下拉列表,然后使用JS编写的CSS显示下拉列表。用户在页面加载时看到没有破坏的页面,然后在1.5秒后出现下拉列表,从而向用户显示重新加载的页面。
// Add dropdown styles
function addDDStyles() {
var head = document.getElementsByTagName('head')[0];
var logindiv = document.createElement('link');
logindiv.setAttribute('type', 'text/css')
logindiv.setAttribute("rel", "stylesheet");
logindiv.setAttribute("href", 'http://files.stv.claw/css/dropdown.css');
logindiv.setAttribute("media", "screen");
head.appendChild(logindiv);
}
setTimeout('addDDStyles()', 1500)