scrollintoview块与内联



我注意到scrollIntoView自上次看以来有一些新选项。

blockinline。这两个区别有什么区别?我猜测 {block: "start"}会将元素的顶部与页面顶部对齐,但是我不确定这与inline有什么不同,或者您如何同时使用这两个选项?

block选项决定该元素在其可见祖先的可见区域内将在哪里进行对齐:

  • 使用{block: "start"},该元素在其祖先的顶部对齐。
  • 使用{block: "center"},该元素在其祖先的中间对齐。
  • 使用{block: "end"},该元素在其祖先的底部对齐。
  • 使用 {block: "nearest"},元素:
    • 如果您目前低于祖先,则在其祖先的顶部保持一致。
    • 如果您目前高于祖先,则在其祖先的底部保持一致。
    • 保持原样,如果已经在视图中。

inline选项决定该元素将在其可见祖先的可见区域内水平对齐:

  • 使用{inline: "start"},该元素在其祖先的左侧对齐。
  • 使用{inline: "center"},该元素在其祖先的中心对齐。
  • 使用{inline: "end"},该元素在其祖先的右侧对齐。
  • 使用{inline: "nearest"},元素:
    • 如果您目前在右边,则在其祖先的左侧对齐。
    • 如果您目前在左侧,则在其祖先的右边对齐。
    • 保持原样,如果已经在视图中。

blockinline均可同时使用一个运动中的指定点滚动。

查看以下片段以查看每个片段的作用。

代码:

/* ----- JavaScript ----- */
var buttons = document.querySelectorAll(".btn");
[].forEach.call(buttons, function (button) {
  button.onclick = function () {
    var where = this.dataset.where.split("-");
    document.querySelector("div#a1").scrollIntoView({
      behavior: "smooth",
      block: where[0],
      inline: where[1]
    });
  };
});
/* ----- CSS ----- */
body {
  padding: 500px;
  width: 2000px;
}
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100;
}
div#a1 {
  width: 1000px;
  height: 300px;
  background: url(//www.w3schools.com/css/trolltunga.jpg);
  background-repeat: no-repeat;
}
<!----- HTML ----->
<header>
  <button class="btn" data-where="start-start">T-L</button>
  <button class="btn" data-where="start-center">T-C</button>
  <button class="btn" data-where="start-end">T-R</button>
  <button class="btn" data-where="center-start">C-L</button>
  <button class="btn" data-where="center-center">C-C</button>
  <button class="btn" data-where="center-end">C-R</button>
  <button class="btn" data-where="end-start">B-L</button>
  <button class="btn" data-where="end-center">B-C</button>
  <button class="btn" data-where="end-end">B-R</button>
</header>
<div id = "a1"></div>

相关内容

  • 没有找到相关文章

最新更新