JavaScript 浮动定位提示效果

本来想做一个集合浮动定位和鼠标跟随的tooltips效果,但发现定位和鼠标跟随在一些关键的地方还是不同的,还是分开来吧。
这个效果本身难度不大,主要在程序结构和扩展中下了些功夫,务求用起来更方便,能用在更多的地方。

效果预览


水平位置:
垂直位置:

自定义定位: left: top:

执行方式:

转载请注明出处:http://www.cnblogs.com/cloudgamer/

如有任何建议或疑问,欢迎留言讨论。

如果觉得文章不错的话,欢迎点一下右下角的推荐。

程序中包含的js工具库CJL.0.1.min.js,原文在这里

对广告有兴趣的也欢迎点一下^_^。

cloudgamer
关注 - 7
粉丝 - 149
6
1
(请您对文章做出评价)
« 上一篇:JavaScript Table行定位效果
» 下一篇:JavaScript 多级联动浮动菜单 (第二版)
posted @ 2009-07-07 08:23 cloudgamer 阅读(20355) 评论(50) 编辑 收藏 所属分类: Javascript

 回复 引用   
#1楼2009-07-07 08:27 | airy[未注册用户]
沙发,
又见楼主的招牌般美女。
学习了

 回复 引用 查看   
#2楼2009-07-07 08:33 | YJJ      
不错不错
 回复 引用 查看   
#3楼2009-07-07 08:40 | 往事随锋      
楼主很强啊,不错
 回复 引用 查看   
#4楼2009-07-07 08:47 | 菌哥      
不错!
 回复 引用   
#5楼2009-07-07 08:50 | iiduce[未注册用户]
又见cloudgamer大作,拜读。

---------------------------------------
关注Web前端开发's Blog----http://css9.net

 回复 引用 查看   
#6楼2009-07-07 08:50 | Gnie      
不错!
 回复 引用 查看   
#7楼2009-07-07 09:02 | winter-cn      
赞一个
 回复 引用 查看   
#8楼[楼主]2009-07-07 09:10 | cloudgamer      
@winter-cn
@Gnie
@iiduce
@菌哥
@往事随锋
@YJJ
@airy
谢谢支持

 回复 引用 查看   
#9楼2009-07-07 09:15 | 平静中的疯狂      
确实很强,每次都带来很实用的东西,赞一个
 回复 引用 查看   
#10楼2009-07-07 09:20 | Freewind      
IE6 下,显示在select下面
 回复 引用 查看   
#11楼[楼主]2009-07-07 09:25 | cloudgamer      
@Freewind
确实,测试时好像没问题,我先看看

@平静中的疯狂
谢谢支持


 回复 引用 查看   
#12楼2009-07-07 09:54 | Biny      
效果虽然很简陋,但能将原理讲得清清楚楚,明明白白,不是一件容易的事情。而博主在每篇文章中都做到了,佩服。教程由浅入深,讲得条理分明,真是不可多得的好文章,收藏下来慢慢看!
 回复 引用 查看   
#13楼[楼主]2009-07-07 10:07 | cloudgamer      
@Biny
呵呵
谢谢

 回复 引用 查看   
#14楼[楼主]2009-07-07 10:34 | cloudgamer      
@Freewind
是博客的问题
它把我插入iframe的代码自动替换了
现在可以了

 回复 引用 查看   
#15楼2009-07-07 11:18 | 阿涛007      
博主向你学习了。
 回复 引用 查看   
#16楼2009-07-07 11:20 | 阿涛007      
请问楼主这些是你个人写的吗?我怎样才能达到你这样的水平哪,呵呵,学习。
 回复 引用 查看   
#17楼[楼主]2009-07-07 11:23 | cloudgamer      
@阿涛007
这个东西也没复杂到要多人合作吧
呵呵
也就多看多练咯

 回复 引用   
#18楼2009-07-07 13:17 | 啊空[未注册用户]
楼主你好,偶现在被JavaScript那看似简单实则深奥的语言说折服了。楼主的博客里的例子我研究了2天2夜,通宵达旦的。但是里面几乎每个例子都用了面向对象的方法写的,如Array.prototype.slice.call(arguments).slice(2);等等,还有call 啊,apply 云云。。说真的,这些高级属性或者说高级技巧,我都逐一得搜索过,但是学习起来还是很吃力的,楼主能否开个帖子,专门就这些实用的但是又晦涩难懂的语法或者说是写法给逐个地分析呢??因为这太重要了,n多很好的例子都这么写,想好好研究都被气得想哭了,就像嘴边的肉,想啃,但是又肯不到。。。。真的希望楼主能写篇文章,专门对这些问题逐一解答。。。真的谢谢了...
 回复 引用 查看   
#19楼[楼主]2009-07-07 13:52 | cloudgamer      
@啊空
这些内容应该不会找不到吧
例如baidu找Array.prototype.slice.call就有一大堆了
我也想过写一篇关于这些东西,但因为基本我每次写都有新的东西
我自己对这些也只是学习之中

 回复 引用 查看   
