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类 ...
随机推荐
- 题解 P3258 【[JLOI2014]松鼠的新家】
树链剖分板子题 先说点别的 小熊维尼啊,嘿嘿嘿. 写题经历 悲惨命运:树剖调了2天,一直90分,死活不AC,调出了心病,快下课时改了一下数据范围,A了--.(刚开始数组开了800100,改120010 ...
- Windows驱动开发-内核常用内存函数
搞内存常用函数 C语言 内核 malloc ExAllocatePool memset RtlFillMemory memcpy RtlMoveMemory free ExFreePool
- 编程题:求单链表倒数第k位的值(最后一位为倒数第0位)好未来
#!/usr/bin/env python class Node(object): def __init__(self,elem,next_=None): self.elem = elem self. ...
- f_lseek
我在STM32中移植了fatfs文件系统,实现在SD卡对文件的读写.在普通读写中都没有问题,但是一旦我关闭文件系统,再次打开读写,之前写的数据就被覆盖.比如举个例子: u8 tx_buff ...
- C++面试常见问题——14内存管理
内存管理 内存管理由三种方式: 自动存储 静态存储 动态存储 自动存储 对于函数的形参.函数内部变量.和结构体变量等,编译器在函数运行过程中在栈中自动对其分配内存,调用结束后对其进行销毁.变量的声明周 ...
- H7-TOOL脱机烧录器功能开源发布
H7-TOOL汇总帖:https://www.cnblogs.com/armfly/p/12283459.html 当前已经对STM32F030,STM32F103,STM32F429,STM32F7 ...
- maven知识结构笔记
1.什么是maven Maven 翻译为"专家"."内行",是 Apache 下的一个纯 Java 开发的开源项目.基于项目对象模型(缩写:POM)概念,Mav ...
- 009、Java中超过了int的最大值或最小值的结果
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- [转]SparkSQL – 有必要坐下来聊聊Join
转载自网易范欣欣http://hbasefly.com Join背景介绍 Join是数据库查询永远绕不开的话题,传统查询SQL技术总体可以分为简单操作(过滤操作-where.排序操作-limit等), ...
- kali下的截图工具scrot、flameshot和deepin-scrot
对于这几个截图工具,精简好用的应该是deepin-scrot了,这是个和QQ截图有类似功能的Linux截图工具.flameshot的功能是最多的,也很好用,虽然有的功能用不上. 1.scrot安装和使 ...