轻量级 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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
JavaScript 栈的详解及实例代码
Jan 22 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 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实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
php递归创建目录的方法
2015/02/02 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
es6数值的扩展方法
2019/03/11 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python实现批量修改文件名代码
2017/09/10 Python
快速入门python学习笔记
2017/12/06 Python
Python3并发写文件与Python对比
2019/11/20 Python
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
中专毕业生的自我鉴定
2013/12/01 职场文书
关于工资低的辞职信
2014/01/14 职场文书
老同学聚会感言
2014/02/23 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技