saber 酱的抱枕

Fly me to the moon

09/14
2015
学习

使用superfish制作多级下拉菜单

superfish是一个jQuery插件,可以用来制作多级下拉菜单。来看看是怎么用的:

首先引入所需的文件:

<link href="/f/superfish.css" rel="stylesheet">
<script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.js"></script>
<script src="/f/superfish.js"></script>

引用的superfish.css只是负责样式表现的,我建议引入,然后自己覆盖规则来修改。

html结构则使用ul和li来编制层次:

<ul class="sf-menu">
	<li>
		<a href="">动漫<span class="sf-sub-indicator"> »</span></a>
		<ul>
			<li><a href="">龙与虎</a></li>
			<li><a href="">fate</a></li>
		</ul>
	</li>
	<li>
		<a href="">人物<span class="sf-sub-indicator"> »</span></a>
		<ul>
			<li>
				<a href="">夏娜<span class="sf-sub-indicator"> »</span></a>
				<ul>
					<li><a href="">出自灼眼的夏娜</a></li>
					<li>
						<a href="">名字叫傻娜<span class="sf-sub-indicator"> »</span></a>
						<ul>
							<li><a href="">其实是shana</a></li>
						</ul>
					</li>
					
				</ul>
			</li>
			<li>
				<a href="">saber<span class="sf-sub-indicator"> »</span></a>
				<ul>
					<li><a href="">本名阿尔托莉雅</a></li>
					<li><a href="">武器为石中剑和湖中间</a></li>
					<li><a href="">吃我EX咖喱棒!</a></li>
				</ul>
			</li>
			<li>
				<a href="">六花<span class="sf-sub-indicator"> »</span></a>
				<ul>
					<li><a href="">中二的典范</a></li>
					<li><a href="">六花最可爱了</a></li>
				</ul>
			</li>
		</ul>
	</li>
</ul>

ul的class不是必须用这个指定的,用这个只是为了使用superfish.css里面的规则。如不需要可以改成别的。span标签用来提醒用户这里有子菜单,也可以随意删改。主要的部分只需要ul和li的结构。

最后调用superfish:

<script type='text/javascript'>
    $(document).ready(function() {
        $('sf-menu').superfish();
    });
</script>

查看demo 下载superfish 参考更多

使用superfish制作多级下拉菜单

08/6
2014
学习

jq的导航下拉菜单一例

效果如图(不要点,这真的是图←_←):

我是在A5站长网找到的这个特效,喜欢它的原因是它够简洁实用,添加几句代码就行了,不像有的例子,为了一个小小的下拉菜单竟然引入了2个外部js文件(带上jq就3个了),何苦来哉?

首先引入jq,然后说一下html代码(CSS部分省略)

<ul class="mainnav">
                <li><a href="index.html">首页</a></li>
                <li class="subnav">
                    <a href="">配资中心</a>
                    <dl>
                        <dd><a href="">免费操盘</a></dd>
                        <dd><a href="">日操盘</a></dd>
                        <dd><a href="">月操盘</a></dd>
                    </dl>
                </li>
                <li><a href="cpyy.html">任务大厅</a></li>
                <li><a href="#">合伙人模式</a></li>
                <li><a href="#">股宝盆</a></li>
                <li><a href="#">互助基金</a></li>
                <li><a href="#">金融商学院</a></li>
            </ul>

这里边重要的部分就是结构和class名:
结构是在li标签内的a标签后放入下拉菜单,这个示例使用dl写的下拉菜单。
然后给每个有下拉菜单的li设置同样的class,没有下拉菜单的li的class不要和有下拉菜单的一样。至于ul的class什么的没有关系。

然后就是在头部插入js代码:

<script type="text/javascript">
$(function(){
    $("dl").hide();
    $("li.subnav").hover(function(){
        $(this).find("dl").stop(true,true);
        $(this).find("dl").slideDown();
    },function(){
        $(this).find("dl").stop(true,true);
        $(this).find("dl").slideUp();
    });
})
</script>

注意把第四行的li.classname换成自己的class名。

保存之后查看网页,鼠标经过li的时候下拉菜单就会出现。但是有时候鼠标一离开li下拉菜单就隐藏了,导致点不到,这时候需要给下拉菜单添加定位,添加一个确保它在上层的z-index值(如果不想这样可以对li如此设置,多数情况下也有效)。

jq的导航下拉菜单一例