- 浏览: 175922 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
mncc:
太好了!!!Mark一下!不过貌似那个冒泡的还少个右下角吧? ...
Google Maps 图标地址收藏 -
ivorytower:
去年5月捡了命回来,现在不评论那些豆腐渣工程……
汶川地震留给我们什么?单单建什么地震纪念馆是没有用的 -
lgx2351:
wtusmchen 写道blog写的不错啊,以后多过来学习:) ...
js学习笔记2-函数 -
wtusmchen:
blog写的不错啊,以后多过来学习:)
js学习笔记2-函数
在应用开中很常用的功能是tip,比如鼠标放在某个需要说明的元素时,tip出元素的一些属性,或者是在一个主表的grid里当鼠标移到某一行,tip出这一行的所关联的子表的grid,使得用户一目了然。tip的功能这么常用,我们可以用一些已有的js库来实现,比如 wz_tooltip.js,它可以实现较为强大的tip功能。关于wz_tooltip.js的知识就不说了,参考它的官方网站所有的api都说得很详细了。
当然,如果我想自己写一个较为简单的tip也是可以的。自己实现的话,对于css的知识,鼠标事件等知识会理解得更加深刻,比如对鼠标事件的定位等。下面,我们来说说怎么实现自己下定义的tip。
function Tooltip() { this.tooltip = document.createElement("div"); this.tooltip.style.position = "absolute"; this.tooltip.style.visibility = "hidden"; this.tooltip.className = "tooltipShadow"; this.content = document.createElement("div"); this.content.style.position = "relative"; this.content.className = "tooltipContent"; this.tooltip.appendChild(this.content); } Tooltip.prototype.show = function(text, x, y) { this.content.innerHTML = text; this.tooltip.style.left = x + "px"; this.tooltip.style.top = y + "px"; this.tooltip.style.visibility = "visible"; if (this.tooltip.parentNode != document.body) document.body.appendChild(this.tooltip); }; Tooltip.prototype.hide = function() { this.tooltip.style.visibility = "hidden"; };
以上代码分析如下:
1、 Tooltip()构造函数的主要作用是里去create两个div,设置完两个div的className和position后,把第二个存放内容的 div append到第一个阴影div里。注意的是阴影div的定位设置为绝对定位(absolute),而内容div的定位设置为相对定位(relative),内容div是相对于阴影div来定位的,只要设置好了阴影div的位置,则内容div的位置也可以定下来了。关于位置的不同的值的知识见后面的相关知识点。
2、Tooltip()构造函数做了挺多工作,而之前一般我的代码里构造函数一般只进行类实例变量的赋值,很少有做较多的事情。学习这种写法。
3、 show()方法在div已创建的基础上,主要是设置div的位置,内容,并append到document.body上去。注意条件语句:this.tooltip.parentNode != document.body,通过这句话来得到是否把tooltip这个div创建到body上去了,如果没才去append。
4、其中的className的css代码如下:
.tooltipShadow { background: url(shadow.png); } .tooltipContent { left: -4px; top: -4px; background-color: #ff0; border: solid black 1px; padding: 5px; font: bold 10pt sans-serif; }
上面已经实现了tip的显示与隐藏,接下来把鼠标事件考虑进去:
Tooltip.X_OFFSET = 25; Tooltip.Y_OFFSET = 15; Tooltip.DELAY = 500; Tooltip.prototype.schedule = function(target, e) { var text = target.getAttribute("tooltip"); if (!text) return; var x = e.clientX + Geometry.getHorizontalScroll( ); var y = e.clientY + Geometry.getVerticalScroll( ); x += Tooltip.X_OFFSET; y += Tooltip.Y_OFFSET; var self = this; var timer = window.setTimeout(function( ) { self.show(text, x, y); },Tooltip.DELAY); if (target.addEventListener) target.addEventListener("mouseout", mouseout,false); else if (target.attachEvent) target.attachEvent("onmouseout", mouseout); else target.onmouseout = mouseout; function mouseout( ) { self.hide( ); window.clearTimeout(timer); if (target.removeEventListener) target.removeEventListener("mouseout", mouseout, false); else if (target.detachEvent) target.detachEvent("onmouseout",mouseout); else target.onmouseout = null; } }
以上代码分析:
1、通过getAttribute()方法来得到标签的属性值。
2、当值为空是return,不执行tip事件
3、Geometry.getHorizontalScroll()方法见Geometry类,其它博客有专门的说明。
4、setTimeout()来过段时间执行tip,但当onmouseout时,把这个timout要clear掉。
5、注意代码attachEvent()、detachEvent()的浏览器兼容性的写法。
其它,顺便总结一个定位的几种值的含义:
1、 static:
静态定位。它是默认值
,根据文档内容的正常流动来定位元素。
使用静态定位的元素不是DHMTL元素
,不能用top、left等属性,也就是说,如果你要定位一个元素,必须设置为除static外的值,一般我们用absolute来定位,这也是程序中所有涉及到需要位置的元素时都要设置position值的原因。
2、absolute:
绝对定位。设置元素的相对于它的包含元素的位置。
绝对定位的元素独立于其它元素来定位,即绝对定位对于其它元素无关,它也不属于静态定位的元素流。
绝对定位的元素可以相对于文档的<body>标记来定位。
如果它嵌套在另一个绝对定位的元素中(这另一个元素也要绝对定位),则相对于它个元素来定位。
它是DHMTL里最常用
的定位方式。
3、fixed:
4、relative:
当元素的position为relativ时,它首先根据常规文档流来布局元素,然后相对常规流中的位置进行调整。
在常规文档流中分配给它的空间仍然分配给它,它两边的元素也不会向它靠近来填充它的空间,但它们也不会从元素的新位置被挤走。
发表评论
-
在一个定时器里频繁发ajax请求
2011-04-11 10:07 1772在一个定时器里频繁发ajax请求,最好设置一个全局变量,当请求 ... -
前台开发总结
2011-01-12 10:35 8101、如果在频繁地发送ajax请求,最好在前面的请求发送完成返回 ... -
TD中长串英文字母不能自动换行而汉字却可以自动换行
2010-12-23 10:06 1962例如:aaaaaaaaaaaaaaaaaaaaaaaaaaaa ... -
Google Maps 图标地址收藏
2010-11-27 10:46 2876Google Maps 图标 - ... -
js乱码
2010-05-30 16:08 01)在同一个工程下没有问题,可是如果跨工程的话,且引入的js有 ... -
ajax请求提供接口的讨论
2009-12-26 15:33 1070要提供一个查询某点周边的最近设施的功能给同事,在gis端的实现 ... -
ie8与ie6取form的讨论
2009-12-16 10:49 1407多frames下,在ie6下通过frames[i]为取得某个f ... -
把一个jsp分为两个div布局记录
2009-12-15 16:41 5631一个jsp页面想分成左右两块分开显示两块内容。这种效果很不错, ... -
js取整数四舍五入
2009-11-21 22:08 3448http://blog.csdn.net/Feiin/arch ... -
读“javascript权威指南”笔记(更新中。。。)
2009-11-14 13:00 0第一章: 第二章: 第三章: 第四章: 第五章: 第 ... -
grid拖动列头改变列宽
2009-10-21 17:19 1601grid中,当某一单元格的内容很多时,要能够拖动grid标题行 ... -
js常用功能-drag功能总结
2009-09-18 13:50 1238在做web开发中,拖动一个元素是很常见的功能,特别是对于浮动层 ... -
js学习笔记4-事件和事件处理
2009-09-16 22:18 10351. 总述: 本章将讲三种完全不同的不兼容的事件处理模型 ... -
构造结果集实现类似grid显示
2009-09-16 20:24 914在做应用开发中,最经常的操作是到后台数据库去获取数据,在前台用 ... -
grid里用右键来实现功能菜单
2009-09-15 20:22 1276在自定义grid中,如果一个grid的列很多,窗口无法显示这么 ... -
js学习笔记3-构造函数、类和原型
2009-09-06 16:18 27333. 构造函数、类和原型总述:对象是我们很熟悉的,常在程序中用 ... -
gird分页时form与url参数的探讨
2009-09-05 22:35 1173大家可能很常用一个查 ... -
js学习笔记2-函数
2009-09-02 23:01 14372. 函数 2.1函数直接量函数直接量是用作表达式,而不是用作 ... -
下拉提示文本框
2009-08-24 18:46 1741文本框在当用户输入时,常常需要把相近的信息提示给用户,以方便用 ... -
js学习笔记1-对象和数组
2009-08-19 23:03 8891. 对象和数组 总述对象 ...
相关推荐
通过以上内容的学习,参与者将能够全面掌握用友ERP中的TIPTOP GP 教育训练应收管理系统(AXR)的各项功能及其在实际工作中的应用方法。这不仅有助于提高工作效率,还能确保企业的财务管理更加规范化、透明化。
根据提供的TIPTOP教程文档,我们可以总结出一系列与系统管理和基础操作相关的知识点。这些知识点主要围绕鼎新电脑股份有限公司出品的TIPTOP产品中心VER6.00版本展开,涉及了系统的初始设置、数据维护以及特定操作...
根据给定的信息,本文将详细解析“JS中的Tip提示信息”的相关知识点,包括Tip提示信息在JavaScript中的实现原理、常用库和技术方案等。 ### 一、什么是Tip提示信息? 在Web开发中,提示信息(Tips)是一种常见的...
- **概念**: I()函数是TIPTOP GP中用于控制程序流的一种常用手段。通过与其他函数如DISPALYBYNAME和INPUTBYNAME结合使用,可以灵活地实现栏位间的跳转。 - **应用场景**: 在复杂的业务逻辑下,可能需要根据用户的...
### CAD 快捷键及相关知识点总结 #### 一、CAD基础操作及快捷键说明 **1. 常用快捷键** - **A**: 圆弧(Arc) - **B**: 块定义(Block Definition) - **C**: 圆(Circle) - **D**: 尺寸样式(Dimension Style)...
根据提供的文件信息,我们可以归纳总结出以下几个Delphi中的重要知识点: ### 1. 函数 `GetAccessPassword`:用于获取Access 97数据库文件的密码 #### 代码解析: ```pascal function GetAccessPassword(FilePath:...
### DataGrid实现tooltip功能 #### 一、简介 在Web开发中,为了提供更好的用户体验,开发者经常需要在用户界面中加入提示信息。其中,`tooltip`(工具提示)是一种非常实用的功能,它可以在用户鼠标悬停在某个元素...
### WalkISurvey用户操作手册知识点总结 #### 一、WALK基本概念 ##### 1.1 工作空间(Workspace) - **定义**:工作空间是WalkISurvey软件中的一个核心概念,指的是用户进行测绘工作的环境集合。它可以包含多个...
标签“JS 半透明 Tip”强调了文章的关键词:JavaScript编程语言、半透明效果以及在用户界面中常用的提示功能。 从部分内容来看,文章提供了一个名为opacity的函数,这个函数可以实现元素从一个透明度级别逐渐过渡到...
系统托盘图标是指显示在Windows任务栏右下角的通知区域中的小图标,用于提醒用户某些程序正在后台运行或提供快速访问功能。通过调用Windows API函数`Shell_NotifyIcon`,可以实现在任务栏显示自定义的图标。 #### 2...
【LED显示数码管相关知识】 LED数码管是一种常见的电子显示设备,广泛应用于各种电子设备的显示界面,如钟表、仪器仪表、广告牌等。它由多个LED灯点组成,通常为7段或8段结构,可以显示数字、字母、符号等信息。...
综合以上信息,我们可以总结出以下知识点: 1. **微信小程序**:微信小程序是一种基于微信生态的应用开发平台,它提供了丰富的API和组件,使得开发者能够构建功能丰富的轻应用,用户可以直接在微信内部进行使用。 ...
根据给定文件的信息,我们可以总结出以下关于电子元器件及其价格参考的相关知识点: ### 一、电子元器件概述 在电子技术领域中,电子元器件是构成电子设备的基础单元,它们的功能各异,包括但不限于信号传输、能量...
在任务型阅读中,掌握常用词汇和词组是提高阅读理解能力的关键。这些词汇和词组涉及了多个领域,包括原因与结果、异同点、功能、观点、态度、方法和策略,以及目的、积极与消极、建议和总结等。下面我们将对这些核心...
### PCB设计技巧百问知识点详解 ...以上知识点总结了《PCB设计技巧百问》中关于PCB设计的关键技术和实践建议,涵盖了从选择板材到具体布线策略等多个方面,为读者提供了全面深入的理解和实用指南。
从给定文件的内容来看,问题集中在单片机如何驱动三极管以及相应的电路设计问题上,以下是详细知识点...这些知识点对于理解单片机与外部电路的接口设计非常有帮助,可以指导初学者正确地搭建电子电路,实现所需的功能。
通过上述分析,我们不仅学习了如何使用Mel创建一个简单的花模型,还深入了解了Mel的基本语法和常用命令。Mel作为一种强大的脚本语言,在Maya中发挥着不可或缺的作用。掌握Mel不仅可以提高工作效率,还能让艺术家们...
根据提供的文件内容片段,我们可以提炼出一些与单片机控制电梯系统相关的知识点,这些知识可能涉及到电梯控制系统的硬件组成、单片机的基本结构以及在电梯控制系统中应用的相关电子组件。 首先,从标题和描述来看,...
本文将详细介绍利用万能洞洞板进行单片机DIY设计的相关知识点,帮助读者开启制作之路。 首先,单片机多功能自动调光器是一个集成了红外人体感应和光敏电阻的智能LED灯台灯设计。光敏电阻负责检测环境光线强度,而...