Javascript学习笔记2.2 Javascript与DOM选项卡(滑动门)案例详解
学习了DOM的知识,今天开始做些练习,想到了一个网页滑动门的特效,见下图:
1、通过建立索引实现
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js简单滑动门</title>
<style type="text/css">
*{ padding:0; margin:0; font-size:14px;}
li{ list-style:none}
#tab1{ width:600px; height:400px; margin:20px auto; overflow:hidden; position:relative}
#tab1_memu{ width:600px; height:40px; position:absolute; left:0; top:0; z-index:2; border-left:1px solid #333}
#tab1_memu li{ width:100px;height:39px; line-height:40px; background:#eee;float:left;text-align:center; border-right:1px solid #333;border-top:1px solid #333;}
#tab1_memu li.current{font-weight:bold; color:#F00; background:#fff;border-right:1px solid #333;border-top:2px solid #f00;border-bottom:1px solid #fff; }
#tab1_main{ width:598px; height:320px; position:absolute; left:0; top:40px; border:1px solid #333;z-index:1}
#tab1_main li{ display:none}
#tab1_main li.current{ display:block}
#tab1_main p{ margin:20px}
</style>
<script >
/*原理:
1、页面载入后,设置选项卡第一项为默认显示,改变其css样式
2、添加事件处理函数
当鼠标浮动到某菜单时,(1)清除所有菜单节点的className属性,为当前菜单项添加className属性(2)隐藏所有选项卡内容节点,显示菜单项对应的内容节点
*/
window.onload = function(){
var tabs=document.getElementById("tab1_memu").getElementsByTagName("LI");
var tab_contents=document.getElementById("tab1_main").getElementsByTagName("LI");
tabs[0].className="current"; //初始化
tab_contents[0].className="current";//初始化 for(var i=0;i<tabs.length;i++){
tabs[i].index=i;//给tabs[i]对象增加一个属性并赋值,即为每个菜单建立索引
tabs[i].onmouseover=function(){
for(var j=0;j<tabs.length;j++){
tabs[j].className="";
tab_contents[j].className="";
}
this.className="current";
tab_contents[this.index].className="current";
}//为每个菜单项绑定鼠标浮动事件
} }
</script>
</head>
<body>
<div id="tab1" >
<ul id="tab1_memu">
<li>菜单1</li>
<li>菜单2</li>
<li>菜单3</li>
<li>菜单4</li>
</ul>
<ul id="tab1_main">
<li><p>内容1</p></li>
<li><p>内容2</p></li>
<li><p>内容3</p></li>
<li><p>内容4</p></li>
</ul> </div>
</body>
</html>
这种方式在扩展一下,做一个可以重用的滑动门效果,javascript部分改写为:
function hdm(m_id,c_id){
var tabs=document.getElementById(m_id).getElementsByTagName("LI");
var tab_contents=document.getElementById(c_id).getElementsByTagName("LI");
tabs[0].className="current"; //初始化
tab_contents[0].className="current";//初始化 for(var i=0;i<tabs.length;i++){
tabs[i].index=i;//给tabs[i]对象增加一个属性并赋值,即为每个菜单建立索引
tabs[i].onmouseover=function(){
for(var j=0;j<tabs.length;j++){
tabs[j].className="";
tab_contents[j].className="";
}
this.className="current";
tab_contents[this.index].className="current";
}//为每个菜单项绑定鼠标浮动事件
}
}
window.onload = function(){
hdm("tab1_memu","tab1_main");
}
Javascript学习笔记2.2 Javascript与DOM选项卡(滑动门)案例详解的更多相关文章
- Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解
如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...
- Javascript学习笔记2.1 Javascript与DOM简介
DOM(文档对象模型)简介 DOM(文档对象模型)针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成由多层节点构成的树形结构,它是中立于平台和语言的接口,允许程序和脚本 ...
- 1.1(JavaScript学习笔记)、JavaScript基础
一.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. 它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端 ...
- [原创]java WEB学习笔记38:EL 中的 11个 隐含对象 详解
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- linux初级学习笔记八:linux权限管理及权限管理命令详解!(视频序号:04_2)
本节学习的命令:chown,chgrp,chmod,openssl,umask 本节学习的技能: 文件权限详解及对其的操作 生成随机密码命令 用遮罩码对用户权限进行修改 站在用户登陆的角度来说SHEL ...
- javascript学习笔记(四):DOM操作HTML
当网页被加载时,浏览器会创建页面的文档对象模型Document Object Model,简称DOM Dom操作html 1:改变页面中所有HTML元素 2:改变页面中所有HTML属性 3:改变页面中 ...
- javascript学习笔记(九):DOM操作HTML的各种方法使用
<!DOCTYPE html> <html> <head lang="en"> <meta chaset="UTF-8" ...
- JavaScript学习笔记系列1:JavaScript的是什么?
一.JS是什么? JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年.它最初的设计目标是改善网页的用户体验. 作者:Brendan Eich 期初JavaS ...
- JavaScript学习笔记——1.了解JavaScript
百度百科: JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HT ...
随机推荐
- 【转】The import javax.servlet cannot be resolved
转载地址:http://www.2cto.com/kf/201212/176868.html 今天将别人的项目导入eclipse之后,出现了“The import javax.servlet cann ...
- vs快捷键大全
前言 作为一个.net开发员,你还在用鼠标去点击相应的操作么?如果你回答是,那么你太low了! 一个很厉害的程序员不会是那种这鼠标到处狂点的人,他们肯定会很多快捷键,所以为了离他们更近一步,我们必须学 ...
- C# Socket编程笔记
1.按惯例先来介绍下socket Windows中的很多东西都是从Unix领域借鉴过来的,Socket也是一样.在Unix中,socket代表了一种文件描述符(在Unix中一切都是以文件为单 ...
- Python基础之条件和循环
阅读目录 一.if语句 1.1功能 1.2语法 1.2.1:单分支,单重条件判断 1.2.2:单分支,多重条件判断 1.2.3:if + else 1.2.4:多分支if + elif +else 1 ...
- VC++ 回调函数及使用方法(转)
转载:http://blog.csdn.net/vsooda/article/details/7435801 转载:http://blog.csdn.net/lincyang/article/deta ...
- 写在OpenFire
首先,确保你已经关掉了openfire打开终端 (在应用程序-->实用工具-->)输入以下命令sudo rm -rf /Library/PreferencePanes/Openfire.p ...
- R12供应商地点层付款方法SQL
--R12供应商地点层付款方法SQL:SELECT ipmv.payment_method_name , ipmv.payment_method_code , 'N' primary_ ...
- underscore api
http://files.cnblogs.com/files/hwd13/underscore.rar
- Selenium碰到的异常记录
.markdown-preview:not([data-use-github-style]) { padding: 2em; font-size: 1.2em; color: rgb(171, 178 ...
- An error occurred while collecting items to be installed
安装的插件:Activiti 在Eclipse安装插件时,报以下错误: An error occurred while collecting items to be installed session ...