scroll方法

80 阅读1分钟
    // Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区 
    使用方法: dom.scrollIntoView()

    // 跳转至当前元素元素
    scrollTo(currentEle, containerSelector) {
      function getEleOffsetTop(currentEle, containerEle, offsetTop) {
        if (currentEle === containerEle) {
          return offsetTop
        }
        offsetTop += currentEle.offsetTop
        return getEleOffsetTop(
            currentEle.offsetParent,
            containerEle,
            offsetTop
        )
      }
      const containerEle = document.querySelector(containerSelector) // 容器元素
      const containerHeight = containerEle.offsetHeight; // 容器高度
      const currentEleOffetTop = getEleOffsetTop(currentEle, containerEle, 0) // 当前元素相对于容器元素位置

      // 如果当前元素处于视野范围内,不进行重新定位
      if (currentEleOffetTop > containerEle.scrollTop && currentEleOffetTop +150 < (containerEle.scrollTop + containerHeight)) return
      }
      containerEle.scrollTop = currentEleOffetTop - containerHeight * 0.3
    }


    // 根据类名获取元素
    ele.classList.contains('select-root')