1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 详解原生JavaScript实现Tooltip浮动提示框特效的图文代码

详解原生JavaScript实现Tooltip浮动提示框特效的图文代码

时间:2019-09-04 03:01:04

相关推荐

详解原生JavaScript实现Tooltip浮动提示框特效的图文代码

web前端|js教程

JavaScript,Tooltip,浮动提示框

web前端-js教程

这篇文章主要为大家详细介绍了原生JavaScript设计和实现Tooltip浮动提示框特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

商城后台管理系统源码下载,vscode写word文档,ubuntu还是wince,tomcat不记日志,房间爬虫,php网页重定向,杭州seo排名软件咨询,php政府网站红色系统,特效很牛的个人网站模板lzw

使用原生JavaScript设计和实现Tooltip浮动提示框特效,了解代码简化、事件绑定、事件冒泡等技巧和知识。

android 源码包,微软平板能下vscode吗,ubuntu资料,jetty部署到tomcat,支持sqlite主机,自动网页设计,kt服务器出租,ppt 3d 插件,aug前端框架,爬虫进行监测,php网易云,排名seo优化按天收费,springboot部署调优,游戏介绍网站模板,html5网页免费模板,物流网站前端模板下载,dedecms后台css修改,响应式的登录页面,考试报名管理系统源码,微信小程序论坛代码lzw

特效四个关键点:

传奇时时彩源码,vscode设置剪切板,ubuntu 缩放窗口,tomcat部署的工程,python原生爬虫,php合并2个数组,seo泛目录怎么操作推广,PHP时钟网站源码,男科医院 响应式 手机模板lzw

显示:鼠标移到ToolTip超链接上时,ToolTip提示框可以显示出来

隐藏:鼠标移开时,ToolTip提示框自动隐藏

定位:ToolTip提示框的位置需要根据ToolTip超链接的位置来设置

可配置:ToolTip提示框可以根据参数不同,改变尺寸和显示内容

注意点:

1)border-radius和 box-shadow兼容写法

2)不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。对应mouseout

只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。对应mouseleave

3)W3C规定不允许内联元素嵌套块级元素 ,其中的a链接嵌套了p,可能不符合W3C标准( tip:他是移入a链接的时候在a链接中创建的p )

简单的函数封装写法(便于引用,缩短代码量):

1)通过元素的id获得元素的DOM引用

var $ = function(id){return document.getElementById(id); }

2)绑定事件的函数

