Tip和菜单有类似的功能,即鼠标光标移上去的时候显示指定元素,鼠标光标离开的时候隐藏该元素。如下

示例1:下拉菜单(鼠标移动到“客户服务”上时出现,离开则隐藏)

示例2:水平菜单(鼠标移动到“餐饮美食”出现,离开则隐藏)

示例3:Tip示例(鼠标移动到“更换”出现,离开则隐藏)

从交互角度讲很简单,移上去显示,离开隐藏。代码则是两个事件mouseentermouseleave。但有个细节,如果触发元素(比如上面Tip里的“更换”),不包含下面显示的城市列表div的话,鼠标光标离开时就隐藏了,但用户其实是想移动到城市列表里去选另外一个城市。

通常有如下三种实现方式

一、触发元素把后显示的元素包含进来,一般菜单都是这么实现的。因为每个菜单的内容都不一样,这种结构是合理的。这种结构不会出现鼠标移动不到菜单里的情况。如示例1的HTML结构

线上示例:http://snandy.github.io/lib/menu/menu.html

二、触发元素不包含后显示元素,即两者可能是平级的(兄弟元素)。这种结构会出现鼠标移动不到显示元素上。JS需要做些特殊处理。如示例3的HTML结构

线上示例:http://snandy.github.io/lib/menu/tip.html

这种不包含结构往往用在很多相同元素的tip上,这时只要用一个显示元素,不必每个里面都包含相同HTML代码。实现时须注意,div#city和div.citys都要添加mouseenter和mouseleave事件。

  1. div#city触发mouseenter时,显示div.citys
  2. div#city触发mouseleave时,延迟隐藏div.citys,用一个标示boo变量记录是否该隐藏
  3. div.citys触发mouseenter时,boo标示为false,表示不隐藏
  4. div.citys触发mouseleave时,boo标示为true,表示可以隐藏

三、同二类似,也是延迟一段时间隐藏,当触发div.citys的mouseenter时移除div#city的mouseenter事件,div.citys的mouseleave事件触发时再重新添加上

Tip和菜单的实现方式的更多相关文章

  1. JQuery 纵向二级菜单与对齐方式

    1.效果: 2.代码: style部分: <style type="text/css"> /* ul{margin: 0; padding: 0;}*/ ul{list ...

  2. Android三种菜单的使用方式

    一.选项菜单(OptionMenu) 在res目录下新建menu目录,用于放置菜单布局文件(右键res->new->Android Resource Directory->menu) ...

  3. python实现应用程序在右键菜单中添加打开方式

    最近项目组开发的一个小工具想要在右键菜单中添加打开方式,以有道云笔记为例进行了需求拆解和代码编写 1.需求拆解: 如何实现手动添加右键菜单的打开方式: Step1:打开注册表编辑器,Win+R-> ...

  4. Android ListView两种长按弹出菜单方式

    转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...

  5. C#开发微信门户及应用(29)--微信个性化菜单的实现

    有一段时间没有接着微信的主题继续介绍里面的功能模块了,这段时间来,微信也做了不少的变化改动,针对这些特性我全面核对了一下相关的微信公众号和企业号的接口,对原有的微信API和系统管理做了全面的更新,本随 ...

  6. SharePoint 2013 操作文档库ECB菜单

    在SharePoint的使用中,我们经常需要定制SharePoint的一系列菜单,这里就包括ECB菜单,下面,我们简单了解一下ECB菜单如何定制,以及原理. 1.正常情况文档库的ECB菜单如下图: 2 ...

  7. DragLayout: QQ5.0侧拉菜单的新特效

    一.项目概要 1.1 项目效果如图: 1.2 需要使用到的技术   ViewDragHelper: 要实现和QQ5.0侧滑的特效,需要借助谷歌在2013年I/O大会上发布的ViewDragHelper ...

  8. SharePoint 2013:自定义ECB菜单项的添加

    本文分别介绍了两种常用的添加ECB菜单项的方式. 声明式创建 这也是微软最佳实践推荐的方式.在VS中创建一个SharePoint空解决方案,并添加一个“空元素”类型的SPI. 在Elements.xm ...

  9. Delphi中window消息截获的实现方式(1)

    近来笔者在一个项目中需要实现一个功能:模仿弹出菜单的隐藏方式,即鼠标在窗口的非PanelA区域点击时,使得PanelA隐藏.   经过思考,笔者想到通过处理鼠标的点击事件来实现相应功能.但是,究竟由谁 ...

随机推荐

  1. C#开发ActiveX网页截图控件

    故事背景:Java组的小伙伴需要一个能在IE(还是6...)下截图并返回给网页的功能,但是IE做起来很麻烦(可能根本做不到),于是找到我写一个ActiveX控件实现此功能,想着可能还有其他小伙伴需要这 ...

  2. [新手学Java]使用beanUtils控制javabean

    使用BeanUtils设置/读取属性的值以及默认支持的自动转化: @Test //使用BeanUtils设置/读取属性的值以及自动转化 public void test1() throws Illeg ...

  3. Aspose.Words.Tables.Row类操作word表格行

    http://www.aspose.com/docs/display/wordsnet/Aspose.Words.Tables.Row+Class Retrieves the index of a r ...

  4. 【C#进阶系列】01 CLR的执行模型——一个Hello World的故事

    好吧,废话少说,先上一章Hello World图: 我们有了一个Hello world程序,如此之简单,再加上我今天没有用汉字编程o(>﹏<)o,所以一切很简单明了. 故事开始: 编译: ...

  5. x3d 规范 在线镜像版

    国内访问web网站不稳定,在此部署一个国内的在线版本,供有需要的同学查阅. 注:已失效 x3d规范文档: https://code.csdn.net/x3dcn/x3d-specification-d ...

  6. 树状数组---Squared Permutation

    BNUOJ   51636 最近,无聊的过河船同学在玩一种奇怪的名为“小Q的恶作剧”的纸牌游戏. 现在过河船同学手有张牌,分别写着,打乱顺序之后排成一行,位置从左往右按照标号. 接下来小Q同学会给出个 ...

  7. php中的常用数组函数(一)(比较多个数组的差集的函数们 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc())

    array_diff_assoc($arr1, $arr2, $arr3,... n); 返回:一个$arr1的副本,后续的数组中出现一个键值相同的元素,就在副本中删掉这个元素,最后返回这个副本. 如 ...

  8. python 任意新闻正文提取

    在github上搜到一个正文提取程序,测试了一下基本可以对现在大多数大型新闻网站进行提取 后续我会分析一下这个程序的源码 使用非常简单 如下 # -*- coding: utf-8 -*- impor ...

  9. jdk1.8 ThreadPoolExecutor实现机制分析

    ThreadPoolExecutor几个重要的状态码字段 private static final int COUNT_BITS = Integer.SIZE - 3; private static ...

  10. ResponsiveSlides.js 幻灯片实例演示

    在线实例 默认效果 导航和分页 缩略图 描述说明 回调函数 <div class="wrap">     <ul class="rslides" ...