scrollIntoView方法滚动当前元素,进入浏览器的可见区域

scrollIntoView方法滚动当前元素,进入浏览器的可见区域

el.scrollIntoView(); // 等同于el.scrollIntoView(true)
el.scrollIntoView(false);

//这个title-part元素将以平滑的滚动方式滚动到与视口底部齐平地方(有兼容性问题)
document.querySelector("#part").scrollIntoView({ block: 'end', behavior: 'smooth' })
//这个article-part元素将以平滑的滚动方式滚动到与视口顶部齐平地方(有兼容性问题)
document.querySelector("part").scrollIntoView({ block: 'start', behavior: 'smooth' })
//这个articleMU-part元素将木讷的瞬间滚动到与视口顶部齐平地方(无滚动动画效果)
document.querySelector("#part").scrollIntoView();//默认值就是true,可以不写
//这个titleMU-part元素将木讷的瞬间滚动到与视口底部齐平地方(无滚动动画效果)
document.querySelector("#part").scrollIntoView(false)

scrollIntoView()方法导致整个页面产生偏移

1.使用scrollTop代替scrollIntoView()
var target = document.getElementById("target");
target.parentNode.scrollTop = target.offsetTop;
target.parentNode.scrollTop = target.offsetTop - target.parentNode.offsetTop;
2.
var el = document.querySelector("yourElement");
window.scroll({top: el.offsetTop, behavior: 'smooth'});

添加新节点 DOM上移展现在视口

const listRef = useRef(null);

  useEffect(() => {
    listRef.current = document.querySelectorAll('.widget .dragItem');
  }, [document.querySelectorAll('.widget .dragItem')]);

  const addItem = (add) => {
    add({ url: '', logo: '', name: '' })
    setTimeout(() => {
      let newNode = listRef.current[listRef.current.length - 1];
      newNode.scrollIntoView({ block: "center", behavior: "smooth", inline: "center" })
    },500)
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值