老师这里有点没理解,current类名的添加。

来源:2-7 实现垂直菜单

Vigorous阿炎

2020-11-17 14:02:05

上一节给小圆点设置点击事件设置了current,因为那是因为在css中给current设置了不同的border-radius属性。   

这一节我能简单的浅浅理解意思,就是鼠标浮动到li元素上然后给li元素添加上menus-box盒子中div的类名。

图中给menu21添加current这个类名有什么用呢?li元素中又没有current这个类名而且这里current也没样式呀。自己js中最后效果没能实现。alret(123)检测没问题。说明事件委托没问题。

http://img.mukewang.com/climg/5fb366360944bffe11820764.jpg

http://img.mukewang.com/climg/5fb3663609a5d8ae07260509.jpg


(function(){

    var bannerNavUl=document.getElementById('banner-nav-ul')

    //事件委托

    bannerNavUl.onmouseover=function(e){

        if(e.target.tagName.toLowerCase()=='li'){

            var t=e.target.getAttribute('data-t');

            console.log(t);

            //寻找匹配的menu

            var themenu=document.querySelector

            ('.menus-box .menu21[data-t='+t+']');

            themenu.className='menu21 current';

        }

    }

})()


写回答

2回答

好帮手慕言

2020-11-17

同学你好,如果加上current这个类名,元素就可以显示出来了,在css中是有定义过的,如下:

http://img.mukewang.com/climg/5fb39b6e0962f5b408380130.jpg

在源码中,没有类名为menu21的元素,这个类名是同学自己定义的吧?源码中,.menu类名设置的是让元素隐藏

http://img.mukewang.com/climg/5fb39c37090aadc704740136.jpg

添加上current,就让元素显示。

如果同学的代码不能实现效果,建议:把完整的代码都粘贴上来(html,css,js都需要粘贴),老师帮助排查。

祝学习愉快~

0
higorous阿炎
h 嗯嗯,您说的是对的。
h020-11-17
共1条回复

Vigorous阿炎

提问者

2020-11-17

而我的理解是,应该给ul中li元素添加menu21这个类名,而menu21之前我们是设置样式了的(只不过被我们隐藏掉了),浮动到哪个li哪个li就设置display:block属性。

0

0 学习 · 15276 问题

查看课程