下面要做实现的效果

收缩和展的功能

遵循网页布局,行为,结构,样式 分离

下面是html 结构代码:

 <div id="drop" class="down_list">
<h2 class="up">播放列表</h2>
<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>
</div>

 css 代码:

 *{ padding:0; margin:0;}
li{ list-style:none}
body{ background:#f6f9fc; }
.down_list{ width:200px; overflow:hidden; border:1px solid #aab4bc; background:url(images/down_list_h2_bg.gif) repeat-x; margin:50px auto 0;}
.down_list h2 { height: 25px; line-height: 25px; border: 1px solid #dee3e6; border-top: 1px solid #f3f5f7; padding-left: 10px; font-size: 14px; font-weight: normal; color: #57646e; cursor: pointer; }
.down { background: url(images/down.gif) no-repeat 180px center; } //背景图片不平铺
.up { background: url(images/up.gif) no-repeat 180px center; }
.down_list ul { width: 200px; overflow: hidden; background: #e9edf2; font-size: 12px; }
.down_list li { width: 200px; float: left;}
.down_list a { display: block; line-height: 25px; padding-left: 10px; color: #6b7980; text-decoration: none; } //a 标签样式
.down_list a:hover { background: #fff; text-decoration: underline; }

 js代码:

 window.onload = function () {
var oDiv = document.getElementById('drop'); //获取drop对象
var oH2 = oDiv.getElementsByTagName('h2')[0]; //得到h2元素 []表示索引
var oUl = oDiv.getElementsByTagName('ul')[0];
oH2.onclick = showHideUl; //赋值事件 }
function showHideUl()
{
var oDiv = document.getElementById('drop');
var oH2 = oDiv.getElementsByTagName('h2')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
if (oUl.style.display == 'none') { //判断样式
oUl.style.display = 'block';
oH2.className = 'up'; //给不同的css类
}
else {
oUl.style.display = 'none';
oH2.className = 'down';
}
}

总结:  播放列表收缩展开功能核心部分,就是实现 样式的隐藏和切换

              在javascript中 以对象.style.display 呈现隐藏或显示

以对象.className来实现类对象的切换

下载DEMO

 

JS 播放列表收缩展开的更多相关文章

  1. CSS笔记 - fgm练习 2-9 - 播放列表收缩展开

    练习地址: http://www.fgm.cc/learn/lesson2/09.html <style> *{ margin: 0;padding: 0;font-size: 12px; ...

  2. JS收缩展开效果

    // 收缩展开效果 $(document).ready(function () { $(".box h2").toggle(function () { $(this).next(& ...

  3. jQuery 收缩展开效果

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...

  4. js实现收缩菜单效果

    废话不多说,直接上代码: 有注释 <head> <title></title> <style type="text/css"> di ...

  5. jq与原生js实现收起展开效果

    jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  6. C#使用splitContainer控件制作收缩展开面板

    C#使用splitContainer控件制作收缩展开面板 原创 2011年07月19日 17:18:02 标签: c# / object / 扩展 / 测试 15690         最近对Squi ...

  7. 利用js实现图片展开与收缩

    1.元素居中放大: 1>除了要改变元素的宽高以外,还要改变元素的定位(left,top),如果图片放大一倍,那么位移放大宽高的一半. 2>元素必须是定位的.所以,在css中设置为浮动布局, ...

  8. JS实战 ·  收缩菜单表单布局

     获取节点的两种方式:     1.通过event对象的srcElement属性:     2.通过事件源对象用this传入.     代码如下: <html> <head> ...

  9. js 点击展开、收起

    //点击展开.收起 window.onload=function(){ var current=document.getElementsByTagName('li')[0]; document.bod ...

随机推荐

  1. Oschina 安卓client源代码学习之中的一个

    今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在非常多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序. 之前一直非常好奇这是怎么实现的 ...

  2. mysql-5.7 Using Asynchronous I/O on Linux详解

    一.mysql - innodb 使用异步IO的场景 总的来说innodb 只会对数据文件采用异步IO,为了保存日志是真正被写入到磁盘,innodb不会对日志文件启用异步IO 更新细一步的说,inno ...

  3. Wavenet运行

    作者:桂. 时间:2017-05-10  19:17:32 链接:http://www.cnblogs.com/xingshansi/p/6832219.html 一.环境 python3.5 Win ...

  4. Vagrant安装指南

    ubuntu的易用性很高,安装很简单,颜值也高,但是我工作中经常使用centos,我希望我的笔记本也是centos,但是,centos颜值太低,配置文件很复杂,不想弄这个太麻烦,于是,我想到了Vagr ...

  5. linux下查看doc在线帮助文件

    常看到某个linux下的工具,有带有doc结尾的文件,但是新手不知道如何查看. 我一番查找,终于知道了... 比如:ipython这个软件,在ubuntu里面,有ipython-doc的一个包. 安装 ...

  6. sqlite数据库部署到服务器上的问题

    试了一天...本地测试是好的(WIN10 64位+VS2015),部署到服务器上(WIN2008 32位+IIS6) 总是不行..按网上说了什么不要BUNDLE的,加入X86X64目录再放那个SQLi ...

  7. FPGA基础设计(四):IIC协议

    很多数字传感器.数字控制的芯片(DDS.串行ADC.串行DAC)都是通过IIC总线来和控制器通信的.不过IIC协议仍然是一种慢速的通信方式,标准IIC速率为100kbit/s,快速模式速率为400kb ...

  8. modelsim与debussy联调环境的搭建

    为了方便查看波形,找来了一款软件——debussy,它的一个优点是任你查看设计内信号,只需一个波形文件,如FSDB文件.而不用像modelsim那样想看某些信号,添加了之后还要重新编译仿真,浪费了很多 ...

  9. 【Android】3.1 创建本章示例项目

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 注意:本节是在完成了 3.0节介绍的预备知识的基础上继续实现的. 示例1--显示地图并为后续内容做准备 1.运 ...

  10. Mingw opencv Windows下命令行运行

    1.下载opencv 2.3 http://sourceforge.net/projects/opencvlibrary/files/ 下个opencv-win版本吧 至于版本号就随意吧,我选的是2. ...