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 相关文章推荐
jQuery代码优化 事件委托篇
Nov 01 Javascript
node.js中的socket.io的广播消息
Dec 15 Javascript
js倒计时简单实现方法
Dec 17 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
JavaScript门面模式详解
Oct 19 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
vue请求本地自己编写的json文件的方法
Apr 25 Javascript
js实现微信聊天效果
Aug 09 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
原生JavaScript实现幻灯片效果
Feb 19 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP读取MySQL数据代码
2008/06/05 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
js实现筛选功能
2020/11/24 Javascript
Python3实现生成随机密码的方法
2014/08/23 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
致100米运动员广播稿
2014/02/14 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
2014年大学生工作总结
2014/11/20 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis