div固定宽高实现上下左右居中,内外两个div点击事件(内部点击事件影响外部div点击事件)

1,div固定宽高实现上下左右居中

body中的代码

  <body>
    <div id="btn-focus">
      <!-- <div id="two"></div> -->
    </div>
  </body>

样式代码:三种方法,当然还有其他方法

      #btn-focus {
        width: 100px;
        height: 100px;
        background-color: #a05757;
        /*方法一 */
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -50px;
        margin-top: -50px;
        /* 方法二 */
        /* position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); */
        /* 方法三 */
        /* position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto; */
      }

实现固定宽高元素在body或者其他div中上下左右居中。

2,两个div,一个大div一个小div,重叠,点击小div时也会触发大div的点击事件。

解决办法:1,使用点击事件的自带函数e.stopPropagation();2,也是利用event中属性进行判断

代码:

      #btn-focus {
        width: 100px;
        height: 100px;
        background-color: #a05757;
      }

      #two {
        width: 50px;
        height: 50px;
        background-color: #100101;
        z-index: 99999;
      }

  <body>
    <div id="btn-focus">
      <div id="two"></div>
    </div>
  </body>

方法1: 

    var btnFocus = document.getElementById("btn-focus");
    btnFocus.onclick = function () {
      console.log("12");
    };
    var btn2 = document.getElementById("two");
    btn2.onclick = function (e) {
      //使用e.stopPropagation()方法阻止冒泡
      e.stopPropagation();
      console.log("222");
    };

方法2:

var btnFocus = document.getElementById("btn-focus");
    btnFocus.onclick = function (e) {
      //第二种方法,判断在那个区域
      if (e.target.id == "btn-focus") {
        console.log("外");
      } else {
        console.log("内");
      }
    };
var btn2 = document.getElementById("two");
    btn2.onclick = function () {
      console.log("222");
    };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值