javascript - 未捕获的 TypeError : scrollIntoView is not a function. 子元素未显示

标签 javascript html

我对“scrollIntoView”有疑问。目前无法正常工作。我正在尝试使具有“active”类的列表项元素可见。有一个固定高度的无序列表,可以容纳多个元素。有些元素不可见,您必须滚动到它们。我正在尝试使用“scrollIntoView()”,但它不起作用。请帮助我。

function _ScrollTopImageNav() {
    var imageElement = document.getElementsByClassName("active");
    imageElement.scrollIntoView({
        behavior: "smooth"
    });
}
ul {
  list-style: none;
  height: 150px;
  overflow-y: auto;
  margin: 30px;
}

ul > li {
  background-color: aqua;
  height: 30px;
  width: 30px;
  display: block;
}

ul > li + li {
  margin-top: 10px;
}

ul > li.active {
background-color: red;
<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li class="active"></li>
</ul>

<a href="#" onclick="_ScrollTopImageNav()"> show element</a>

最佳答案

getElementsByClassName 返回数组,但您需要单个元素,请使用

访问它
imageElement[0].scrollIntoView

另外,some browsers 似乎不支持行为:“smooth”

下面是工作演示

function _ScrollTopImageNav() {
  var imageElement = document.getElementsByClassName("active");
  imageElement[0].scrollIntoView();
}
  ul {
  list-style: none;
  height: 150px;
  overflow-y: auto;
  margin: 30px;
}

ul>li {
  background-color: aqua;
  height: 30px;
  width: 30px;
  display: block;
}

ul>li+li {
  margin-top: 10px;
}

ul>li.active {
  background-color: red;
<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li class="active"></li>
</ul>

<a href="#" onclick="_ScrollTopImageNav()"> show element</a>

关于javascript - 未捕获的 TypeError : scrollIntoView is not a function. 子元素未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57870169/

相关文章:

javascript - $.fn 不是对象

javascript - 循环的现代语法与旧语法

javascript - 对输入值求和并从总计中减去

html - 将标题向左移动,似乎无法弄清楚? (HTML/CSS)

jquery - 如何获取 anchor 标签的文本内容?

html - 如何使用 css 3 保持 flex 的边框

javascript - 如何在 Asp.Net 中加载脚本

javascript - AngularJS,传单。如何从第三方服务动态获取纬度和经度坐标?

javascript - 存储用户稍后可以检索的 JS 变量和 Canvas 数据的替代方法?

html - Font Awesome 意外的底部边距