Smooth scroll element in Qzone

var headerOffset = +jQuery("#QZ_Toolbar_Container")
  .css("height")
  .replace(/[^0-9]+/g, "");

var marginTop = +jQuery(".f-single")
  .css("marginTop")
  .replace(/[^0-9]+/g, "");

var offset = headerOffset + marginTop;

var getFirstElementInsideViewport = offset =>
  jQuery(".f-single")
    .filter((index, ele) => ele.getBoundingClientRect().top - 1 > offset)
    .get(0);

function scrollToTargetWithOffset(element, offset) {
  var elementOffsetTop = element.offsetTop;
  var offsetPosition = elementOffsetTop - offset;

  window.scrollTo({
    top: offsetPosition,
    behavior: "smooth"
  });
}

scrollToTargetWithOffset(getFirstElementInsideViewport(offset), offset);  

猜你喜欢

转载自www.cnblogs.com/codworm/p/12588422.html