导读:在web页面的显示中,总是免不了下拉菜单的设置。怎样将菜单设置的更好玩一点呢?这次,就将实现一个下拉菜单的制作。当鼠标移入的时候,菜单显示,鼠标移走,菜单关闭。

一、实现分析

首先,制作一个下拉菜单,需要通过CSS先构建出一个菜单的基本样式,包括它的边框、显示文字、图片、图标等。这些都是通过CSS设置好。

其次,写入一个鼠标移入移出的方法,当鼠标移入的时候,菜单显示(方法);当鼠标移走的时候,菜单隐藏(方法)。

然后,需要写入一个对于Id、class等的获取方法,方便我们快速的从div中获取到我们需要的东西,从而利用鼠标的移入移出进行菜单的设置。

最后,还可以加上一个CSS的添加方法,比如说在这里,可以通过CSS的添加方法,将个人中心的背景小图标设置一下。当下拉菜单显示时,三角向下;反之则向上。

备注:准备自己喜欢的图标,比如在这里,我选择的未选中时的小锁,和选中时的小圆圈。

附:效果图

二、具体实现

2.1,HTML编写(主要)

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;"> <div id="header">
  2. <div class="logo"><img src="Imageblog.gif" alt="" /></div>
  3. <div class="member" >个人中心
  4. <ul >
  5. <li><a href="###">设置</a></li>
  6. <li><a href="###">换肤</a></li>
  7. <li><a href="###">帮助</a></li>
  8. <li><a href="###">退出</a></li>
  9. </ul>
  10. </div>
  11.  
  12. </div></span></span>

注:这里用到的主要是个人中心的div下面的东西,上一个则是整体的一个logo显示,这里不予以说明。

2.2,CSS样式(主要)

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">/* 设置下拉菜单的位置 */
  2. ul{
  3. padding:0;
  4. margin:0;
  5. }
  6.  
  7. /* 去掉前面的小圆点 */
  8. ul li{
  9. list-style-type:none;
  10. }
  11.  
  12. /* 设置个人中心的样式 */
  13. #header .member{
  14. width:110px;
  15. height:38px;
  16. float:right;
  17. background: url(Imagedown.png)no-repeat 80px center;/* 右边的小图标 */
  18. line-height:38px ;
  19. cursor:pointer;/* 当鼠标移入时,小手图标 */
  20. color:red;
  21. position:relative;/* 设置相对位置*/
  22. }
  23.  
  24. /* 设置下拉菜单的边框样式 */
  25. #header ul{
  26. position:absolute;
  27. right:0px;
  28. background:#FBF7E1;
  29. width:110px;
  30. height:120px;
  31. border:2px solid gray;
  32. border-top:none;
  33. padding:3px 0 0 0;
  34. float:right;
  35. display:none;/* 不显示下拉菜单 */
  36. }
  37.  
  38. /* 设置菜单文字样式 */
  39. #header ul li{
  40. height:30px;
  41. line-height:30px;
  42. text-indent:25px;
  43. letter-spacing:1px;
  44. }
  45.  
  46. /* 设置超链接显示样式 */
  47. #header ul li a{
  48. text-decoration:none;
  49. color:#333;
  50. display:block;
  51. background:url(Image2.png) no-repeat left center;
  52. }
  53.  
  54. /* 设置超链接移入样式 */
  55. #header ul li a:hover{
  56. background:#fc0 url(Image3.png) no-repeat left center;
  57. } </span></span>

2.3,鼠标移入移出

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">//设置鼠标移入移出事件
  2. Base.prototype.hover=function(over,out){
  3. for(var i=0;i<this.elements.length;i++){
  4. this.elements[i].onmouseover=over;
  5. this.elements[i].onmouseout=out;
  6. }
  7. return this;
  8. }
  9.  
  10. //设置显示
  11. Base.prototype.show=function(){
  12. for(var i=0;i<this.elements.length;i++){
  13. this.elements[i].style.display="block";
  14. }
  15. return this;
  16. }
  17.  
  18. //设置隐藏
  19. Base.prototype.hide=function(){
  20. for(var i=0;i<this.elements.length;i++){
  21. this.elements[i].style.display="none";
  22. }
  23. return this;
  24. }</span></span>

2.4,添加CSS方法

获取节点的操作,在前面已经通过连缀的时候说过了,这里就不说了。这里添加一个CSS方法,这样我们就可以直接在用的时候添加一些简单的CSS设置,而不用去到CSS文件中修改了。(对于一些简单的操作)

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">Base.prototype.css=function(attr,value){
  2. for(var i=0;i<this.elements.length;i++){
  3. if(arguments.length==0){
  4. if(typeof window.getComputedStyle !="undefined"){
  5. return window.getComputedStyle(this.elements[i],null)[attr];
  6. }else if(typeof this.elements[i].currentStyle !="undefined"){
  7. return this.element[i].currentStyle[attr];
  8. }
  9. }
  10. this.elements[i].style[attr]=value;
  11. };
  12. return this;
  13. }</span></span>

