每天一个效果 :(4)tab选项卡功能

昨天我操作失误,没把昨天的发出去,哭~今天补一个

我先把写好的html文件给你们看一下

 <ul>
        <li>大橘</li>
        <li>英短</li>
        <li>美短</li>
        <li>布偶</li>
    </ul>
    <div>
        <img src="https://img0.baidu.com/it/u=2309643650,2890855463&fm=26&fmt=auto" alt="" style="display: block;">
        <img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fn.sinaimg.cn%2Fsinakd20200721ac%2F285%2Fw614h471%2F20200721%2F46f5-iwtqvyi9444293.jpg&refer=http%3A%2F%2Fn.sinaimg.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651243261&t=9632e6b36e740bc4994fac0e46652bde" alt="">
        <img src="https://img2.baidu.com/it/u=3604067922,525804311&fm=26&fmt=auto" alt="">        
        <img src="https://img2.baidu.com/it/u=3562558155,1107192441&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=711" alt="">        
    </div>

当然还不能少了css文件

   <style>
        ul,li{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul {
            overflow: hidden;
        }
        li {
            width: 100px;
            height: 40px;
            background-color: #eee;
            border:1px solid #ccc;
            float: left;
            line-height: 40px;
            text-align: center;
        }
        .div {
            width: 406px;
            height: 406px;
            border: 1px solid #ccc;
        }
        img {
            width: 406px;
            height: 406px;
            display: none;
        }
    </style>

写完了,效果就是这样的

 特别可爱~

下面开始整理js文件

这是我们今天要实现的逻辑

我们先选取li和img,然后用for,去遍历每一个li,接着用一个事件onmouseover(会在鼠标指针移动到指定的对象上时触发事件发生),鼠标放上去变色,移出去当然也得返回颜色,就又用到了一个事件onmouseout(会在鼠标指针移出指定的对象上时触发事件发生)


            var li = document.getElementsByTagName('li');
            var img = document.getElementsByTagName('img');
            //onmouseover  是鼠标移动到目标上触发的事件
            for(let i = 0;i<li.length;i++){
                li[i].onmouseover = function(){
                    li[i].style.backgroundColor = 'pink';
                }
            //onmouseout   是在鼠标指针移出指定的对象上时触发事件发生
                li[i].onmouseout = function(){
                    li[i].style.backgroundColor = '#eee';
                }
            }

让我们来看一下效果

 接着我们运用到一个思想,就是img的下标与上面li的下标,其实是对应的,之后我们直接用li的下标去选择图片,就可以了,最后在用排他思想,直接让对应的图片出现

 <script>
        // 逻辑1.移动到哪个选项卡上,自己的背景颜色要改变
            // 2.对应的内用区域要显示
            // 同理:移出时,背景颜色回复,对应内容区域隐藏

            var li = document.getElementsByTagName('li');
            var img = document.getElementsByTagName('img');
            //onmouseover  是鼠标移动到目标上触发的事件
            for(let i = 0;i<li.length;i++){
                //先进行元素数组  下标的设置
                li[i].index = i;


                li[i].onmouseover = function(){
                    li[i].style.backgroundColor = 'pink';
                    //this.index其实就是对应着图片的下标

                    //先把所有的图片都隐藏,再让对应的图片出现(排他思想)
                    for(let j = 0;j<img.length;j++) {
                        img[j].style.display = 'none';
                    }
                    img[this.index].style.display = 'block';
                }
            //onmouseout   是在鼠标指针移出指定的对象上时触发事件发生
                li[i].onmouseout = function(){
                    li[i].style.backgroundColor = '#eee';
                }
            }
    </script>

看看最后的效果吧

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值