#20楼2009-07-07 14:29 | vincent_赵      
楼主太强啦,学习了,每次的文章都把原理写得清清楚楚,JS大牛啊~
 回复 引用 查看   
#21楼2009-07-07 15:12 | winter-cn      
我每次看到你在这里发一篇 就去51js登录下等着加精 嘿嘿
 回复 引用 查看   
#22楼[楼主]2009-07-07 15:19 | cloudgamer      
@winter-cn
谢谢,不过我总感觉这个肯定还有bug等大家来发现

@vincent_赵
谢谢支持

 回复 引用   
#23楼2009-07-07 16:34 | 剑无名[未注册用户]
太精彩了!不但能学到技术,还能学到设计思路,博主你真是个好人!
 回复 引用 查看   
#24楼[楼主]2009-07-13 18:00 | cloudgamer      
@剑无名
谢谢支持

 回复 引用   
#25楼2009-07-20 01:44 | 酷旭网[未注册用户]
谢谢了。给我很大的帮助
 回复 引用 查看   
#26楼2009-07-20 21:01 | 刘姿廷      
真是谢谢啦,最近刚好需要做个这样的功能,楼主真是强大啊!!!代码我就先拿回去研究了,如果还有不懂还得请教您呢,呵呵。。。谢谢啦。。
 回复 引用   
#27楼2009-07-25 13:26 | 叶志雄[未注册用户]
楼主讲得太详细了,对于新手的学习非常有帮助
 回复 引用   
#28楼2009-08-04 12:59 | chxizi[未注册用户]
太精彩了!不但能学到技术,还能学到设计思路,博主你真是个好人!
 回复 引用   
#29楼2009-08-05 20:44 | 潘凯[未注册用户]
楼主,最近在学习用JS画图形。我想画条直线并且带有箭头,在网上找了很久,发现了这个代码
(x0,y0)是起点坐标,(x1,y1)是终点坐标,(xa,ya)、(xb,yb)就是箭头坐标,这个代码怎么解释?是不是数学公式?
var d = Math.sqrt((y1 - y0) * (y1 - y0) + (x1 - x0) * (x1 - x0));
var Xa = x1 + 10 * ((x0 - x1) + (y0 - y1) / 2) / d;
var Ya = y1 + 10 * ((y0 - y1) - (x0 - x1) / 2) / d;
var Xb = x1 + 10 * ((x0 - x1) - (y0 - y1) / 2) / d;
var Yb = y1 + 10 * ((y0 - y1) + (x0 - x1) / 2) / d;
draw.drawLine(x1, y1, Xa, Ya);
draw.drawLine(x1, y1, Xb, Yb);

 回复 引用 查看   
#30楼[楼主]2009-08-05 21:50 | cloudgamer      
@chxizi
@叶志雄
@刘姿廷
@酷旭网
谢谢支持

 回复 引用 查看   
#31楼[楼主]2009-08-05 21:59 | cloudgamer      
@潘凯
估计是了
d显然就是用三角公式求坐标距离啦
下面的就不了解了

 回复 引用   
#32楼2009-08-31 09:08 | Vipwan[未注册用户]
收藏了 回头仔细研究下
 回复 引用   
#33楼2009-10-12 17:38 | 喜欢高手[未注册用户]
博主如此程序居然没支持提示内容里的HTML代码?可惜可惜,希望加上啊。。。。
 回复 引用 查看   
#34楼[楼主]2009-10-12 17:52 | cloudgamer      
@喜欢高手
提示内容里的HTML?
什么意思呢,提示层其实就是一个div,里面的html可以自己设置

@Vipwan
谢谢支持

 回复 引用   
#35楼2009-10-12 18:12 | 喜欢高手[未注册用户]
引用喜欢高手:博主如此程序居然没支持提示内容里的HTML代码?可惜可惜,希望加上啊。。。。

也许是我自己不会用,还没调好,原理讲了很多,但是对JS不太懂的人来说,还是怎么用最重要。。。。
调用的时候要一堆JS代码,怎么用又没怎么讲。。。难难难。。希望博主把怎么用详细讲讲,不要一带而过。最好每种示例分开,这样新手即使不太会用,依葫芦画票也就能用起来了。博主写代码的目的不就是人用的么,呵呵

 回复 引用 查看   
#36楼[楼主]2009-10-12 23:49 | cloudgamer      
@喜欢高手
如果哪里没看懂或不明白我可以说明,有什么建议就更好
我主要还是研究怎么写而不是怎么用

 回复 引用   
