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 17 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
javascript如何判断输入的url是否正确
Apr 11 Javascript
浅谈js的异步执行
Oct 18 Javascript
React Native实现进度条弹框的示例代码
Jul 17 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
node中IO以及定时器优先级详解
May 10 Javascript
JavaScript实现简单计算器
Mar 19 Javascript
js实现有趣的倒计时效果
Jan 19 Javascript
原生JavaScript实现换肤
Feb 19 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 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
用PHP实现WEB动态网页静态
2006/10/09 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python tkinter模版代码实例
2020/02/05 Python
python 安装impala包步骤
2020/03/28 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
局域网标准
2016/09/10 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
小学家长会邀请函
2014/01/23 职场文书
小学教师听课制度
2014/02/01 职场文书
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android