2.5,整合调用

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">window.onload=function(){
  2. //个人中心——下拉菜单
  3. $().getClass("member").hover(function(){//hover鼠标移入移出事件
  4. //窗体加载,个人中心的图标向下
  5. $(this).css("background","url(Imagedown.png)no-repeat 80px center");
  6. //获取下拉菜单,显示
  7. $().getTagName("ul").show();
  8. },function(){
  9. //鼠标移走,图标向上
  10. $(this).css("background","url(Imageup.png)no-repeat 80px center");
  11. //隐藏下拉菜单
  12. $().getTagName("ul").hide();
  13. });
  14. };
  15. </span></span>

这样,一个下拉菜单就做完了。将超链接里的东西,改成自己做好的网址链接,就可以实现菜单导航了。嘿嘿!

三、总结感受

其实这个很简单的,但是简单也要去做才好,JS的这些东西,感觉都是一步一步深化的,丢了一步都做不好。这个视频讲了好多怎样将前台页面变得漂亮的东西,我很喜欢。我以后想要做出很好看,很有动感的Web界面,不想看到一些很死板的东西。

加油!!!

【JavaScript 11—应用总结】:下拉菜单的更多相关文章

  1. JavaScript 多级联动浮动(下拉)菜单 (第二版)

    JavaScript 多级联动浮动(下拉)菜单 (第二版)   上一个版本(第一版请看这里)基本实现了多级联动和浮动菜单的功能,但效果不是太好,使用麻烦还有些bug,实用性不高.这次除了修改已发现的问 ...

  2. 第一百三十二节,JavaScript,封装库--下拉菜单

    JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...

  3. JavaScript+CSS+DIV实现下拉菜单示例

    <!DOCTYPE html> <html> <head> <title>下拉菜单示例</title> <script languag ...

  4. 11.css定义下拉菜单

    注意点: 1.设置a标签的width 和 height 的时候,直接设置是没用的,可以以这样两种方式设置 (1). display:block; (2). float:left; 2.设置下拉菜单,最 ...

  5. (JavaScript插件——下拉菜单)

    前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.html 本文主要来学习一下JavaScrip ...

  6. 二、JavaScript语言--事件处理--DOM事件探秘--下拉菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 11个优秀的HTML5 & CSS3下拉菜单制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用HTML5和CSS3可以更容易创造视觉 ...

  8. 一款多浏览器兼容的javascript多级下拉菜单

    这个多级下拉菜单的脚本大小不到2K,带有动画效果,可以方便地支持多个实例,并且能良好兼容WordPress系统wp_list_cats和wp_list_pages生成的多级列表.要初始化一个菜单,只需 ...

  9. Javascript版选择下拉菜单互移且排序

    效果图如下: 代码如下: <html> <head> <title>Javascript版选择下拉菜单互移且排序</title> <meta ht ...

随机推荐

  1. LeetCode 100 及 101题

    100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [ ...

  2. Oracle查询排序asc/desc 多列 order by

    查询结果的排序 显示EMP表中不同的部门编号. 如果要在查询的同时排序显示结果,可以使用如下的语句: SELECT 字段列表 FROM 表名 WHERE 条件 ORDER BY 字段名1 [ASC|D ...

  3. docker 配置国内镜像源 linux/mac/windows

    部分内容来自:http://guide.daocloud.io/dcs/daocloud-9153151.html 加速器官方DaoCloud承诺:加速器服务永久免费且无流量限制 使用前提:注册Dao ...

  4. 1、Centos7 python2.7和yum完全卸载及重装

    完全重装python和yum 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1.删除现有Python ...

  5. Java MVC 增删改查 实例

    需求:实现增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptAdd.jsp 在注册新部门页面只需输入“部门名称”和“城市” ...

  6. Mysql如何为表字段添加索引???

    1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) : ALTE ...

  7. PMP项目管理学习笔记引言(1)——为啥要取得认证?

    (一)为啥要取得认证? 如果你参与过很多项目,就会发现,你总是在周而复始地面对同样的一些问题.一些常见的问题目前已经有了通用解决方案.经过多年的实战,项目经理已们已经掌握了很多应验教训,而通过PMP( ...

  8. 一样的Java,不一样的HDInsight大数据开发体验

    大数据的热潮一直居高不下,每个人都在谈.你也许不知道,早些年这个领域可是有个非常「惹眼球」的段子: 1首先开始科普 什么是 HDInsight Azure HDInsight 是 Hortonwork ...

  9. Grace Huang 2017/1/11

    原文 This actress becomes each character she plays Grace Huang has no interested in doing same thing y ...

  10. dubbo 快速入门

    1. 步骤 实现消费者调用生产者服务接口. 2.安装zookeeper  3.创建maven 工程 4.安装dobboadmin 平台实现监控 5.dubbo 目录结构 ------dubbo-mem ...