#37楼2009-10-13 00:22 | 喜欢高手[未注册用户]
知道高手忙得。。。
怎么说呢,对一个不懂JS的人来说什么都难的很啊。。。
研究到现在总算大致摸出了idTest1和idTest2的用法,其实还是去掉用不了的代码,依葫芦画票而已了,呵呵。只是还是不太明白”第二个可选参数用来设置触发对象属性的统一默认值。“这个怎么弄得,另外怎么分开设置每个对象比如idTest1和idTest2的什么对齐,延迟等参数也不是很明白
实在是不懂JS,没办法啊。。。。。。

 回复 引用   
#38楼2009-10-13 02:23 | 喜欢高手[未注册用户]
其怪的错误,定义个id为idTest2的table,每行或者每列1张图片,但是只有第一行的或者第一列的可以出现tips,其他的没有,而且IE8下报错addEventListener为空或不是对象。。。。。。
奇怪的是在我的有些页面上又不报错,反而做了个最简单的表格加图片却报错,自己又看不出什么问题,见鬼,。。。。

 回复 引用 查看   
#39楼[楼主]2009-10-13 08:28 | cloudgamer      
@喜欢高手
我文章的定位就是有一定js基础的
否则要把每个细节都写清楚的话可能写几篇都写不完
至于那说的那个错误你可以把代码email给我看看

 回复 引用   
#40楼2009-10-13 11:17 | 喜欢高手[未注册用户]
呵呵,虽然没JS基础,但是我应该找到报错的原因了,但是我不会改。。。不过对我这样JS白痴来说,能看出原因已不易了,还是希望老大在示例里补充一下吧
我估计原因是id为idTest2的table,里面我除了<a href="..."><img ....></a>这样图片带连接外,还加了<a href="...">....</a>这样没有图片的连接,而forEach($$("idTest2").getElementsByTagName("a"), function(o){....}这里面没有加入没有<img..>这样连接的判断,所以报错了,是不是可以在forEach($$("idTest2").getElementsByTagName("a"), function(o){....}里面加个if..else...的判断,遇到<a href="..."><img ....></a>就用有图片的处理,遇到<a href="...">....</a>就用没有图片的连接提示处理,就不会报错了把,而且一个table里只有图片连接的情况并不多,希望老大在示例里补充一下吧,造福广大菜鸟,谢谢

 回复 引用 查看   
#41楼[楼主]2009-10-13 11:40 | cloudgamer      
@喜欢高手
1,o.getElementsByTagName("img")判断有无图片
2, $$("idTest2").getElementsByTagName("img")然后o.parentNode判断是不是a

 回复 引用   
#42楼2009-10-13 18:42 | 喜欢高手[未注册用户]
不太懂的,呵呵
自己用了个笨办法if(img=="[object]"||img=="[object HTMLImageElement]"){.....}else{...}还算是弄好了
不过还是希望老大多多照顾下菜鸟们吧,如果中国人的导弹卫星上的元器件都必须自己搞懂,自己造出来,恐怕到现在中国人还没导弹卫星的。。。毕竟很多时候都是需要拿来用而已。。。。特别对于我这样的业余爱好者,研究这段程序的用法就用了至少10个小时了,总算能用用了,东西肯定是好东西的

 回复 引用 查看   
#43楼[楼主]2009-10-13 21:59 | cloudgamer      
@喜欢高手
说实话我已经写得够详细的了
你有看到其他人有写效果还写这么详细的原理分析的么
而且基础的东西还是自己学吧

 回复 引用 查看   
#44楼2010-01-24 21:28 | 醉春风      
楼主的前端做的很好。
 回复 引用 查看   
#45楼2010-05-28 13:56 | know@more      
第一次踩楼主的空间,发现好东西不少,就毫不客气的一下子下载了好几个测试应用..., 楼主真的很强,至少js这方面研究的比较深,强顶!本人做.net开发,QQ:1030365071
 回复 引用 查看   
#46楼[楼主]2010-05-28 15:26 | cloudgamer      
@醉春风
@know@more
谢谢支持

 回复 引用   
#47楼2010-06-01 20:26 | 郑州房产网[未注册用户]
前端大牛啊!无限佩服中
收藏您的博客了

 回复 引用 查看   
#48楼2010-06-22 09:35 | VIC豆丁      
太好了,我找了好久。谢谢分享!
 回复 引用 查看   
#49楼[楼主]2010-06-22 10:26 | cloudgamer      
@郑州房产网
@VIC豆丁
谢谢支持

 回复 引用   
#50楼2010-08-09 21:25 | 卡泽西[未注册用户]
楼主你好,我第一次接触代码这东西,因为开网店需要,所以要研究一下,装修装修店铺,我下载了您所有的代码,但是不会改,像这个鼠标放上去,有粉色透明的定位,能不能改成蓝色,或其他颜色或形状,请赐教,肯定要你见笑了, 我连菜鸟都是不是,但是我有兴趣学,希望能与你沟通,请联系我的邮箱,期待中!
 回复 引用 查看   
#51楼[楼主]2010-08-09 22:02 | cloudgamer      
@卡泽西
这个还是学习基础的东西吧