jquery模仿京东/天猫商品分类导航效果

如今天猫或者京东商品分类模块的默认的效果是这样的:javascript

当鼠标滑过任意一栏导航分类时,就会出现相关详细分类模块,例如:html

当鼠标移出蓝色框之外的区域,就会恢复默认的效果显示!然而使用jQuery的鼠标滑过事件,用得比较多的就是mouseover()和mouseout(),或者是他们两个的整合hover();因此以前我也是用的这种方法,可是一直调整都调整不到想要的效果!后来灵光一现,想着使用一下mouseenter()和mouseleave();结果分分钟想要的效果就出来了!java

个人布局大体是这样的:jquery

        <div class="nav_left">
            <div class="nav_top"></div>
            <div class="nav_tilte">所有商品分类</div> 
            <div class="dd">
                <div class="nav_list">
                    <div class="nav_list_s ">
                       <span class="nav_span"><a href="#">手机、</a><a href="#">数码、</a><a href="#">京东通讯</a></span>
                       <i class="nav_arrow">></i>
                    </div>
                    <div class="nav_list_s">
                       <span class="nav_span"><a href="#">手机、</a><a href="#">数码、</a><a href="#">京东通讯</a></span>
                       <i class="nav_arrow">></i>
                    </div>
                    <div class="nav_list_s">
                       <span class="nav_span"><a href="#">手机、</a><a href="#">数码、</a><a href="#">京东通讯</a></span>
                       <i class="nav_arrow">></i>
                    </div>
       
                </div>
                              
                <div class="nav_detailBox">
                    <div class="nav_detail">
                        <a href="#">111详细的子菜单,这里就不写了</a>
                       
                    </div>
                    <div class="nav_detail">
                        <a href="#">22222详细的子菜单,这里就不写了</a>
                        
                    </div>
                    <div class="nav_detail">
                        <a href="#">3333详细的子菜单,这里就不写了</a>
                       
                    </div>                          
                </div>
  
            </div>
 
        </div>

 

在nav_left的盒子里有3块大内容,分别是如图的1,2,3,它们同属于nav_left里面,由于都属于分类商品的内容,1和2至关因而装饰展现的做用,把布局排好就行ide

那么重点是在第3个模块,第三个模块的大盒子这里命名为dd布局

在dd的盒子(也就是第3模块)里面,分别有左边红色背景的这个导航分类的大盒子(nav_list)3.1,和右边鼠标滑过以后才显示的白色背景的盒子(nav_detailBox)3.2,常常写这种布局的确定知道是用定位布局才能实现,因此这里也是用定位来实现的布局。this

布局要和咱们的样式相关联系,好比咱们默认样式就是鼠标不滑过是默认的效果,鼠标滑过显示的特殊效果,那就单独写一个样式,经过jquery事件添加进去便可!spa

例如我这里就有一个特殊的类nav_list_s01,添加上它这个类以后,鼠标滑过背景就是白色的。htm

 

当布局和样式彻底准备稳当以后,咱们就可使用jquery来实现以前想要的效果了:blog

$(".nav_list_s").mouseenter(function(){
	$(this).addClass("nav_list_s01").siblings().removeClass("nav_list_s01");
	$(".nav_detailBox").show();
	$(".nav_detailBox").children(".nav_detail").eq($(this).index()).show().siblings().hide();
})
$(".nav_left").mouseleave(function(){
	$(this).find(".nav_list_s").removeClass("nav_list_s01");
	$(".nav_detailBox").stop().hide();
})

 以前给出的大体布局也能够看出,nav_list_s是这些盒子

nav_detailBox就是鼠标滑过左边的nav_list_s才显示的大盒子,nav_detail就是这个大盒子里的内容。

 

这个是本身想要写这个效果的时候想到的方法,若是大神有更好的建议,洗耳恭听哦!

若是本文帮助到你,记得推荐一下哦!

相关文章
相关标签/搜索