function addEvent(obj,event,fn){ //要绑定的元素对象,要绑定的事件,触发的回调函数if(obj.addEventListener){ //非IE,支持冒泡和捕获obj.addEventListenner(event,fn,false);}else if(obj.attachEvent){ //IE,只支持冒泡obj.attachEvent(on+event,fn);}}

效果如图:

body{ font-size: 14px; line-height: 1.8; background: url("img/bg.jpg") no-repeat center top; font-family: "微软雅黑"; } #demo{ width: 500px; margin: 30px auto; padding: 20px 30px; position: relative; background-color: #fff; border-radius: 10px; -moz-border-radius: 10px;/*这个属性 主要是专门支持Mozilla Firefox 火狐浏览器的CSS属性*/ -webkit-border-radius: 10px;/*苹果;谷歌,等一些浏览器认,因为他们都用的是webkit内核*/ box-shadow: 0px 0px 0px 10px rgba(0,0,0,0.2); -moz-box-shadow: 0px 0px 0px 10px rgba(0,0,0,0.2); -webkit-box-shadow: 0px 0px 0px 10px rgba(0,0,0,0.2); } #demo h2{ color: #03f; } #demo .tooltip{ color: #03f; cursor: help; } .tooltip-box{ display: block; background: #fff; line-height: 1.6; border: 1px solid #66CCFF; color: #333; padding: 20px; font-size: 12px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; overflow: auto; } #mycard img{ float: left; width: 100px; height: 100px; padding: 10px; } #mycard p{ float: left; width: 150px; padding: 0 10px; } window.onload=function(){ //绑定事件的函数function addEvent(obj,event,fn){ //要绑定的元素对象,要绑定的事件,触发的回调函数if(obj.addEventListener){//非IE,支持冒泡和捕获 obj.addEventListener(event,fn,false);}else if(obj.attachEvent){//IE,只支持冒泡 obj.attachEvent(on+event,fn);} } //通过用户代理的方式判断是否是IE的方法,不能判断出IE11 var isIE = navigator.userAgent.indexOf("MSIE") > -1; var $ = function(id){return document.getElementById(id); } var demo = $("demo"); //obj - ToolTip超链接元素 //id - ToolTip提示框id //html - ToolTip提示框HTML内容 //width - ToolTip提示框宽度(可选) //height - ToolTip提示框高度(可选) function showTooltip(obj,id,html,width,height){if($(id)==null){ //创建

xxxxxxxx

var toolTipBox; toolTipBox = document.createElement(p); toolTipBox.className = "tooltip-box"; toolTipBox.id = id; toolTipBox.innerHTML = html; obj.appendChild(toolTipBox); toolTipBox.style.width = width ? width + px:"auto"; toolTipBox.style.height = height ? height + px:"auto"; if(!width && isIE){toolTipBox.style.width = toolTipBox.offsetWidth;//因为IE不支持auto属性 } toolTipBox.style.position = absolute; toolTipBox.style.display = lock; var left = obj.offsetLeft; var top = obj.offsetTop + 20; //当浏览器窗口缩小时不让提示框超出浏览器 if(left + toolTipBox.offsetWidth > document.body.clientWidth){var demoLeft = demo.offsetLeft;left = document.body.clientWidth - toolTipBox.offsetWidth - demoLeft;if(left < 0)left = 0; } toolTipBox.style.left = left + px; toolTipBox.style.top = top + px; addEvent(obj,"mouseleave" ,function(){setTimeout(function(){ $(id).style.display = one;},300); });}else{ //显示 $(id).style.display = lock;} } //事件冒泡addEvent(demo,mouseover,function(e){ var event = e || window.event; var target = event.target || event.srcElement;//IE下,event对象有srcElement属性,但是没有target属性; //Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的 //event.srcElement:表示的当前的这个事件源。 if(target.className == "tooltip"){ var _html; var _id; var _width = 200; switch (target.id){case "tooltip1": _id = "t1"; _html = "中华人民共和国"; break;case "tooltip2": _id = "t2"; _html = "美国篮球职业联赛"; break;case "tooltip3": _id = "t3"; _html = "春晓

春眠不觉晓,

处处闻啼鸟。

夜来风雨声,

花落知多少。

"; _width = 100; break;case "tooltip4": _id = "t4"; _html = ""; _width = 520; break;case "tooltip5": _id = "t5"; _html = "

昵称一定要长

我的简介我的简介

"; _width = 300; break;case "tooltip6": _id = "t6"; _html = ""; _width = 500; break; } showTooltip(target,_id,_html,_width); }}); /* var t1 = $("tooltip1"); var t2 = $("tooltip2"); var t3 = $("tooltip3"); var t4 = $("tooltip4"); var t5 = $("tooltip5"); var t6 = $("tooltip6"); t1.onmouseenter = function () {showTooltip(this, "t1", 中华人民共和国, 200); }; t2.onmouseenter = function () {showTooltip(this, "t2", 美国篮球职业联赛, 200); }; t3.onmouseenter = function () {showTooltip(this, "t3", 春晓

春眠不觉晓,

处处闻啼鸟。

夜来风雨声,

花落知多少。

, 100); }; t4.onmouseenter = function () {showTooltip(this, "t4", \, 520); }; t5.onmouseenter = function () {var _html =

昵称一定要长

我的简介我的简介

;showTooltip(this, "t5", _html, 300); }; t6.onmouseenter = function () {var _html = \showTooltip(this, "t6", _html, 500); };*/ }

原生JavaScript实现ToolTip效果

ToolTip效果是非常常见的网页特效,它可以在用户将指针放置在控件上时为用户显示提示信息。 比如简称文字显示一行文字全称,例:中国, NBA。 又比如显示一段文字,例:唐诗三百首中的春晓你会么?如果不看tooltip提示你背不出来的话,那么你 可要加油了。

ToolTip效果还可以用来显示图片,例:西湖美景。当然显示一块儿带格式的内容也不在话下,例: 我的资料。

甚至你可以显示一整个网站:例:慕课网。

注意好的ToolTip需要考虑样式、效果、页面的边界等信息,希望你可以做出更漂亮的ToolTip效果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。