javascript - 如何使用 CSS/JS 滚动到特定元素

标签 javascript html css scroll

这是伪代码。我的要求是,当我单击最后一个 li 元素时,将显示其中的一个 hidden div。但我需要向下滚动 到它看见。 所以当我用 id=hello 点击 li 时,窗口应该自动向下滚动到那个 div?

首选使用 CSS,然后是 JS,不使用 jQuery。

var ele=document.getElementById('hello');


ele.addEventListener("click", function (event) {
    document.getElementById("hidden-div").style.display="block";
},false);
.fixed-height-div{
 height:120px;
 overflow-y:scroll;
}

.fixed-height-div > li{
    background-color:lightblue;
    list-style-type: none;
}
<div class="fixed-height-div">
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
  <li>E</li>
  <li>F</li>
  <li>G</li>
  <li id="hello">H
      <div id="hidden-div" style="display:none;">
          This should be displayed after click<br><br>
          And the scroll should come to this screen.
       </div>
    </li>

最佳答案

在显示/展开隐藏的 div 之后,调用 li 元素的 scrollIntoView 函数 这不需要 jQuery。

function showIt(elementId) {
    var el = document.getElementById(elementId);
    el.scrollIntoView(true);
}

有关更多信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView

关于javascript - 如何使用 CSS/JS 滚动到特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26773423/

相关文章:

javascript - 是否可以在一个 asp.net mvc View 中有两个模型

javascript - 如何从 nodeList 获取元素?如何使用byTagname/ByClassName?

javascript - 基本 Ajax POST 发送值在 Controller 中到达 null

javascript - 接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足

html - :valid ~ label is not working, 输入 html 元素无效但按原样注册

html - <sections> 应该有 <articles> 还是 <articles> 应该有 <sections>?

CSS 圆旋转/增长过渡,文本从外面开始

jquery - 创建 jQuery cookie、存储 css 主体颜色值、更改页面、检索 cookie 并将主体颜色值应用于新页面

javascript - 使用 React.js 插入 MongoDB 文档

javascript - 检测浏览器语言并将其与 i18next 一起使用时遇到问题