JS+CSS实现一个气泡提示框


Posted in Javascript onAugust 18, 2013

分享一个气泡提示框,练习的技术有:(1)JS响应鼠标的事件;(2)纯CSS制作三角形。

效果这样:
JS+CSS实现一个气泡提示框 
这是html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>气泡对话框</title> 
<script src="myBubbleTooltip.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> 
<style type="text/css"> 
h1{ 
font-size: 60px; 
margin-top: 0; 
font-family: Arial, sans-serif; 
text-shadow: 2px 0px 10px #292929; 
letter-spacing: 0px; 
text-decoration: none; 
color: #DDDDDD; 
} 
div#left{ 
border: 1px solid #CCCCCC; 
width: 200px; 
height: 300px; 
background-color: #EEEEEE; 
float: left; 
margin: 0 0 0 20px; 
} 
div#content{ 
border: 1px solid #CCCCCC; 
width: 600px; 
height: 300px; 
background-color: #EEEEEE; 
float: left; 
margin: 0px 20px; 
} 
div#editor{ 
border: 1px solid #CCCCCC; 
float: left; 
width: 300px; 
height: 300px; 
} 
div#test{ 
border: 2px solid #cccccc; 
width: 400px; 
height: 400px; 
} 
.bubble_tooltip_common{ 
z-index: 1; 
color:#333333; 
width:150px; 
position:absolute; 
display:none; 
border: 1px solid #AAAAAA; 
box-shadow: 0px 0px 10px #AAAAAA; 
border-radius: 5px; 
padding: 5px 10px; 
background-color: #FEFAB8; 
}

/*尖端指向左侧的三角形,外缘*/ 
.triRight{ 
z-index: 2; 
border: 10px solid #AAAAAA; 
border-color: transparent #AAAAAA transparent transparent; 
width: 0; 
height: 0; 
position: absolute; 
left:-20px; 
top: 5px; 
}

<PRE class=html name="code">/*尖端指向左侧的三角形,内部,*/</PRE>.triRightInner{ z-index: 3; border: 8px solid #FEFAB8; border-color: transparent #FEFAB8 transparent transparent;<SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">/*颜色应与提示框的background-color一致*/</SPAN><BR> 
width: 0; height: 0; position: absolute; left:-16px; top:7px;}</style></head><body> <div class="bubble_tooltip_common" id="bubble_tooltip"> <label class="triRight"></label> <label class="triRightInner"></label> <span id="bubble_tooltip_content"></span> </div> 
<h1>气泡对话框</h1> <div id="left"> <p> <span onmouseover="showToolTip(event,'这是一个提示框。')" onmouseout="hideToolTip()">鼠标放于此处,会弹出一个气泡对话框。</span></p> </div> <div id="content"> <p><a href="#" onmouseover="showToolTip(event,'This is the content of the tooltip.')" onmouseout="hideToolTip()">sharejs.com</a></p> 
</div> <div id="editor" contenteditable> [Click to edit.] </div></body></html> 
<PRE></PRE> 
<P></P> 
<P><SPAN style="FONT-FAMILY: Microsoft YaHei; FONT-SIZE: 18px"><STRONG>这是JavaScript代码:</STRONG></SPAN></P> 
<P></P> 
<PRE class=javascript name="code">function showToolTip(e,text){ 
if(document.all)e = event; 
var obj = document.getElementById('bubble_tooltip'); 
var obj2 = document.getElementById('bubble_tooltip_content'); 
obj2.innerHTML = text; 
var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop); 
if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
var leftPos = e.clientX + 20; //clientX 事件属性返回当事件被触发时鼠标指针相对于浏览器页面(或客户区)的水平坐标 
if(leftPos<0)leftPos = 0; 
obj.style.left = leftPos + 'px'; 
obj.style.top = e.clientY + st + 'px'; 
obj.style.display = 'block'; 
fadeIn(obj,5,100); 
} function hideToolTip() 
{ 
var obj = document.getElementById('bubble_tooltip'); 
//obj.style.display = 'none'; 
fadeOut(obj,5,0); 
} 
//设置元素透明度,透明度值按IE规则计,即0~100 
function SetOpacity(ev, v){ 
ev.filters ? ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100; 
} 
//淡入效果(含淡入到指定透明度) 
function fadeIn(elem, speed, opacity){ 
/* 
* 参数说明 
* elem==>需要淡入的元素 
* speed==>淡入速度,正整数(可选) 
* opacity==>淡入到指定的透明度,0~100(可选) 
*/ 
speed = speed || 20; 
opacity = opacity || 100; 
//显示元素,并将元素值为0透明度(不可见) 
elem.style.display = 'block'; 
SetOpacity(elem, 0); 
//初始化透明度变化值为0 
var val = 0; 
//循环将透明值以2递增,即淡入效果 
(function(){ 
SetOpacity(elem, val); 
val += 5; 
if (val <= opacity) { 
setTimeout(arguments.callee, speed) 
} 
})(); 
} 
//淡出效果(含淡出到指定透明度) 
function fadeOut(elem, speed, opacity){ 
/* 
* 参数说明 
* elem==>需要淡入的元素 
* speed==>淡入速度,正整数(可选) 
* opacity==>淡入到指定的透明度,0~100(可选) 
*/ 
speed = speed || 20; 
opacity = opacity || 0; 
//初始化透明度变化值为0 
var val = 100; 
//循环将透明值以5递减,即淡出效果 
(function(){ 
SetOpacity(elem, val); 
val -= 5; 
if (val >= opacity) { 
setTimeout(arguments.callee, speed); 
}else if (val < 0) { 
//元素透明度为0后隐藏元素 
elem.style.display = 'none'; 
} 
})(); 
}</PRE><BR> 
<BR> 
<P></P> 
<PRE></PRE>
Javascript 相关文章推荐
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
jquery实现轮播图效果
Feb 13 Javascript
vue-axios使用详解
May 10 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
React Native预设占位placeholder的使用
Sep 28 Javascript
微信小程序实现弹出菜单功能
Jun 12 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
Oct 29 Javascript
JS中for循序中延迟加载动态效果的具体实现
Aug 18 #Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 #Javascript
JS通过相同的name进行表格求和代码
Aug 18 #Javascript
复选框全选与全不选操作实现思路
Aug 18 #Javascript
将文本输入框内容加入表中的js代码
Aug 18 #Javascript
js css后面所带参数含义介绍
Aug 18 #Javascript
Javascript获取HTML静态页面参数传递值示例
Aug 18 #Javascript
You might like
一个目录遍历函数
2006/10/09 PHP
用PHP连接Oracle数据库
2006/10/09 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
Bootstrap Table使用整理(二)
2017/06/09 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
在django中,关于session的通用设置方法
2019/08/06 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
委托书怎么写
2014/07/31 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python
什么是css原子化,有什么用?
2022/04/24 HTML / CSS
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android