美文网首页
制作点击按钮触发浮层

制作点击按钮触发浮层

作者: zhangyuwen | 来源:发表于2018-04-03 22:10 被阅读0次

1.做到点击按钮开启浮层

$("#favorite").on('click', function() {
    $("#popover").show()
})

2.做到点击按钮开启浮层,再次点击关闭浮层

$("#favorite").on('click', function() {
  if (popover.style.display == 'block') {
    $("#popover").hide()
  } else {
    $("#popover").show()
  }
})

3.做到点击别处关闭浮层

function listenToDocument() {
  $(document).on('click', function(e) {
    if (e.target === $('html')[0]) {
      $popover.hide()
        // 只在浮层出现时监听,节约资源
      $(document).off('click', arguments.callee)
    }
  })
}

4.最终做到
-点击按钮弹出浮层
-点击别处关闭浮层
-点击浮层时,浮层不得关闭
-再次点击按钮,浮层消失点击按钮弹出浮层

最终代码

let $favorite = $("#favorite")
let $popover = $("#popover")

$favorite.on('click', function(e) {
  if (popover.style.display == 'block') {
    $popover.hide()
  } else {
    $popover.show()
    listenToDocument()
  }
})

function listenToDocument() {
  $(document).on('click', function(e) {
    if (e.target === $('html')[0]) {
      $popover.hide()
        // 只在浮层出现时监听,节约资源
      $(document).off('click', arguments.callee)
    }
  })
}

以下为HTML

<!DOCTYPE html>
<html>

<head>
  <script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>

<body>
  <div class="navbar">
    <button id="favorite">
      收藏夹
    </button>
    <div id="popover" class="popover">
      <ul>
        <li>百度一下</li>
        <li>谷歌一下</li>
        <li>Bing一下</li>
      </ul>
    </div>
  </div>
</body>

</html>

css

* {
  margin: 0;
  padding: 0;
}
.navbar {
  position: relative;
  display: inline-block;
  left: 100px;
  top: 100px;
}
.popover {
  position: absolute;
  border: 1px solid black;
  left: 0;
  top: 100%;
  white-space: nowrap;
  display: none;
}
ul li {
  list-style-type: none;
  margin: 5px;
}
li:hover {
  background-color: #e5dbdb;
}

相关文章

  • 制作点击按钮触发浮层

    1.做到点击按钮开启浮层 2.做到点击按钮开启浮层,再次点击关闭浮层 3.做到点击别处关闭浮层 4.最终做到-点击...

  • 触发 / 关闭浮层

    实现功能:点击按钮触发浮层,点击别处关闭浮层。 html 代码: 部分 css 代码: 1. 方案一 --- 用 ...

  • 从“点击别处关闭浮层”了解事件传播机制

    写出一个点开浮层、关闭浮层的例子,要求:1)点击按钮弹出浮层2)点击别处关闭浮层3)点击浮层时,浮层不得关闭4)再...

  • 点击别处关闭浮层

    需求:点击button出现浮层,点击别处关闭浮层。我们有一个按钮和一个浮层,浮层内为一个checkbox,浮层默认...

  • JS 实现全屏效果

    点击按钮触发 requestFullscreen() 函数打开全屏 点击按钮触发 exitFullScreen()...

  • 1.点击穿透问题:

    1.点击穿透问题:点击蒙层(mask)上的关闭按钮,蒙层消失后发现触发了按钮下面元素的click事件。蒙层的关闭按...

  • 移动端点击穿透问题解决

    1.点击穿透问题: 1.点击穿透问题:点击蒙层(mask)上的关闭按钮,蒙层消失后发现触发了按钮下面元素的clic...

  • vue事件修饰符 数据绑定与css样式

    事件修饰符 点击按钮先出发按钮的点击事件再触发div的点击事件,这就是事件冒泡 .stop阻止冒泡,点击按钮只触发...

  • 点击别处关闭浮层(对DOM冒泡的深入理解)

    如果JS不加 点击点我按钮浮层不能显示,因为根据DOM冒泡模型,一旦点击了clickMe的button按钮,则它的...

  • Hera框架小程序 调用api流程分析

    第一步:触发view层点击事件 点击获取手机系统信息按钮首先调用了Page中的js方法,把事件传递到native层...

网友评论

      本文标题:制作点击按钮触发浮层

      本文链接:https://www.haomeiwen.com/subject/jqqhhftx.html