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实现单例模式的四种方法和一些特点
JAVA实现单例模式的四种方法和一些特点,需要的朋友可以参考一下 一.饿汉式单例类 复制代码 代码如下: public class Singleton { private Sing ...
- CodeForces - 876B Divisiblity of Differences
题意:给定n个数,从中选取k个数,使得任意两个数之差能被m整除,若能选出k个数,则输出,否则输出“No”. 分析: 1.若k个数之差都能被m整除,那么他们两两之间相差的是m的倍数,即他们对m取余的余数 ...
- XV6源代码阅读-文件系统
Exercise1 源代码阅读 文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec ...
- LCA之tarjan离线
显然81篇题解是有点多了,不让我提交. 更为不好的是没有一篇详细的\(tarjan\)(不过我也不会写详细的). 不过\(tarjan\)并没有我们想象的那样难理解,时间也并不爆炸(巧妙的跳过难写二字 ...
- SpringAOP源码跟踪及学习
Spring 版本 4.3.2 在拿到 Bean 实例以后,会经历一系列的初始化工作,如:工厂回调.init 方法.后处理器在 Bean 初始化前后的处理等,在一般情况下(非 factory-meth ...
- Java集合基于JDK1.8的LinkedList源码分析
上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点.本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于 ...
- JS: 图片轮播模板——左右移动,点击编码移动,自动轮播
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> ...
- IQueryable 转DataTable
public static DataTable CopyToDataTable<T>(IEnumerable<T> array) { var ret = new DataTab ...
- 如何修改 Vmware vRealize Operations Manager Appliance root密码
开机后,按上下键,选择 中间那一项,在底部增加:init=/bin/bash 进入单用户模式后,输入命令:# passwd root #修改root密码,要输 ...
- mapper语句的一些问题,union连表查询和mapper中根据条件不同采用不同语句的查询问题
根据业务要求,不同表查出来的内容天需要一起展示出来,并且还有分页之类的,不同表查询字段也不完全相同,这样就有一个问题,不同表如何接合在一起,不同字段怎么办? 这个问题就需要用到union联合查询,并将 ...