jQuery打造动态下滑菜单
作者:mankaiviky 来源:蓝色理想 发布时间:2010-04-20 14:50:00
标签:jQuery,菜单,动态
本教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单。jQuery的"write less, do more"的特性可谓是家喻户晓,即使没有很丰富JS编程经验的人,也可以通过其提供的API很快学会如何使用,当然,如果您经验丰富,我还是建议您可以理解jQuery各主要函数的实现原理,其他不说了,直接看看如何用它来实现菜单神奇的效果吧
Step1 - HTML结构
看一下菜单的HTML代码,跟平常的菜单代码没有什么区别:
<div id="menu" class="menu">
<ul>
<li><a href="javascript:;">Home</a></li>
<li><a href="javascript:;">HTML/CSS</a></li>
<li><a href="javascript:;">JavaScript</a></li>
<li><a href="javascript:;">Resources</a></li>
<li><a href="javascript:;">Tutorials</a></li>
<li><a href="javascript:;">About</a></li>
</ul>
</div>
关键在于利用脚本在每个锚点(a元素)中建立几个分隔层,这样就可以在鼠标悬停时分别控制它们产生动画。为此,我们要在DOM加载完成时候修改DOM的结构,使得每个锚点代码变成如下:
<a href="javascript:;">
<span class="out">Home</span>
<span class="bg"></span>
<span class="over">Home</span>
</a>
原先的每个锚点中的内容会被附加到两个span元素(.out和.over)里面,另外一个span元素(.bg)为背景图片层。
至于如何修改DOM结构,JS代码将在Step3中讲解。
Step2 - CSS样式
在示例中,展示了两种样式,有使用背景图的和没有使用背景图的(具体查看演示),您也可以自由定制自己的样式,以设计出更炫酷的菜单,这里提供基本的样式和解释:
/* 以下是菜单基本的样式
*/.menu ul li {
float: left;
/* 菜单子元素的内容超出不可见 */
overflow: hidden;
/* 以下省略部分代码 */
}
.menu ul li a {
/* 必须是相对定位 */
position: relative;
display: block;
width: 110px;
/* 以下省略部分代码 */
}
.menu ul li a span {
/* 所有层将使用绝对定位 */
position: absolute;
left: 0;
width: 110px;
}
.menu ul li a span.out {
top: 0px;
}
.menu ul li a span.over,.menu ul li a span.bg {
/* 起初.over层和.bg层相对a元素-45px以达到隐藏的效果 */
top: -45px;}/
* 以下是使用背景图的示例 */
#menu {
/* 菜单背景 */
background:url(bg_menu.gif) scroll 0 -1px repeat-x;
border:1px solid #CCC;}
#menu ul li a {
color: #000;
}
#menu ul li a span.over {
color: #FFF;
}
#menu ul li span.bg {
/* 指定高度和背景图 */
height: 45px;
background: url(bg_over.gif) center center no-repeat;
}
您也可以在自行定制CSS样式,这里还提供了简化版的样式(查看演示)


猜你喜欢
- 原文件:7.8094,1.0804,5.7632,0.012269,0.008994,-0.003469,-0.79279,-0.06468
- 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 普通爬虫正常流程:数据来源分析发送请求获取数据解析数据保存数据环境介绍python 3.8pycharm 2021专业版【付费VIP完整版】
- 凯撒加密就是通过将字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文。例如
- 识别快递单号这次跟老师做项目,这项目大概是流水线上识别快递上的快递单号。首先我尝试了解条形码的基本知识 百度百科:条形码 条形码(barco
- 效果图:代码如下:<!DOCTYPE html><html lang="en"><head
- 先给大家展示下效果图,如果大家感觉还不错,请继续参考实现思路详解。布局1.左右各一半(col-md-6)2.左侧登录框占左侧一半的10/12
- 本文实例讲述了C#操作SQLite数据库帮助类。分享给大家供大家参考,具体如下:最近有WPF做客户端,需要离线操作存储数据,在项目中考虑使用
- 需要用到的接口:获取人脸信息的接口:https://api-cn.faceplusplus.com/facepp/v3/detect实现换脸
- 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自
- 文章摘要本文简单说明了FLV文件的格式,以此为出发点,使用 Python 实现FLV视频的拼接。一.FLV文件格式关于FLV文件格式的解析网
- 1. 使用 in 和 not inin 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符。使用这两个成员
- Oracle的Nvl函数nvl( ) 函数从两个表达式返回一个非null 值。语法NVL(eExpression1, eExpression
- 前言使用 webstrom 调试 Vue.js 单页面程序,理论上来说应该是支持所有用 webpack 构建的应用程序webstrom 版本
- 前言学习Python中,总想做个图形界面,找来找去,找到了tkinter。练习内容:图形界面中,点击按钮后,利用弹出对话框选择文件(或文件夹
- 主要记录Python-OpenCV中的VideoCapture类的使用;官方文档;VideoCapture()是用于从视频文件、图片序列、摄
- 这里以mysql为例,先明确以下几个问题:一.一般项目如果不自己配置事务的话,一般默认的是autocommit,即执行完一个操作后自动com
- 目录前言全局参数持久化写在最后总结参考文档:前言自从 2018 年发布第一版 MySQL 8.0.11 正式版至今,MySQL 版本已经更新
- 安装部分所需文件在最下方提供STEP1双击mysql-installer-web-community-8.0.18.0.msi进行按钮如果出
- 先来看个实例#!/usr/bin/env python import sys def search2(a,m):