js点击出现悬浮窗效果不使用JQuery插件


Posted in Javascript onJanuary 20, 2014

JQuery有很多这样的插件,但是我们公司不用jquery,没有插件,所以我就试着自己写,我也不知道别人是怎么写的,纯粹是按着自己的想法来的。

直接上代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Demo</title> 
<script type="text/javascript"> 
window.onload = function(){ 
var btn = document.getElementsByTagName('button')[0]; 
var flt = document.getElementsByTagName('div')[0]; 
btn.onclick = function(){ 
event.cancelBubble = true; 
var x = btn.offsetLeft - 15 + 'px'; 
var y = btn.offsetTop - 100 + 'px'; 
flt.style.top = y; 
flt.style.left = x; 
flt.style.display = 'block'; 
} 
document.onclick = function(){ 
flt.style.display = 'none'; 
} 
} </script> 
<style type="text/css"> 
*{ 
margin: 0px; 
padding: 0px; 
} 
div{ 
width: 60px; 
height: 100px; 
background: #33ccff; 
display: none; 
position: absolute; 
} 
div ul{ 
text-align: center; 
} 
div li{ 
list-style-type: none; 
} 
button{ 
top: 300px; 
left: 400px; 
position: absolute; 
} 
</style> 
</head> 
<body> 
<button id="btn">Click</button> 
<div> 
<ul id="nav"> 
<li class="item1"><a href="">Demo 1</a></li> 
<li class="item2"><a href="">Demo 2</a></li> 
<li class="item3"><a href="">Demo 3</a></li> 
<li class="item4"><a href="">Demo 4</a></li> 
<li class="item5"><a href="">Demo 5</a></li> 
</ul> 
</div> 
</body> 
</html>

复制到本地就可以测试了。

这里要说一下cancelBubble这两个东西。因为我做的效果是点击按钮就显示div,点击页面的任意位置div就消失,但javascript的冒泡机制是button获得一个onclick事件后,往上冒泡,dom在获得一个onclick事件,这样的话就和让div消失的onclick事件冲突了,所以需要event.cancelBubble = true;这行代码来停止冒泡。大体就是这样,代码很简单。

Javascript 相关文章推荐
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
JQuery入门—编写一个简单的JQuery应用案例
Jan 03 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
jQuery实现自定义右键菜单的树状菜单效果
Sep 02 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
JavaScript数据结构中串的表示与应用实例
Apr 12 Javascript
node.js学习之事件模块Events的使用示例
Sep 28 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
javascript实现简易聊天室
Jul 12 Javascript
使用vue实现通过变量动态拼接url
Jul 22 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 #Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 #Javascript
js取值中form.all和不加all的区别介绍
Jan 20 #Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 #Javascript
引用外部脚本时script标签关闭的写法
Jan 20 #Javascript
用jquery写的一个万年历(自写)
Jan 20 #Javascript
js控制input框只读实现示例
Jan 20 #Javascript
You might like
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python自动zip压缩目录的方法
2015/06/28 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
如何使用Pytorch搭建模型
2020/10/26 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
生日派对邀请函
2014/01/13 职场文书
医生进修自我鉴定
2014/01/19 职场文书
保护环境倡议书300字
2014/05/19 职场文书
上海世博会口号
2014/06/19 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python