鼠标滑过有的下拉框选项没有显示背景透明度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < title >Document</ title > < script type = "text/javascript" src = "jquery.js" ></ script > < script type = "text/javascript" src = "shopping.js" ></ script > < link rel = "stylesheet" type = "text/css" href = "shopping.css" > </ head > < body > < div class = "top" > < div class = "content" > < div class = "signIn" > < span class = "normal3" >亲,请登录</ span > < span class = "normal1" >免费注册</ span > < span class = "normal2" >手机逛慕淘</ span > </ div > < div class = 'rightNavContent' > < ul > < li >< a href = "#" >我的慕淘< img class = "pic" src = "素材/icon/21.png" ></ a > < div class = 'innerUl' > < div class = 'innerLi' >Personal</ div > < div class = 'innerLi' >Group</ div > < div class = 'innerLi' >Administrator</ div > </ div > </ li > < li >< a href = "#" >收藏夹< img class = "pic" src = "素材/icon/21.png" ></ a > < div class = 'innerUl' > < div class = 'innerLi' >Personal</ div > < div class = 'innerLi' >Group</ div > < div class = 'innerLi' >Administrator</ div > </ div > </ li > </ ul > </ div > </ div > </ div > </ body > </ html > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $( '.rightNavContent ul li' ).mouseover( function (){ var idx = $( this ).index(); $( '.innerUl' ).eq(idx).css( 'display' , 'block' ); }); $( '.rightNavContent ul li' ).mouseout( function (){ var idx = $( this ).index(); $( '.innerUl' ).eq(idx).css( 'display' , 'none' ); }); $( '.innerLi' ).mouseover( function (){ var idx = $( this ).index(); console.log(idx); $( '.innerLi' ).eq(idx).css( 'background' , 'rgba(255,255,255,0.4)' ); }); $( '.innerLi' ).mouseout( function (){ var idx = $( this ).index(); $( '.innerLi' ).eq(idx).css( 'background' , 'none' ); }); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | *{ margin:0; padding:0; } .top{ width: 100%; height:auto; background-color: #f3f5f7; } .content{ height: 49px; line-height: 50px; width: 80%; margin:0 auto; border-bottom:1px solid gray; } .signIn{ color:red; font-size: 5px; float:left; } .normal,.normal1,.normal2,.normal3{ color:black; cursor: pointer; } .signIn span{ padding-left: 20px; } .rightNavContent{ float:right; width:450px; height: 49px; background: orange; } .rightNavContent ul li{ float:left; list-style-type: none; line-height: 49px; margin-left: 25px; font-size: 5px; color: #7d7d7d; } .innerUl{ position:absolute; width:108px; height: 90px; background: pink; z-index: 888; display: none; } .innerLi{ text-align: center; height: 30px; line-height: 30px; width: 108px; } .innerLi2{ text-align: center; height: 30px; line-height: 30px; width: 108px; } |
老师,右面的我的慕淘,收藏夹等等当鼠标滑过时均有下拉框,为什么第二个收藏夹我鼠标滑过下拉框的对应选项的时候,透明度没有显示出来。而我的慕淘那个就可以,他们的class都是同一个啊
正在回答 回答被采纳积分+1
他们不是兄弟元素,因为不是同一个父级。
1 2 3 4 5 6 7 8 | $( '.rightNavContent ul li' ).mouseover( function () { var idx = $( this ).index(); $( '.innerUl' ).eq(idx).css( 'display' , 'block' ); }); $( '.rightNavContent ul li' ).mouseout( function () { var idx = $( this ).index(); $( '.innerUl' ).eq(idx).css( 'display' , 'none' ); }); |
这里是设置当鼠标经过每一个在.rightNavContent下面的ul里面的li时,获取当前li的索引,显示li的子元素innerUl,这里跟兄弟元素没有关系,而是父子级元素。
你好,跟这个没有关系哟,鼠标划入对应的,对应的下拉框才会显示哟,“收藏夹”与“我的慕淘”这两个是兄弟元素,所以对于它们下拉框的显示是没有问题的,这里讨论的是,下拉框中innerUL的背景颜色问题哟。这里的主要原因是:
1 2 | ①$(obj).index(this)基于对象选择下标; ②$(this).index()基于this同级所有元素的下标; |
$(".innerLi").index(this);就是①的情况是,基于对象选择下标,这个就是在所有的innerLi的元素中选出当前元素的索引。
$(this).index();就是②的情况,这种是基于this同级所有元素的下标;就是在同一父级下选择该元素的索引,
如下图,用②这个获取下面图中红框中的索引的话,就会是1,但是使用①的方式获取的话,会从所有的innerLi的元素中选取(不考虑同级,即是否是用一个父级),这时候获取的到将会是4,你可以自己输出测试下哟
如下,添加背景颜色的语句,是从所有的innerLi的元素中选择对应的索引,添加的透明颜色,没有考虑父级哟,索引这里获取索引的时候,应该使用①的方法就可以了。
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