老师这里有点没理解,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)检测没问题。说明事件委托没问题。
(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中是有定义过的,如下:
在源码中,没有类名为menu21的元素,这个类名是同学自己定义的吧?源码中,.menu类名设置的是让元素隐藏
添加上current,就让元素显示。
如果同学的代码不能实现效果,建议:把完整的代码都粘贴上来(html,css,js都需要粘贴),老师帮助排查。
祝学习愉快~
Vigorous阿炎
提问者
2020-11-17
而我的理解是,应该给ul中li元素添加menu21这个类名,而menu21之前我们是设置样式了的(只不过被我们隐藏掉了),浮动到哪个li哪个li就设置display:block属性。
相似问题