轻量级 JS ToolTip提示效果


Posted in Javascript onJuly 20, 2010

鼠标经过出现的提示效果,比title更漂亮,可订制。
JS:

//---------------------------tooltip效果 start----------------------------------- 
//获取某个html元素的定位 
function GetPos(obj){ 
var pos=new Object(); 
pos.x=obj.offsetLeft; 
pos.y=obj.offsetTop; 
while(obj=obj.offsetParent){ 
pos.x+=obj.offsetLeft; 
pos.y+=obj.offsetTop; 
} 
return pos; 
}; //提示工具 
var ToolTip={ 
_tipPanel:null, 
Init:function(){ 
if(null==this._tipPanel){ 
var tempDiv=document.createElement("div"); 
document.body.insertBefore(tempDiv, document.body.childNodes[0]); 
tempDiv.id="tipPanel"; 
tempDiv.style.display="none"; 
tempDiv.style.position="absolute"; 
tempDiv.style.zIndex="999"; 
} 
}, 
AttachTip:function(){}, //添加提示绑定 
DetachTip:function(){}, //移除提示绑定 
ShowTip:function(oTarget){ 
if($("tipPanel")==null) 
return; 
/*操作流程 
*1、构建新的html片段 
*2、设置提示框新位置 
*3、显示提示框 
*/ 
//1. 
var tempStr=""; //html片段 
if(arguments.length>1){ 
for(var i=1;i<arguments.length;i++){ 
tempStr+="<p>"+arguments[i]+"</p>"; 
} 
} 
$("tipPanel").innerHTML=tempStr; 
//2. 
var pos=GetPos(oTarget); 
$("tipPanel").style.left=(oTarget.offsetWidth/2+pos.x)+"px"; 
$("tipPanel").style.top=(oTarget.offsetHeight+pos.y)+"px"; 
//3. 
$("tipPanel").style.display=""; 
}, 
HideTip:function(){ 
if($("tipPanel")==null) 
return; 
$("tipPanel").style.display="none"; 
} 
}; 
//---------------------------tooltip效果 end-----------------------------------

CSS:
#tipPanel{ background:white; padding:6px 8px; width:300px; border:solid 4px #09c; font-size:14px; color:#555;} 
#tipPanel p{ margin:0px;} 
#tipPanel b{ color:red; font-size:14px;}

HTML调用:

<body> 
<input type="button" value="hover me" onmouseover='ToolTip.ShowTip(this,"<b>日期:</b>2010-7-19");' onmouseout='ToolTip.HideTip();' style="margin:200px 100px;" /> 
</body> 
<script type="text/javascript"> 
//initialize tooltip control 
ToolTip.Init(); 
</script>

使用效果:
轻量级 JS ToolTip提示效果
上面的$("id")作用等价于document.getElementById("id")
AttachTip:function(){}, //添加提示绑定
DetachTip:function(){}, //移除提示绑定
这两行,可以用动态绑定事件完成,因为项目里面用不着,所以暂时没加
Javascript 相关文章推荐
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
Feb 23 Javascript
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
ExtJS 入门
Oct 29 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
Apr 27 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
Jul 20 #Javascript
根据出生日期自动取得星座的js代码
Jul 20 #Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
Jul 20 #Javascript
Javascript实现CheckBox的全选与取消全选的代码
Jul 20 #Javascript
js下写一个事件队列操作函数
Jul 19 #Javascript
js+css在交互上的应用
Jul 18 #Javascript
基于jQuery试卷自动排版系统
Jul 18 #Javascript
You might like
php中的观察者模式
2010/03/24 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
基于initPHP的框架介绍
2013/04/18 PHP
php字符串截取的简单方法
2013/07/04 PHP
php微信开发之上传临时素材
2016/06/24 PHP
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
javascript每日必学之循环
2016/02/19 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
Python模块学习 filecmp 文件比较
2012/08/27 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
社区党员先进事迹
2014/01/22 职场文书
对教师的评语
2014/04/28 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
会计做账心得体会
2016/01/22 职场文书