javascript - 正学习做一个类似京东首页左侧的分类导航,要求鼠标能从A分类斜着滑动到B分类上,求前端各大牛正解?
PHPz
PHPz 2017-04-11 11:28:28
[JavaScript讨论组]

需要的效果如图所示,但我写的代码出现如下问题:1,当鼠标沿着红色箭头斜着滑动到B分类区域时,B分类隐藏了。怎么写才能让鼠标进入A类且斜着从A区域滑动到B区域过程中,B分类不隐藏且一直显示呢?
2,从A分类平行滑动到B分类时,B分类也隐藏了!为什么出现这种情况?此处代码应该如何修改?
3,A分类和B分类交叉处,有一个实线,如何取消?z-index写错了吗?应该如何写,才能让实线取消掉?
附加:在class="box-sort"的p和id="float_boxbooks"的p保持对等且相对独立关系的情况下(A区域和B区域相对独立),鼠标从id="spanbooks"的span区域沿着红色箭头滑动到id="float_boxbooks" 的p区域过程中,如何修改代码才能保证id="float_boxbooks"的p不隐藏呢?不想做成父与子的结构。
我写的代码如下,请解释错误出现的具体原因;规范的代码应该如何写?能否替小弟详细注释一下呢?谢谢各位大牛啦............!!!!:-D
http://jsbin.com/xiticuk/edit?html,output

链接描述



    
    
    
    
    


            

主流
freedresstrousershoes文学经管畅读VIP畅读VIP畅读VIP
电子
通俗流行古典音乐摇滚说唱爵士蓝调乡村民谣有声读物
音像
音乐影视教育音像游戏
艺术
小说文学青春文学传记艺术
人文社科
历史心理学政治/军事国学/古籍哲学/宗教社会科学
经管励志
经济金融与投资管理励志与成功
生活
家庭与育儿旅游/地图烹饪/美食时尚/美妆家居婚恋与两性娱乐/休闲健身与保健动漫/幽默体育/运动
科技
科普IT建筑医学工业技术电子/通信农林科学与自然
少儿
少儿0-2岁3-6岁7-10岁11-14岁
教育
教材教辅考试外语学习
其它
英文原版书港台图书工具书套装书杂志/期刊

PHPz
PHPz

学习是最好的投资!

全部回复(5)
黄舟

正在研究这两篇文章和github中的代码:


亚马逊导航菜单的秘密链接描述
亚马逊左侧菜单延迟z三角 jquery插件jquery.menu-aim.js源码解读链接描述

大致意思就是建立一个三角缓冲区,详细实现参见原作者提供的插件源码

怪我咯

二级菜单思路,在一个大盒子里写2个ul,ul分在2边一个显示,一个隐藏,
获取盒子里面li(jq里的这一步$("#box li")之所以这么做是因为只要鼠标不离开box里面的所有li,右侧的导航就不会消失),加个鼠标划入事件,让右边隐藏的导航栏显示,hove还有个自带的划出事件,在添加属性让他隐藏,
下面是jq代码记得要自己引入js文件<script src="js/jquery-1.11.1.min.js"></script>。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="js/jquery-1.11.1.min.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body{
            width: 100%;
            height: 100%;
            background: #f88;
        }
        #box {
            height: 210px;
            width: 200px;
            padding-right: 400px;
            margin: 0 auto;
        }
        
        #gps_left {
            position: absolute;
            float: left;
            width: 200px;
            height: 210px;
            background: #f00;
        }
        
        #gps_left li {
            width: 200px;
            height: 30px;
            font: 12px/30px '微软雅黑';
        }
        
        #gps_right {
            position: relative;
            left: 200px;
            top: 0;
            float: left;
            width: 400px;
            height: 210px;
            overflow: hidden;
            display: none;
        }
        
        #gps_right li {
            width: 400px;
            height: 210px;
            font: 12px/210px '微软雅黑';
            display: none;
            background: #f0f;
        }
    </style>
</head>

<body>
    <p id="box">
        <ul id="gps_left">
            <li>111111</li>
            <li>22222</li>
            <li>3333</li>
            <li>44444</li>
            <li>555</li>
            <li>666</li>
            <li>7777</li>
        </ul>
        <ul id="gps_right">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
        </ul>
    </p>
</body>
<script>
    $("#box li").hover(function () {
        var $indes = ($(this).index()) //获取下标
        $('#gps_right').css('display', 'block');
        $('#gps_right li').css('display', 'none').eq($indes).css('display', 'block');
    }, function () {
        $('#gps_right').css('display', 'none');
        $('#gps_right li').css('display', 'none');
    })
</script>

</html>
伊谢尔伦

html:

li.mainmenu>a+p.submenu

js:

$mainmenu.on('mouseover',function(){$submenu.show();});

说白了就是把要显示隐藏的内容submenu包裹在容器mainmenu中,事件绑定到mainmenu就可以了。
这样悬浮到mainmenu时,显示内容submenu本身就属于mainmenu区域里的内容,所以你挪到submenu区域,也是不存在问题的。

高洛峰
<父分类>
    <父标题></父标题>
    <子分类></子分类>
</父分类>

父分类:hover 子分类 {
    display: block;
}

套用一下楼上回复,其实这个效果以及JS是很简单的,结构写好,就是一句JS的问题。

迷茫

delay不行么……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号