用JS控制下拉菜单效果

今天,突然想复习下之前学习做导航菜单的一些知识。之后觉得下拉菜单非常好玩儿,于是自己试着用JS调出了效果。网上有众多方法,但是感觉不是很对我的胃口,我喜欢HTML/CSS/JavaScript分离着写,用户体验重要,码农审美也很重要啊,O(∩_∩)O~

在做下拉菜单的过程中,有以下心得:

1.this是个好东西,比如在鼠标事件中,它代表此时的鼠标事件对象本身,免去去用其他方式代表改对象的麻烦;

2.getElementsByTagName或者getElementById方法获得的是一个数组,需要在其后添加“[]”,或者用的时候注意取出。要不然后面想直接对其属性进行编辑,是不可行的;

3.一定要仔细,一定要仔细,一定要仔细!(重要的事情说三遍)养成良好的代码书写习惯很重要,要适当规范自己的风格。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鼠标点击事件</title>
<style type="text/css">
*{margin:0;padding:0;list-style:none;text-decoration:none;}
#menu{width:500px;height:40px;margin:0 auto;border:2px solid #FF8600;}
ul>li{float: left;line-height: 40px;width: 100px;text-align: center;}
ul li a{color:#bebcbc;}
ul li ul{display:none;overflow:hidden;background:#FFF;border:1px solid #FF8600;border-top:1px solid #FFF;}
ul li ul li{border-bottom:1px solid #FF8600;height:25px;line-height:25px;}
ul li a:hover{color: #ff8600;display: block;background: #EFEFF7;}
</style>
</head>
<body>
<ul id="menu">
    <li><a href="">邮箱<img src="sel.png"></a>
        <ul>
            <li><a href="">免费邮箱</a></li>
            <li><a href="">VIP邮箱</a></li>
            <li><a href="">企业邮箱</a></li>
        </ul>
    </li>
    <li><a href="">我的菜单
        <img src="sel.png"></a>
        <ul>
            <li><a href="">新闻</a></li>
            <li><a href="">电视视频</a></li>
            <li><a href="">电影</a></li>
            <li><a href="">明星</a></li>
            <li><a href="">国内</a></li>
        </ul>
    </li>
    <li><a href="">博客<img src="sel.png"></a>
        <ul>
            <li><a href="">博客评论</a></li>
            <li><a href="">未读提醒</a></li>
        </ul>
    </li>
    <li><a href="">移动客户端
        <img src="sel.png"></a>
        <ul>
            <li><a href="">新浪微博</a></li>
            <li><a href="">新浪新闻</a></li>
            <li><a href="">新浪体育</a></li>
            <li><a href="">新浪娱乐</a></li>
            <li><a href="">新浪财经</a></li>
            <li><a href="">天气通</a></li>
            <li><a href="">新浪游戏</a></li>
        </ul>
    </li>
    <li><a href="">微博<img src="sel.png"></a>
        <ul>
            <li><a href="">私信</a></li>
            <li><a href="">评论</a></li>
            <li><a href="">@我</a></li>
        </ul>
    </li>
</ul>
<script type="text/javascript">
    // 下拉菜单
    var ul=document.getElementById("menu")
    var lis=ul.getElementsByTagName("li")
    for (var i = 0; i < lis.length; i++) {
            lis[i].onmouseover=function () {
            var oUl=this.getElementsByTagName("ul")[0];
            oUl.style.display="block";
            }
            lis[i].onmouseout=function () {
            var oUl=this.getElementsByTagName("ul")[0];
            oUl.style.display="none";
            }
        }
</script>
</body>
</html>

效果如下:

虽然对于大神来讲很简单,但是真的有成就感,因为自己还不是很懂,并且是自己摸索出来的,哈哈,加油啊!

时间: 2025-01-11 06:03:56

用JS控制下拉菜单效果的相关文章

JS实现下拉菜单效果

1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉菜单</title> 6 <style type="text/css"> 7 body,ul,li{ 8 margin:0; 9 padding:0; 10 font-size:13px; 11 } 1

纯CSS实现的二级下拉菜单效果代码实例

纯CSS实现的二级下拉菜单效果代码实例:二级下拉是最为常用的效果之一,当前的此效果一般哟结合js实现,本章节介绍一个使用纯CSS实现的二级下拉菜单效果,希望能够给需要的朋友带来一定的帮助,不过此代码也有一点浏览器兼容问题,那就是在IE6中不兼容.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" conten

点击弹出弹性下拉菜单效果

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="keywords" content="站长,网页特效,js特效,广告代码,zzjs,zzjs.net,sky,www.zzjs.net,站长特效 网" /><meta name="

三种方式实现下拉菜单效果

使用3种方式实现下拉菜单效果: html/css .js方法实现下拉菜单显示隐藏.jquery方法实现下拉菜单显示隐藏 先看效果图 第一种:html/css方式实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>下拉菜单的实现</title> <style type="text/css"> *{margin

纯css和js版下拉菜单

<!doctype html> <html> <head> <meta charset="utf-8"> <title>css版下拉菜单</title> <style type="text/css"> div,body,ul,li{padding:0;margin:0; list-style:none;} .all{width:550px; height:30px; backgrou

下拉菜单效果

之前为大家介绍过有关HTML中的一些比较炫的效果,本篇为大家介绍一些,大家在网站中经常可以见到的一种下拉菜单效果,这种菜单效果一般分为两层,当我们的鼠标经过一级菜单时,隐藏的二级菜单就会显示出来,这样即保证了页面的美观,同时又不会使页面的模块减少,甚至可以增加模块数目. 一.废话不多说,下面我们来通过HTML+CSS为大家实现一下上面的效果,首先请大家先欣赏一下效果图: 1.界面布局代码: <body> <div id="var"> <ul> <

iOS下拉菜单效果实现

原文链接: iOS下拉菜单效果实现 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

div模拟select下拉菜单效果

有些时候select下拉菜单直接用css调整样式,可能会有兼容性的问题,尤其是右侧的下拉三角,很难用css控制,那怎么办呢?可以采用div模拟select下拉菜单的效果.先直接上代码了: HTML的结构如下: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>div模拟下拉菜单特效</title> <style type="t

js模拟下拉菜单-键盘、鼠标(代码详解)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con