下面要做实现的效果

收缩和展的功能

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

下面是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. read/write函数与(非)阻塞I/O的概念

    一.read/write 函数 read函数从打开的设备或文件中读取数据. #include <unistd.h> ssize_t read(int fd, void *buf, size ...

  2. iOS网络框架 AFNetworking

    -(void)GetActivationUser{ NSString *url = @"http://app.xxxx.com/music/search?key=%E9%AC%BC%E5%9 ...

  3. php的类型运算符instanceof(用于确定一个 PHP 变量是否属于某一类 class 的实例)

    用于确定一个 PHP 变量是否属于某一类 class 的实例 class Test{ public function Test($c) { echo "1111"; if($c i ...

  4. Spring自带配置方式链接数据库(没有src新建文件,没有c3p0)

    1.配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...

  5. Java:多线程,java.util.concurrent.atomic包之AtomicInteger/AtomicLong用法

    1. 背景 java.util.concurrent.atomic这个包是非常实用,解决了我们以前自己写一个同步方法来实现类似于自增长字段的问题. 在Java语言中,增量操作符(++)不是原子的,也就 ...

  6. e到底是什么?

    e到底是什么? 今天看到一个下面这么一个简单的求极限问题- 一时恍惚了,为什么结果是e^m. 这个e是什么呢? 然后就百度了下,发现不少文章介绍这个e. 有几篇写得很赞 - An Intuitive ...

  7. 查杀病毒实战----------------》ddg.223 and AnXQV

    htop 发现导常: 接着发现可疑进程: 首先检测crontab,发现问题: # crontab -l */ * * * * curl -fsSL http://www.bdyutiudwj.com/ ...

  8. Azure Nosql

    patterns & practices https://msdn.microsoft.com/en-us/library/ff921345.aspx Solution Development ...

  9. angular -- $route API翻译

    $route -$routeProvider服务 -依赖ngRoute模块 $route能够在路径发生改变的时候,渲染不同的视图,调用不同的控制器.它监测了$location.url(),然后根据路径 ...

  10. 浅谈C# application.DoEvent作用

    Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息. private void button1_Click(object sender, EventAr ...