您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

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

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 JQuery有很多这样的插件,但本文的这个是跟着自己的想法写的,也不知道他人是如何实现的,感兴趣的朋友可以了解下

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;这行代码来停止冒泡。大体就是这样,代码很简单。