JS产品分类列表练习

CSS:

*{padding: 0;margin: 0;}
    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>
时间: 2024-08-06 03:46:16

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

商城常用产品分类导航条

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

laravel关于产品分类的说说说

1.产品分类的数据表结构设计 不管有多少级分类,分类表中只要有以下几个字段即可, id(分类的id号,不管几级分类都有自己一个唯一的id号), name(分类的名称), parentid(分类的上一级id名称,如果为一级分类,则此处值为0), type(这个字段选填,代表当前分类名所属的等级,有这个字段可更快的判断分类名属于几级分类名称) 2.laravel中全部分类的展示: 1).在前端页面最上面加上如下代码 <?phpuse App\Http\Common\PHPTree;?> 2)在Ap

Mysql 产品分类和版本说明

MySQL Community Server是开源免费的,这也是我们通常用的MySQL的版本. 根据不同的操作系统平台细分为多个产品分类,具体分类如下: 1. MySQL Community Server 社区版本,免费,但是Mysql不提供官方技术支持. MySQLCommunity Server is a freely downloadable version of the world's most popularopen source database that is supported

商城产品分类设计思路

问题的提出:网上商城对产品进行了很多分类,不同的分类产品又有不同的属性,比如,电脑的属性有:CUP,内存,                   主板,硬盘等等,服装的属性有:布料,尺寸,颜色等等,那么产品表以及产品分类表应该如何设计才能满足                   不同类型产品的区别呢? 解决方案:      产品分类表的设计      第一种设计思路:使用树形结构,递归的形式,可以对产品进行N种     分类,只要你喜欢,树形结构在数据库的设计中                  

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

分享JQuery动画插件Velocity.js的六种列表加载特效.在这款实例中给中六种不同的列表加载效果.分别为从上飞入.从右侧飞入.从左侧飞入.和渐显.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <h1> Velocity.js <i>slice + sequence</i></h1> <pre>Only anim X number with FX#1, animate Y number with FX#2 etc

Select显示多级分类列表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>在下拉列表中显示的多级树形菜单</t

生活贴士接口获取资讯分类列表

健康资讯新闻为广大网民提供医疗卫生行业最新资讯,追踪健康焦点事件,生活贴士接口获取资讯分类列表. 接口名称:生活贴士接口 接口平台:api开放平台 接口地址:http://op.juhe.cn/yi18/news/newsclass 支持格式:json/xml 请求方式:get/post 请求示例:http://op.juhe.cn/yi18/news/newsclass?key=您申请到的appkey 生活贴士接口调用JSON返回示例: { "reason": "成功的返回

Windows Phone 7 LongListSelector控件实现分类列表和字母索引

在wp7手机里面的联系人列表和程序里面里面我们可以看到一个根据字母索引来定位联系人或者应用程序的控件,那么这个控件就是LongListSelector控件了. LongListSelector是一种比ListBox更加强大的列表控件,你可以根据你列表的信息来分类排列,根据类别快速定位到你选中的类别的列表下,在数据量很大的情况下这种分类的优势很明显.LongListSelector可以自定义列表头,列表尾.类表头.列别尾等的样式和数据,可以实现各种个性化的列表样式和不同的数据的展现方式.Windo

JS实现Li列表的无缝垂直文字滚动代码

非Table模式的新闻列表滚动,学习CSS的朋友可能都能做出这种效果来.运用了CSS中的Li列表标签,加上javaScript代码控制,完成完美的无缝滚动效果.在兼容性方面,在ie6,7,8,9,firefox等主流浏览器下均测试通过,用的时候您只需改变一下样式和大小,再将Js封装起来,用时候调用,就更简洁了,相信这款实用的文字滚动正是你需要的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http