CSS:

*{padding:;margin:;}
ul,li{list-style: none;}
body{color: #666;background: #f5f5f5;}
a{text-decoration: none;color: #666;}
.cont{
width: 400px;
margin: 30px auto;
position: relative;
background: #fff;
box-shadow: 2px 2px 5px #e6e2e2;
}
.tit_1,.tit_2,.tit_3,.tit_4{/*分类标题样式*/
height: 44px;
line-height: 44px;
position: relative;
padding-left: 40px;
}
.tit_1:before{/*标题部分的小三角形*/
content: '';
position: absolute;
left: 15px;
top: 12px;
border:10px solid transparent;
border-left-color:#ccc;
}
.tit_2:before{/*标题部分的小三角形*/
content: '';
position: absolute;
left: 15px;
top: 12px;
border:10px solid transparent;
border-left-color:#fff;
} .tit_3:before{/*标题部分的小三角形*/
content: '';
position: absolute;
left: 15px;
top: 17px;
border:10px solid transparent;
border-top-color:#ccc;
}
.tit_4:before{/*标题部分的小三角形*/
content: '';
position: absolute;
left: 15px;
top: 17px;
border:10px solid transparent;
border-top-color:#fff;
}
.active{/*列表内容的样式*/
height: 28px;
line-height: 28px;
padding-left: 40px;
cursor: pointer;
}
#ul1{
padding: 20px 0;
} .hidden{/*隐藏列表内容*/
display: none;
}
.on{/*显示列表内容*/
display: block;
}

HTML:

<div class="cont">
<ul id="ul1">
<li>
<h3 class="tit_1">护肤用品</h3>
<ul class="hidden">
<li>面部卸妆</li>
<li>眼部护理</li>
<li>卸妆油</li>
<li>卸妆棉</li>
</ul>
</li>
<li>
<h3 class="tit_1">彩妆香水</h3>
<ul class="hidden">
<li>隔离霜</li>
<li>BB霜</li>
<li>粉底液</li>
<li>腮红</li>
<li>唇彩</li>
</ul>
</li>
<li>
<h3 class="tit_1">个人护理</h3>
<ul class="hidden">
<li>头发护理</li>
<li>洗发水</li>
<li>发膜</li>
<li>焗油</li>
<li>护发素</li>
</ul>
</li>
<li>
<h3 class="tit_1">香水香氛</h3>
<ul class="hidden">
<li>女士香水</li>
<li>淡香水</li>
<li浓香水</li>
<li>男士香水</li>
<li>古龙香水</li>
<li>运动香水</li>
</ul>
</li>
</ul>
</div>

JS:

<script type="text/javascript">
var oUl=document.getElementById('ul1');
var aUl=oUl.getElementsByTagName('ul');
var aH=oUl.getElementsByTagName('h3');
var aLi=null;
var len=aUl.length; for (var i = 0; i <len; i++) {
aLi=aUl[i].getElementsByTagName('li');
for (var j = 0; j < aLi.length; j++) {
aLi[j].className='active';
aLi[j].onmouseover=function(){
//鼠标经过当前li,文字颜色发生变化
this.style.color='#e4007e';/*alert(4);*/
}
aLi[j].onmouseout=function(){
//鼠标离开当前li,文字颜色恢复原样
this.style.color='#666';
}
};
}; for (var i = 0; i < aH.length; i++) {
aH[i].index=i;
//鼠标经过当前h3时,背景色、字体颜色改变
aH[i].onmouseover=function(){
this.style.backgroundColor='#e4007e';
this.style.color='#fff';
//判断当前列表li下的内容是否展开
if (aUl[this.index].className=='hidden') {
this.className='tit_2';//列表内容隐藏时,小三角形的样式tit_2
}
else{
this.className='tit_4';//列表内容展开时,小三角形的样式tit_4
};
}
aH[i].onmouseout=function(){
this.style.backgroundColor='#fff';
this.style.color='#666';
//判断当前列表li下的内容是否展开
if (aUl[this.index].className=='hidden') {
this.className='tit_1';//列表内容展开时,小三角形的样式tit_1
}
else{
this.className='tit_3';//列表内容展开时,小三角形的样式tit_3
};
} aH[i].onclick=function(){
//点击当前h3,如果列表下的内容隐藏,则将其显示出来,否则隐藏起来
if (aUl[this.index].className=='hidden') {
aUl[this.index].className='on';
this.className='tit_4';
}
else{
aUl[this.index].className='hidden';
this.className='tit_2';
};
}
/*alert(1);*/
};
</script>

JS产品分类列表练习的更多相关文章

  1. 《React后台管理系统实战 :四》产品分类管理页:添加产品分类、修改(更新)产品分类

    一.静态页面 目录结构 F:\Test\react-demo\admin-client\src\pages\admin\category add-cate-form.jsx index.jsx ind ...

  2. 企业架构研究总结(29)——TOGAF架构内容框架之概述及架构工作产品分类

    在TOGAF 9之前的版本中,TOGAF的重点主要集中在企业架构开发方法方面,用于指导其使用者如何在各自的组织中对企业架构进行创建和维护,而对于企业架构的具体内容并没有相关的论述,因而针对早期TOGA ...

  3. TOGAF架构内容框架之概述及架构工作产品分类

    TOGAF架构内容框架之概述及架构工作产品分类 在TOGAF 9之前的版本中,TOGAF的重点主要集中在企业架构开发方法方面,用于指导其使用者如何在各自的组织中对企业架构进行创建和维护,而对于企业架构 ...

  4. 微信小程序 仿‘得到app’分类列表页

    今天另起一篇,贴出完整的代码,大概思路是左侧大分类列表,点击后联动右侧二级分类,及下面文章列表,点击二级分类也联动下面文章列表. 代码如下: <view class="page&quo ...

  5. axios模块封装和分类列表实现

    这个作用 主要还是为了让代码更加的,清晰. 不要全部都放到  created(){}  这个方法下面.把这些代码全部抽离出去. 这里就只是去调用方法.1. src 目录下,新建文件夹---  rest ...

  6. 原生js移动端列表无缝间歇向上滚动

    在项目开发中尤其是在项目的活动页面的开发中,经常需要将用户的购买信息或中奖信息等以列表的形式展示在页面当中,并可以使其自动间歇向上滚动来达到在有限的区域内展示所有信息的目的.通常的做法是通过将列表父元 ...

  7. PHP多条件分类列表筛选功能开发实例

    PHP多条件分类列表筛选功能开发实例,前后台一起实现 后台对接可以拼接sql语句,PHP通过表单值隐藏值筛选,常用又实用! 表单筛选核心函数 function Filter(a, b) { var $ ...

  8. WordPress分类列表函数:wp_list_categories用法及参数详解举例

    http://www.511yj.com/wordpress-wp-categories.html 注意: 1. wp_list_categories() 和 list_cats() 以及 wp_li ...

  9. 分享JQuery动画插件Velocity.js的六种列表加载特效

    分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现 ...

随机推荐

  1. [elk]kibana搜索绘图

    kibana绘图 好些日志入库了需要分析. 1,首先分析top10 url的table和柱状分布 2,其次想着分析下404所占比例,以及404所对应的url table. 3,最后分析一下请求总数. ...

  2. [容器]docker创建镜像

    手动创建: docker run -d -p mynginx:v2 nginx rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest- ...

  3. perl基础01

    参考:Perl教程 1.Perl简介 Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的. Perl具有高级语言的强大能 ...

  4. GEEK学习笔记— —程序猿面试宝典笔记(二)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  5. async and await 简单的入门

    如果有几个Uri,需要获取这些Uri的所有内容的长度之和,你会如何做? 很简单,使用WebClient一个一个的获取uri的内容长度,进行累加. 也就是说如果有5个Uri,请求的时间分别是:1s 2s ...

  6. IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法

    IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法 申明:      下面安装PP源的方法已经失效,请不用按照下面的方法操作.      更新最新的方法,在cydia中搜索源 apple fil ...

  7. 用e2fsck修复受损的linux文件系统

    今天想尝试直接从linux deepin拷贝一些文件到windows 10而不重启电脑,所以就安装Ext2Mgr了并加载了linux的几个磁盘: / /home 再次重启系统想进入linux的时发现系 ...

  8. UIWebview打开.txt文件中文乱码解决

    用UIWebview打开txt文件有时候会出现乱码的情况,这种情况应该是txt的编码问题,解决方案如下: txt分带编码和不带编码两种,带编码的如UTF-8格式txt,不带编码的如ANSI格式txt. ...

  9. UIImagePickerController在UIPopoverController中 旋屏问题

    1弧度=180/π度1度=π/180弧度今天遇到了 一个问题.UIImagePickerController在UIPopoverController中 旋屏问题. 在查找了许多资料后方知,此乃iOS系 ...

  10. AndroidManifest.xml文件详解(activity)(二)

    android:configChanges 这个属性列出了那些需要Activity进行自我处理的配置变化.当在运行时配置变化发生的时候,默认情况下,这个Activity会被关掉并重启,但是用这个属性声 ...