javascript tips提示框组件实现代码

 更新时间:2010年11月19日 19:36:30   作者:  
一个简单的类似title的提示效果,但现实内容可以很丰富,以上js另存为tip.js,下面是使用的demo。
tip.js
复制代码 代码如下:

function tips(obj,tag){
var tip = document.createElement('div'),arg= arguments[2],left,top; //创建tipbox
var bodywid= document.documentElement.clientWidth; //这里也可以替换为容器的宽度$(id).outerWidth();
var abs = obj.getElementsByTagName(tag);
tip.className="tip_bd";
obj.appendChild(tip);
for(var i=0,len=abs.length;i<len;i++){
hover(abs[i],function(){
var content = arg||this.getAttribute('tip'),text;
left = position(this).left,top=position(this).top;
content?tip.innerHTML=content:tip.innerHTML="暂无内容!";
if(left+parseInt(getStyle(tip,'width'))>bodywid) //判断当前位置是否超过最大宽度
text='right:'+(bodywid-left)+'px;left:auto;';
else
text='left:'+(left+this.offsetWidth)+'px;';
text +='top:'+(top+this.offsetHeight)+'px;';
tip.style.cssText=text;
text='';
tip.style.display='block';
},function(){
tip.style.display='none';
});
}
}
function hover(el,fnOver, fnOut){//鼠标滑过函数
addEvent(el,'mouseover',fnOver);
addEvent(el,'mouseout',fnOut);
}
function addEvent(el,type,fn){ //绑定事件
if(el.attachEvent) {
el['e'+type+fn] = fn; //IE下拷贝元素引用,使this指向el对象而不是window
el[type+fn] = function(){el['e'+type+fn](window.event);}
el.attachEvent('on'+type, el[type+fn]);
}else
el.addEventListener(type, fn, false);
}
function position(el){//dom节点的绝对位置
if(el&&el.nodeType == 1)
return {'left':el.getBoundingClientRect().left+document.documentElement.scrollLeft,'top':el.getBoundingClientRect().top+document.documentElement.scrollTop};
}
function getStyle(obj,styleName){//获取当前样式属性
if(obj.currentStyle)//ie
return obj.currentStyle[styleName];
else{ //ff
var $arr=obj.ownerDocument.defaultView.getComputedStyle(obj, null);
return $arr[styleName];
}
}
tips(document.getElementById('tips'),'a');

一个简单的类似title的提示效果,但现实内容可以很丰富,以上js另存为tip.js,下面是使用的demo。
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="copyright" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<title>提示信息框</title>
<link rel="stylesheet" type="text/css" href="style/css/tip.css" />
<style>
#wrap{line-height:22px;padding:20px;}
#tips .tip_bd{border:1px solid green;width:100px;position:absolute;background:#fff;z-index:9999;text-align:center;display:none;}
#tips{border:1px solid #ccc;padding:0 10px;}
</style>
</head>

<body>
<h1>提示信息框</h1>
<br/><br/><br/><br/>
<div id="tips">
阅读了<a href="#" tip="脚本之家">脚本之家</a>今天发布的IT文章《30个提高Web程序执行效率的好经验》,这30条准则对我们web开发是非常有用的,不则是知其然而不知其所<a href="#" tip="脚本之家2">脚本之家</a>以然。下面是我对这些准则的理解和分析,有些有关JS性能的准则,我也测试了它们<a href="#">脚本之家</a>的差异,大家可以下载DEMO页面,如有理解不正确的地方,请大家指教。
</div>
</body>
<script type="text/javascript" src="tips.js"></script>
</html>

相关文章

  • 没有document.getElementByName方法

    没有document.getElementByName方法

    document.getElementByName方法没有document.getElementsByName得到的是标签的数组,下面为大家详细介绍下具体的使用,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • javascript利用控件对windows的操作实现原理与应用

    javascript利用控件对windows的操作实现原理与应用

    假如要发送汉字的聊天框的内容的话,我们也要从windows消息机制下手,先找到聊天消息的句柄(可以利用findwindow函数或者用spy工具哈),然后在找到上面的聊天框的句柄,接着我们就可以想这个句柄发送WM_SETTEXT的消息了
    2012-12-12
  • 利用JavaScript如何查询某个值是否数组内

    利用JavaScript如何查询某个值是否数组内

    这篇文章主要给大家介绍了关于利用JavaScript如何查询某个值是否数组内的相关资料,文中通过示例代码分别介绍了实现该问题的一些解决方法是否可行,需要的朋友可以参考借鉴,下面跟着小编来一起学习学习吧。
    2017-07-07
  • ajaxControlToolkit AutoCompleteExtender的用法

    ajaxControlToolkit AutoCompleteExtender的用法

    昨天在搜索中使用了这个控件,不过不知道为什么在IE中反应比较慢
    2008-10-10
  • 微信小程序wepy框架笔记小结

    微信小程序wepy框架笔记小结

    这篇文章主要介绍了微信小程序wepy框架笔记小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • JavaScript实现事件的中断传播和行为阻止方法示例

    JavaScript实现事件的中断传播和行为阻止方法示例

    这篇文章主要给大家介绍了利用JavaScript实现事件的中断传播和行为阻止的方法示例,文中给出了详细的介绍和示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧。
    2017-01-01
  • 原生JS实现层叠轮播图

    原生JS实现层叠轮播图

    这篇文章主要为大家详细介绍了原生JS层叠轮播图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 原生js实现的金山打字小游戏(实例代码详解)

    原生js实现的金山打字小游戏(实例代码详解)

    这篇文章主要介绍了原生js实现的金山打字小游戏,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 深入浅析javascript立即执行函数

    深入浅析javascript立即执行函数

    在Javascript中,任何function在执行的时候都会创建一个执行上下文,因为为function声明的变量和function有可能只在该function内部,这个上下文,在调用function的时候,提供了一种简单的方式来创建自由变量或私有子function。
    2015-10-10
  • Javascript调用函数方法的几种方式介绍

    Javascript调用函数方法的几种方式介绍

    这篇文章主要介绍了Javascript调用函数方法的几种方式介绍,本文讲解了func()、(function(arg){})(window)、func.bind(sth)()、func.call()、func.apply()等5种方式,需要的朋友可以参考下
    2015-03-03

最新评论