邪罗刹的菠萝阁


> 呵呵 O(∩_∩)O,小邪最近在玩鼠标事件来着,所以介绍一些不同的 CSS 和 jQuery 下拉菜单。
> 话说 jQuery 的效果真的很酷,很让人喜欢。期待 CSS 的动画模块早日被主流浏览器支持。

> 平滑移动是很舒服的效果,但移动需要时间,若需要频繁使用下拉菜单,也许不是最好的选择。
> P.s. 最近想做的事情好多喔,想学 PHP、AJAX,还想学 jQuery。杯具的是时间不够 ╮(╯▽╰)╭。

1. CSS Visibility 属性

> 这个属性在下面的普通 CSS 下拉菜单里有用到,所以先了解一下。

2. 普通的 CSS 下拉菜单

> 一般的 CSS 下拉菜单是灰常简单的,只是用了 Hover 伪类而已。
> 此伪类的作用是,当鼠标悬浮在元素上方时,向元素添加样式,移开就移除样式。
> 呵呵,代码我就不贴了,需要的都在这个页面里面,查看源代码就好。
> 话说,这个纯 CSS 下拉菜单就不要使用 IE6 浏览器了,不然会很杯具的。

> Demo 传送门 - Http://tool.evlos.org/demo/css_simple_menu

3. 普通的 JS 下拉菜单

> 呵呵,其实这里只是比上面多了下面的一行 CSS 和 JavaScript 代码。让 IE6 不那么杯具而已。

#menu li.jshover ul { left:auto; }
<script type=text/javascript>
<!--
function menuFix() {
    var sfEls = document.getElementById("menu").getElementsByTagName("li");
    for (var i=0; i<sfEls.length; i++) {
        sfEls[i].onmouseover=function() {
        this.className+=(this.className.length>0? " ": "") + "jshover";
        }
        sfEls[i].onMouseDown=function() {
        this.className+=(this.className.length>0? " ": "") + "jshover";
        }
        sfEls[i].onMouseUp=function() {
        this.className+=(this.className.length>0? " ": "") + "jshover";
        }
        sfEls[i].onmouseout=function() {
        this.className=this.className.replace(new RegExp("( ?|^)jshover\\b"),
"");
        }
    }
}
window.onload=menuFix;
//-->
</script>

> Demo 传送门 - Http://tool.evlos.org/demo/js_simple_menu

4. jQuery 淡入淡出下拉菜单

> 注意!!jQuery 的动画效果中效果名称的大小写灰常重要,错误则会导致效果无效。
> 注意!!如果出现非 IE8 浏览器出现不居中的位移,请加入这个属性 -Webkit-padding-start:0px。
> 好吧,这次在 IE6 里面虽然没有那么杯具,但是淡入淡出效果还是蛮杯具的。

<script type="text/javascript">
	$(document).ready(function() {
		$('#menu ul').addClass('children');
		var f1 = function() {
			$(this).children('ul').fadeIn();
		};
		var f2 = function() {
			$(this).children('ul').fadeOut();
		};
		$('#menu li').hover(f1, f2);
	});
</script>

> Demo 传送门 - Http://tool.evlos.org/demo/jquery_fade_menu

5. jQuery 无限级下拉菜单

> 灰常方便的无限级下拉菜单,有淡入淡出的效果,虽然淡入淡出在 IE6 里是杯具的。
> 顺便在有子菜单的父菜单右边加了一条 3px 的边表示它还有下级。

<script type="text/javascript">
	$(document).ready(function() {
		$('#menu ul').addClass('children');
		$('#menu .children').prev('a').addClass('notice');
		var f1 = function() {
			$(this).children('ul').fadeIn();
		};
		var f2 = function() {
			$(this).children('ul').fadeOut();
		};
		$('#menu li').hover(f1, f2);
	});
</script>

> 不过可以去除淡入淡出,改为出现和消失,就没有问题啦 O(∩_∩)O,嘿嘿。

<script type="text/javascript">
	$(document).ready(function() {
		$('#menu ul').addClass('children');
		$('#menu .children').prev('a').addClass('notice');
		var f1 = function() {
			$(this).children('ul').show();
		};
		var f2 = function() {
			$(this).children('ul').hide();
		};
		$('#menu li').hover(f1, f2);
	});
</script>

> Demo 传送门 - Http://tool.evlos.org/demo/unlimited_menu

6. 四种下拉菜单打包下载(Update)(jQuery 库的为 Google 托管地址)

> http://code.google.com/p/evlosbox/downloads/detail?name=menu_demo.rar

7. 蛋疼着给几个理论整合了一下

> 传说派:哥只是个传说,表迷恋哥。
> 寂寞派:哥吃的不是饭,是寂寞。
> 杯具派:杯具啊!

> 整合版:(- _ -)哥不只是个传说,哥还是个带杯具的寂寞 ~!

8. 欢迎来 Follow 我的 Twitter @AngelSolo

Leave a comment
56 Comments.
  1. 漠岚 Maxthon Windows 坐沙发!#1

    我的沙发吧 哈哈哈 .

    @
  2. 卢松松 Mozilla Firefox Windows 坐板凳!#2

    有个下载地址就好了

    @
  3. ShuaiGe.Me Google Chrome Windows 躺地板!#3

    当然也可以用CSS Play做连级菜单

    @
  4. QiQiBoY Mozilla Firefox Windows 天花板!#4

    灰常不错。。

    @
  5. 九站 Internet Explorer Windows 下水道!#5

    我这用的IE8啊,没见有你说的淡入淡出啊,还是没有放门?

    @
  6. SATURN Mozilla Firefox Windows 地心!#6

    你真的是好能折腾啊

    @
  7. 下拉菜单不适合我,我还是喜欢即点即开的!

    @
    • @619,
      呵呵,说的也是,即点即开蛮的确招人喜欢的呢 ~ :biggrin:
      所以我也没用上,只是研究下 ~ 所不定什么时候不得不用呢 ~ :eek:

      @
  8. JQ始终是我的弱项,还是先把CSS学学好去

    @
  9. 我的菜单也是下拉的,你去看看是哪一种?

    @
  10. 又打错一个字,明白就可以了

    @
  11. 周末到处看一看,这里挺好呵呵

    @
  12. 以前只用flash制作过,不过上面的代码跟flash as2.0非常相似!

    @
  13. jQuery真的很好,我十分喜欢它的那个层滑动效果,就是那个"slideToggle"的效果,看起来真舒服,在用户体验上,比display好多了,很多知名网站都用它,例如GoDaddy.

    @
    • @记忆盒子 , 呵呵 ~ 的确很强大 ~
      SlideToggle 在需要聚焦阅读之类的地方 很不错 ~
      如果那些缩着的区域打开时才开始载入数据,就完美了 ~ :biggrin:

      @
  14. 我发现jQuery 淡入淡出下拉菜单

    鼠标在上面快速移动几下然后移开,它还是在那里淡入淡出淡入淡出播放完了 O(∩_∩)O哈哈~

    @
  15. 我都不知道我的导航栏下拉菜单算是什么性质的。网上找的代码

    @
  16. 强悍的设计,收藏了。

    @
  17. 我的分类少,所以没有考虑

    @
  18. 提示下: 我在chrome下 发现你的顶部导航有问题哦 部分连接失效。。。

    @
  19. 就换圣诞风格了。。呵呵~

    @
  20. 高手中的高高手! :rolleyes:

    @
  21. 要是我有小邪的这份执着,感觉就不会像现在这样无语的活着了。。。

    @

Leave a Reply


[ Ctrl + Enter ]