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 相关文章推荐
javascript replace方法与正则表达式
Feb 19 Javascript
JS 字符串连接[性能比较]
May 10 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
Aug 18 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
jquery实现的table排序功能示例
Mar 10 Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
Jan 07 Javascript
Vue路由 重定向和别名的区别说明
Sep 09 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
js用闭包遍历树状数组的方法
2014/03/19 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
Python 错误和异常小结
2013/10/09 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
教师自我评价范例
2013/09/24 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
企业培训简报范文
2015/07/20 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书