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. [svc][db]centos7 Mariadb安装

    yum install mariadb-server mariadb -y 修改配置: [mysqld] default-storage-engine = innodb innodb_file_per ...

  2. Java Web框架play framework的下载与环境变量配置

    Web项目的开发有着众多的框架,近期刚刚接触了play. 对于一个Java开发者来说,play是一个不可多得的好框架.以下我简介下怎样下载play .以及play的环境变量配置方法. (1)登录pla ...

  3. Java的ThreadContext类加载器的实现

    疑惑 以前在看源码的时候,总是会遇到框架里的代码使用Thread.currentThread.getContextClassLoader()获取当前线程的Context类加载器,通过这个Context ...

  4. jsp中 自定义 tag的几种方式

    在jsp文件中,可以引用tag和tld文件. 1.对于tag文件,使用tagdir引用(这个直接是引用的后缀tag文件的jsp文件) <%@ taglib prefix="ui&quo ...

  5. 如何有效地提升JavaScript 水平?

    lyuehh 努力学习中.. 9 人赞同 简单的介绍一下, 不一定准确, 大家一起进步... (单词大小写什么的别计较....) 学习js主要是一下几个方面, js语言本身的知识, 和浏览器相关的知识 ...

  6. (译)Getting Started——1.2.2 Desinging a User Interface(设计用户界面)

    ​      用户需要以最简单的方式与应用界面进行交互.应该从用户的角度出发设计页面,使得界面更高效.简捷和直接. storyboard以图形化的方式帮助你设计和实现界面.在设计和实现界面的过程中,你 ...

  7. Mysql root密码忘记的解决办法

    Windows 版本: 1.打开安装目录下的my.ini 找到 [mysqld] 在下面加入 skip-grant-tables 2. 重启mysql服务 3.打开命令行 依次输入 USE mysql ...

  8. js版in_array函数

    //检测数组中是否存在某个字符串 function in_array(search,array){ for(var i in array){ if(array[i]==search){ return ...

  9. C#反射实例(一) 利用反射使用类库

    在网上查找了不少的资料,可以说大同小异,概念性的东西网上一搜一堆,今天把反射的东西整理了一下,供大家使用,我保证我这里是最全面的东西,当然也是基础的东西,在学好了这一切的基础上,大家可以学习反射的具体 ...

  10. 【vijos】1764 Dual Matrices(dp)

    https://vijos.org/p/1764 自从心态好了很多后,做题的确很轻松. 这种题直接考虑我当前拿了一个,剩余空间最大能拿多少即可. 显然我们枚举每一个点拿出一个矩形(这个点作为右下角), ...