Element.scrollIntoView() 和 document.elementFromPoint ()
Element.scrollIntoView()
element.scrollIntoView(); // 等同于element.scrollIntoView(true) element.scrollIntoView(alignToTop); // Boolean型参数 /* alignToTop: 一个Boolean值: 如果为true,元素的顶端将和其所在滚动区的可视区域的顶端对齐。 相应的 scrollIntoViewOptions: {block: "start", inline: "nearest"}。 这是这个参数的默认值。 如果为false,元素的底端将和其所在滚动区的可视区域的底端对齐。 相应的scrollIntoViewOptions: {block: "end", inline: "nearest"}。 */
Document.elementFromPoint(x, y)
demo

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> html, body { margin: 0; padding: 0; width: 100%; height: 100%; } ul, li { margin: 0; padding: 0; list-style-type: none; } .list-content { width: 100%; position: relative; font-size: 14px; } .sublist-alphabet { position: fixed; width: 14px; right: 14px; top: 28px; } .sublist-alphabet li { width: 14px; height: 14px; line-height: 14px; text-align: center; border-radius: 50%; margin: 5px 0; } .main-content li { width: 100%; margin: 10px; font-size: 16px; } .main-content li div { width: 100%; height: 20px; line-height: 20px; } .main-content li div ~ div { border-top: 1px solid red; } .sublist-alphabet .active { color: rgb(235, 17, 119); background-color: #ccc; } .main-content .active { background-color: aqua; } </style> </head> <body> <div class="list-content"> <!-- 字母表 --> <ul class="sublist-alphabet"> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> <li>f</li> <li>g</li> </ul> <!-- 内容列表 --> <ul class="main-content"> <li> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> <div>aaaaaaaaaaaaaaaaa1</div> <div>aaaaaaaaaaaaaaaaa2</div> <div>aaaaaaaaaaaaaaaaa3</div> </li> <li data-type="b"> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> <div>bbbbbbbbbbbbbbbbb1</div> <div>bbbbbbbbbbbbbbbbb2</div> <div>bbbbbbbbbbbbbbbbb3</div> </li> <li data-type="c"> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> <div>ccccccccccccccccc1</div> <div>ccccccccccccccccc2</div> <div>ccccccccccccccccc3</div> </li> <li data-type="d"> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> <div>ddddddddddddddddd1</div> <div>ddddddddddddddddd2</div> <div>ddddddddddddddddd3</div> </li> <li data-type="e"> <div>eeeeeeeeeeeeeeeee1</div> <div>eeeeeeeeeeeeeeeee2</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee1</div> <div>eeeeeeeeeeeeeeeee2</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> <div>eeeeeeeeeeeeeeeee3</div> </li> <li data-type="f"> <div>fffffffffffffffff1</div> <div>fffffffffffffffff2</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> <div>fffffffffffffffff3</div> </li> <li data-type="g"> <div>ggggggggggggggggg1</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg2</div> <div>ggggggggggggggggg3</div> </li> </ul> </div> <script> let list = document.querySelectorAll('.sublist-alphabet li') let contentList = document.querySelectorAll('.main-content li') list.forEach((item, index) => { list[index].onclick = () => { const lastIndex = sessionStorage.getItem('lastIndex') || '' if(lastIndex) { contentList[lastIndex].classList.remove('active') list[lastIndex].classList.remove('active') } contentList[index].scrollIntoView(true) contentList[index].classList.add('active') list[index].classList.add('active') sessionStorage.setItem('lastIndex', index) } }) </script> </body> </html>
Element.scrollIntoView() 和 document.elementFromPoint ()的更多相关文章
- Element.scrollIntoView()
Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内 语法 element.scrollIntoView(); element.scrollIntoView( ...
- js的Element.scrollIntoView的学习
1.Element.scrollIntoView() 该方法让当前元素滚动到浏览器窗口的可是区域内: 2.语法: element.scrollIntoView();//等同于element.sc ...
- document.elementFromPoint在IE8下无法稳定获取当前坐标元素的解决方法
document.elementFromPoint(e.clientX, e.clientY) document.elementFromPoint(e.clientX, e.clientY) 执行2次 ...
- 元素在当前窗口可视的区域---Element.scrollIntoView()
element.scrollIntoView(); // 等同于element.scrollIntoView(true) element.scrollIntoView(alignToTop); // ...
- cvc-elt.1: Cannot find the declaration of element 'beans'Failed to read schema document 'http://www.springframework.org/schema/beans/spring- beans-3.0.xsd'
Multiple annotations found at this line: - cvc-elt.1: Cannot find the declaration of element 'beans' ...
- javascript高级程序设计---document节点
document节点是文档的根节点,每张网页都有自己的document节点,window.document就是指向这个节点.只要浏览器开始载入文档,这个节点就开始了 对于HTML文档来说,docume ...
- (88)Wangdao.com第二十一天_JavaScript 元素节点Element 节点
Element 节点 (元素节点) 是一组对象 对应网页的 HTML 元素 每一个 HTML 元素,在 DOM 树上都会转化成一个 Element 节点对象(以下简称元素节点) 所有元素节点的 nod ...
- (87)Wangdao.com第二十天_JavaScript document 节点对象
document 节点对象, 代表整个文档,每张网页都有自己的 document 对象. window.document 当浏览器开始加载文档时就存在了 正常的网页使用 document 或者 win ...
- scrollIntoView()的用法
scrollIntoView是一个与页面(容器)滚动相关的API(官方解释),该API只有boolean类型的参数能得到良好的支持(firefox 36+都支持),所以在这里只讨论参数Boolean类 ...
随机推荐
- 几款Java模板引擎的性能评测
参评的几款模板引擎为:XMLTemplate(简称XT)Velocity(简称VT)CommonTemplate(简称CT)FreeMarker(简称FT)Smarty4j(简称ST)直接的java代 ...
- sqlserver数据库查询
帮助类 using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; ...
- Xeon 第一次训练赛 苏州大学ICPC集训队新生赛第二场(同步赛) [Cloned]
A.给出一个字符串,求出连续的权值递增和,断开以后权值重新计数,水题 #include<iostream> #include<string> #include<cmath ...
- Jquery制作插件---内容切换
//需求:点击左右导航箭头,实现内容的切换 //代码如下 <!DOCTYPE html> <html lang="en"> <head> < ...
- SpringBoot邮件推送功能
鞠躬,道歉 抱歉,迟到了近一年的更新,这一年挺忙的,发生了很多事情,就厚脸皮拖更了,抱歉. 现在状态回来了,打算分享下近期学到的东西,这一年期间学到的东西可能会随意更新,其实也就是玩了下C# + un ...
- 如何使用linux查看tomcat日志
- 认识json,详解JsonConfig
说到json 初学者很迷茫,不知json怎么为何物,以及怎么用.我简单说下我的了解 既然用了json 我们就要知其然也知其所以然.下面有几个疑问 1.为什么要用json?也就是json 的优势 2.我 ...
- 创建一个TCP代理
代理技术 代理一般被我们用于"穿墙",具体来说可以看这里,或者查wiki.理解代理背后的原理之后,便很容易知道,代理的作用不仅仅只是"穿墙".例如我们可以把经过 ...
- Linux添加虚拟内存 && 修改Linux系统语言
Linux添加虚拟内存 首先执行free -h查看内存状况: total used free shared buff/cache available Mem: 1.8G 570M 76M 8.4M 1 ...
- POJ 3254:Corn Fields
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9295 Accepted: 4940 Descr ...