js 追加元素并定位到当前元素位置

在这里插入图片描述

在这里插入图片描述

 * {
      margin: 0;
      padding: 0;
    }

    .box {
      width: 200px;
      height: 200px;
      background-color: cadetblue;
      overflow: auto;
    }

    p {
      height: 150px;
      border: 1px solid red;
    }

  <div class="box" id="box">
    <p onclick="aaa(this)">asdasd</p>
    <p id="pp" onclick="aaa(this)">asdasd</p>
    <button onclick="add(this)" id="btn">add</button>
  </div>
 
    let sqlBox = document.getElementById('box')
    let pp = document.getElementById('pp')

    function aaa(e) {
      let realTop = sqlBox.offsetTop;
      realTop += sqlBox.offsetParent.offsetTop;//父级到页面距离
      sqlBox.scrollTo(0, e.offsetTop - realTop)//减去父级离页面的距离
    }
    function add() {
      // 创建标签
      var para = document.createElement("p");
      // 添加 id 名 panel1
      para.id = "id1"
      // panel1.setAttribute("id","panel1");
      // 添加类名
      para.classList.add("class1");
      para.classList.add("class2");
      // 创建div的css样式
      para.style.cssText = "width:200px;height:200px;background:#CC3399;text-align:center;line-height:220px"
      // 创建文本
      var node = document.createTextNode("添加元素");
      // 标签追加文本
      para.appendChild(node);
      // 获取元素
      var element = document.getElementById("btn");
      // element追加para
      element.before(para);
      setTimeout(() => {//加入队列
      sqlBox.scrollTo(0, para.offsetTop )
        console.log(para.offsetTop);
      });
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值