当前位置: 首页 > 编程日记 > 正文

jQuery实例——仿京东仿淘宝列表导航菜单

以前看着京东,淘宝的导航做的真好,真想哪一天自己也能做出来这么漂亮功能全的导航菜单。今天弄了一下午终于自制成功,主要使用jQuery和CSS,实现功能基本和京东一样。

功能介绍:

1、鼠标停留导航;

2、根据子列表的高度,自动调整对齐方式(顶端对齐/父类目对齐);

3、父子类目样式一致。

功能截图:

源代码:

<!DOCTaYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content=" keywords" />
<meta name="description" content="description" />
</head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
body
{font-size:12px}
ul,li
{list-style-type:none;padding:0px}
.menu
{width:190px;border:solid 1px #E5D1A1;background-color:#FFFDD2}
.optn
{width:190px;line-height:28px;border-top:dashed 1px #ccc;z-index:100;position:relative}
.content
{padding-top:10px;clear:left}
a
{text-decoration:none;color:#666;padding:10px}
.optnFocus
{background-color:#fff;font-weight:bold}
div
{padding:10px}
div img
{float:left;padding-right:6px}
span
{padding-top:3px;font-size:14px;font-weight:bold;float:left}
.tip
{width:190px;position:absolute;padding:10px;display:none;}
.tip li
{line-height:23px}
.focus
{border:solid 1px red;background-color:#ccc}

</style>
<body>
<script type="text/javascript">
$(
function(){
$(
'.optn').bind({mouseover:function(){
var liTop = 12;
var liLeft = $(this).offset().left+$(this).width();
if(($(this).offset().top)>($(this).next('ul').height())){
liTop
= $(this).offset().top;
}
$(
this).css('border-right','0');
$(
this).next('.tip').show().css({'left':liLeft+'px',top:liTop+'px'});
$(
this).addClass('focus');
$(
this).next('.tip').addClass('focus');
},mouseout:
function(){
$(
this).next('.tip').hide();
$(
this).removeClass('focus');
}});
});

</script>

<ul>
<li class="menu">
<div>
<span>电脑数码产品</span>
</div>
<ul class="content">
<li class="optn"><a href="#">笔记本</a></li>
<ul class="tip">
<li><a href="#">笔记本1</a></li>
<li><a href="#">笔记本1</a></li>
<li><a href="#">笔记本1</a></li>
<li><a href="#">笔记本1</a></li>
<li><a href="#">笔记本1</a></li>
</ul><li class="optn"><a href="#">移动硬盘</a></li>
<ul class="tip">
<li><a href="#">移动硬盘1</a></li>
<li><a href="#">移动硬盘1</a></li>
<li><a href="#">移动硬盘1</a></li>
<li><a href="#">移动硬盘1</a></li>
<li><a href="#">移动硬盘1</a></li>
</ul><li class="optn"><a href="#">电脑软件</a></li>
<ul class="tip">
<li><a href="#">电脑软件1</a></li>
<li><a href="#">电脑软件1</a></li>
<li><a href="#">电脑软件1</a></li>
<li><a href="#">电脑软件1</a></li>
<li><a href="#">电脑软件1</a></li>
</ul><li class="optn"><a href="#">数码产品</a></li>
<ul class="tip">
<li><a href="#">数码产品1</a></li>
<li><a href="#">数码产品1</a></li>
<li><a href="#">数码产品1</a></li>
<li><a href="#">数码产品1</a></li>
<li><a href="#">数码产品1</a></li>
</ul>
</ul>
</li>
</ul>
<span></span>
</body>
</html>


遇到的问题及解决办法:

1、鼠标指针位置获取:

a、function(e){alert(e.pageX);  alert(e.pageY);}//获取鼠标当前位置

b、获取元素的位置:   $(this).offset().top  $(this).offset().left//获取元素的位置

注:以上两种方法均在jQuery中适用,若使用JS中,需做适当改动

2、两个区块叠加时,边框处理问题:

需要的效果是:

但是现实的效果却是:

这个问题困扰了我半天,也在一个群里求救,一个好心的兄弟给我一段JS代码,结果我还是没用上,最后看了一个选项卡的实例,终于把这个问题搞定了。解决办法是:

人为加宽父菜单的宽度,然后把右边框设置成0,最后记得把父标签的放在最顶端显示

父菜单:  border-right:0;  z-index:100;  position:relative;  宽度覆盖子菜单

子菜单:  和父菜单背景色一样

相关文章:

【Ubuntu】使用过的ubuntu工具记录

1、UnixBench UnixBench性能测试&#xff0c;和windows的鲁大师差不多。 2、smartctl 测试磁盘性能 sudo apt install smartmontools 3、cpufrequtils cpu频率查看、设置工具集&#xff1a;cpufreq-inf、cpufreq-set sudo apt install cpufrequtils 4、stress cpu满负荷…

解救被困传销女演员 助人减肥找老婆 蚂蚁森林又现神功能

近日&#xff0c;一篇《女演员被传销组织拘禁30多天 竟因蚂蚁森林幸运逃离》的报道引发了全网热议。网友纷纷表示&#xff1a;蚂蚁森林功能强大&#xff0c;不仅能帮人减肥、找老婆&#xff0c;还能在关键时刻保命&#xff01; 珍惜偷你能量的好友 因为关键时刻能保命 据北京晨…

“智能+”时代,看见别人看不见的才是赢家

当科技、商业和社会均发生天翻地覆的变革&#xff0c;我们可以确定的是&#xff0c;“智能”时代的浪潮已掀起波澜。这将是智慧无处不在的时代&#xff0c;曾经无法解决的问题&#xff0c;都将在科技的发展下找到答案&#xff1b;这也是技术普惠万物的时代&#xff0c;创新型应…

CSS a控制超链接文字样式

超链接的代码<a href"http://www.divcss5.com/" target"_blank" title"关于div css的网站">DIVCSS</a>解析如下&#xff1a;href 后跟被链接地址目标网站地址这里是http://www.divcss5.com/target _blank -- 在新窗口中打开链接 _pa…

3分钟快速实现:9种经典排序算法的可视化

作者 | 爱笑的眼睛 来源 | 恋习Python&#xff08;ID:sldata2017&#xff09;最近在某网站上看到一个视频&#xff0c;是关于排序算法的可视化的&#xff0c;看着挺有意思的&#xff0c;也特别喜感。▼6分钟演示15种排序算法不知道作者是怎么做的&#xff0c;但是突然很想自己…

【Qt】Qt再学习(一):Application Example

1、QCommandLineParser 命令行解析类 常用接口 QApplication app(argc, argv);QCommandLineParser parser;parser.setApplicationDescription(QCoreApplication::applicationName());parser.addHelpOption(

沃森世界研讨会前瞻:AI服务 了解客户情绪

科技讯10月19日消息&#xff0c;据国外媒体报道&#xff0c;“沃森世界”研讨会(World of Watson)将于10月24日至27日在拉斯维加斯曼德勒湾举办&#xff0c;与会者将能够了解沃森目前的进展&#xff0c;并深入了解将来沃森将从事的一些令人兴奋的事情。10月14日一整日的会谈中&…

《人月神话》——外科手术队伍——笔记!

本章讨论了一个问题“如何在有意义的时间进度内创建大型的系统&#xff1f;” 软件经理测试出来的数据显示“经验和实际的表现没有相互的联系”。 *需要协作沟通的人员的数量影响着开发成本&#xff0c;因为成本的主要组成部分是相互的沟通和交流&#xff0c;以及更正沟…

直接上手!不容错过的Visual Studio Code十大扩展组件

作者 | David Neal译者 | 谭开朗&#xff0c;责编 | 屠敏转载自CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;各大平台与各种语言的开发人员都在使用Visual Studio Code&#xff0c;我对此感到惊讶。Stack Overflow发布的2019年开发者调查结果显示&#xff0c;VS Code占…

【Qt】Qt再学习(二):Bars Example(Q3DBars)

1、简介 Bars example显示了如何使用Q3DBars制作3D条形图&#xff0c;以及如何结合使用小部件来调整几种可调节的质量。该示例显示了如何&#xff1a; 使用Q3DBars和一些小部件创建应用程序 使用QBar3DSeries和QBarDataProxy将数据设置为图形 使用控件调整一些图形和系列属性…

记录错误信息的行数

1.try catch 记录错误信息的时候&#xff0c;如果报错了&#xff0c;我们只能粗略估算是什么错误&#xff0c;但如果能够具体知道是哪行错误的话&#xff0c;对错误的分析就能够快速定位问题。 2.只需要记录到错误的行号&#xff0c;就能快速定位问题。 3.ex.stackTrace 就可以…

android中PreferencesActivity的使用(一)

在使用android手机的时候&#xff0c;尤其是在操作软件设置时&#xff0c;我们经常见到这样的界面&#xff1a; 这是怎么来实现的的呢&#xff1f;其实android已经提供了相应的类和方法&#xff0c;当进行简单数据存储时&#xff08;比如&#xff1a;软件配置参数&#xff09;a…

吴恩达团队:神经网络如何正确初始化?

来源 | deeplearning.ai编译 | 刘静转载自图灵TOPIA(ID:turingtopia)初始化对训练深度神经网络的收敛性有重要影响。简单的初始化方案可以加速训练&#xff0c;但是它们需要小心避免常见的陷阱。近期&#xff0c;deeplearning.ai就如何有效地初始化神经网络参数发表了交互式文章…

【Qt】Qt再学习(三):Chart Themes Example(常用图表)

1、简介 该示例中展示了各种图表以及在不同内置主题下的外观。 2、使用到的类 QChart:图表抽象类,继承自QGraphicsWidget QChartView:显示图表窗口,继承自QGraphicsView QLineSeries:折线图 QAreaSeries:面积图 QStackedBarSeries:分段条状图 QScatterSeries:散点图…

eyoucms range 范围判断标签

【基础用法】名称&#xff1a;range功能&#xff1a;范围判断标签包括in notin between notbetween四个标签&#xff0c;都用于判断变量是否中某个范围。语法&#xff1a;{eyou:range name$eyou.field.typeid value1,2,3,4 typein}输出内容{/eyou:range}参数&#xff1a;name 变…

现实迷途 第七章 特殊客户

第七章 特殊客户 注&#xff1a;原创作品&#xff0c;请尊重原作者&#xff0c;未经同意&#xff0c;请勿转载&#xff0c;否则追究责任。 江北一般都是上午待在办公室里&#xff0c;搜集信息或整理以前做过的系统&#xff0c;下午才出去站街招客。 站街站了一段时间后&#xf…

BZOJ1396:识别子串(SAM)

Description Input 一行,一个由小写字母组成的字符串S,长度不超过10^5Output L行,每行一个整数,第i行的数据表示关于S的第i个元素的最短识别子串有多长.Sample Input agoodcookcooksgoodfoodSample Output 1 2 3 3 2 2 3 3 2 2 3 3 2 1 2 3 3 2 1 2 3 4 Solution 1A挺开心的省…

【Qt】Qt再学习(四):Editable Tree Model Example

1、简介 这个示例,展示了如何编辑项目、自定义标题以及插入和删除行和列的功能。 项视图模型的标准用法是继承QAbstractItemModel,然后重载纯虚函数:flags()、data()、 headerData()、columnCount()、 rowCount()、 index() 、parent().等; 对于可编辑项目的实现需要重载接…

千亿级照片,毫秒间匹配最佳结果,微软开源Bing搜索背后的关键算法

【导读】随着互联网的普及&#xff0c;搜索成为人们最常用的基本功能之一&#xff0c;但这背后的秘密是什么呢&#xff1f;近日&#xff0c;微软公司介绍了他们是其如何应对用户搜索习惯的改变&#xff0c;并开源了支撑 Bing 搜索背后的算法。 作者 | Charlie Waldburger 译者 …

【Qt】Qt再学习(五):HTTP Example(HTTP下载文件的示例)

1、简介 此示例演示一个简单的HTTP客户端如何从远程主机获取文件。 2、说明 QUrl:url抽象类 QUrl::fromUserInput:从QString转换成QUrl QNetworkAccessManager:网络访问API围绕一个QNetworkAccessManager对象构造,该对象保存其发送的请求的通用配置和设置。创建QNetwork…

面对互联网一线大厂,这些技术你需要了解!

2019 年 5 月 26 - 27 日&#xff0c;由中国 IT 社区 CSDN 与数字经济人才发展中心联合主办的第一届 CTA 核心技术及应用峰会将在杭州国际博览中心召开。近 500 名开发者将齐聚于此&#xff0c;共同交流探讨机器学习和知识图谱的技术及行业落地趋势。会议将聚焦机器学习和知识图…

Android定制:修改开机启动画面

转自&#xff1a;https://blog.csdn.net/godiors_163/article/details/72529210 引言 Android系统在按下开机键之后就会进入启动流程&#xff0c;这个过程本身需要一些时间&#xff0c;而面向用户的往往是厂商定制的一些宣传用的比较绚丽的启动画面。我们在定制自己的系统时&am…

盛大游戏卷入“沙巴克”商标之争

4月12日上午消息&#xff0c;沸沸扬扬的“沙巴克”商标之争再次升级&#xff0c;盛大游戏(微博)也被卷入其中。美国咖啡连锁企业星巴克以“商标侵权”为由将国家商标评审委告上法庭&#xff0c;认为其批准的“沙巴克”商标和“星巴克”近似&#xff0c;要求法庭复审。[/p][p23,…

iOS开发经验总结

在iOS开发中经常需要使用的或不常用的知识点的总结&#xff0c;几年的收藏和积累&#xff08;踩过的坑&#xff09;。 一、 iPhone Size 二、 给navigation Bar 设置 title 颜色 123UIColor *whiteColor [UIColor whiteColor];NSDictionary *dic [NSDictionary dictionaryWit…

焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

【编者按】在迭代不休的技术圈中&#xff0c;仅在过去的一个月期间&#xff0c;我们见证了有史以来第一张黑洞照片的诞生&#xff1b;经历了为让人义愤填膺的 996&#xff1b;思考了作为程序员的年龄之槛&#xff1b;膜拜了技术大神的成长历程&#xff1b;追逐了如编程语言、人…

【Qt】Qt再学习(六):Qt中JSON保存和加载的示例

1、简介 该示例演示如何保存和加载JSON格式文件&#xff0c;涉及到的类有&#xff1a;QJsonDocument, QJsonObject and QJsonArray. 2、说明 2.1 QJsonDocument QJsonDocument类提供了一种读取和写入JSON文档的方法。 使用QJsonDocument::fromJson()将JSON文档从其基于文本…

H3C ER3260通过Console口重装软件修复路由器

公司在用的H3C ER3260路由器突然罢工&#xff0c;所有LAN、WAN口均无反应&#xff0c;但加电正常&#xff0c;初步判断硬件应该是好的&#xff0c;联系维修要价500&#xff0c;新买一个2000&#xff0c;于是决定自己修下看。 通过配置线连接Console口恢复出厂设置&#xff0c;不…

【Qt】Qt再学习(七):QLocalServer、QLocalSocket

1、QLocalServer QLocalServer类提供基于本地套接字的服务器。 简单的使用方法:首先创建本地服务器并监听 QLocalServer* server = new QLocalServer(this);server->listen("HelloWorld");当有客户端连接时,触发QLocalServer::newConnection信号,在槽函数中处…

百度宣布:搜索业务总裁向海龙离职,另回购10亿美元股份

整理 | 一一出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;5 月 17 日&#xff0c;百度公布 2019 年第一季度未经审计的财务报告。本季度百度营收 241 亿元&#xff08;约合35.9亿美元&#xff09;&#xff0c;同比增长15%&#xff0c;不计入此前宣布的资产剥离交易…

Oracle SQL高级编程——分析函数(窗口函数)全面讲解

Oracle SQL高级编程——分析函数&#xff08;窗口函数&#xff09;全面讲解注&#xff1a;本文来源于&#xff1a;《Oracle SQL高级编程——分析函数&#xff08;窗口函数&#xff09;全面讲解》概述分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算&#xff0c;…