js滚动到指定位置
序言:在网络上百度,关键字:“js div滚动到指定位置”,结果基本上大同小异!各种大神都给我们总结出来了四种滚动到指定位置的办法,可惜再下愚钝,每个都不会用,所以写了一个超级简单的方法来使初学者一看就懂,我们可以用逻辑来代替一部分技术!这里我们只用到一个属性就可以达到要求,其他根据自己的逻辑判断即可!获取到你最外层的div的id,然后获取属性scrollTop,然后想好逻辑,给scrollTop赋值即可!
1、scrollTop用法
1-1 什么是scrollTop?
向上的滚动距离,或者说滚动出可视区域的距离
1-2 语法
- // 获得滚动的像素数
- var intElemScrollTop = someElement.scrollTop;
- // 设置滚动的距离
- element.scrollTop = intValue;
1-3 scrollTop赋值
scrollTop赋值为负数的时候,scrollTop赋值为0;
如果一个元素不能滚动,scrollTop赋值为0;
如果设置超出了容器的可滚动值,scrollTop将会赋值为最大值;
1-4 可否通过设置scrollTop的值 来改变滚动的值,尝试中。。。。。。
尝试结果为:改变srcollTop并不会改变滚动条的位置!
再次尝试发现:改变整体的div的scrollTop可以改变滚动条的位置,上次尝试id值取错!
2、滚动的需求
2-1:点击按钮,使得div中滚动的内容列表中的某一条数据指定!(或者你看微信聊天中“微信”左下角的tabbar,你如果多次点击你就会发现,如下代码就是可以实现微信的这个功能!
可以使用scrollTop 这个属性来完成
前提条件:div中的每条数据的高度是一致的,也就是说每条数据都有一样的高度,这样都可以根据scrollTop = X * Y (X为列表中的那个索引,Y为数据宽度,例如:每条数据的宽度为100px,你想让第五条数据置顶,结果为:4 * 100 = scrollTop;这样,第五条数据就可以置顶了!
我真的不知道该怎么写下去了,我的开发环境里边有状态管理,可以管理一些状态来便利我的书写,并且都是必要的!
我就暂时写一些核心代码吧!有机会的话,录个屏幕会更清晰一些!
我写了一个最简单的逻辑供参考!可以建一个空html文件,然后代码全部复制,在浏览器中打开,即可实现!
- <!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>
- </head>
- <body>
- <div id="scrollBody" style="position:absolute;top:0;bottom:0;left:0;right:0;overflow:scroll;height:300px;">
- <div style="font-size:20px;height:100px;">
- 1
- </div>
- <div style="font-size:20px;height:100px;">
- 2
- </div>
- <div style="font-size:20px;height:100px;">
- 3
- </div>
- <div style="font-size:20px;height:100px;">
- 4
- </div>
- <div style="font-size:20px;height:100px;">
- 5
- </div>
- </div>
- <div style="position:relative;top:350px;">
- <button onClick="scrollToTop()">按钮1</button>
- <button>按钮2</button>
- </div>
- <script>
- function scrollToTop(){
- // 这里边可以写一些逻辑,比如偶数行一个一个的置顶,不如状态等于0的一个一个的置顶!
- document.getElementById('scrollBody').scrollTop = 200;
- }
- </script>
- </body>
- </html>
后续:这个代码为小白所写,没有自定义动画滚动效果!会更新!
js滚动到指定位置的更多相关文章
- selenium webdriver——JS滚动到指定位置
1.DOM滚动方法 1.scrollIntoView(alignWithTop) 滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素.如果alignWithTop为true,或者省略它, ...
- js滚动到指定位置显示或隐藏元素
$(function(){ $(window).scroll(function(){ var scroll_top=$(window).scrollTop(); console.log(scroll_ ...
- js 获取滚动位置,滚动到指定位置,平滑滚动
1.获取当前滚动条位置信息 var top = dom.scrollTop; // 获取y轴上的滚动位置 var left = dom.scrollLeft; // 获取x轴上的滚动位置 2.滚动到指 ...
- 通过scrollTop,使子元素滚动至指定位置
想实现这样的一个功能,点击子元素,让元素滚动至指定位置,怎么实现呢? 在代码实现之前,先了解下相关关键点. 1.scrollHeight 属性 通过 scrollHeight 属性可获得子元素的滚动高 ...
- 利用jquery制作滚动到指定位置触发动画
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>利用 ...
- Vue如何引入jquery实现平滑滚动到指定位置效果
在以往的做法里首选jquery的animate实现,但是Vue里并没有这个方法.如何在Vue项目中实现点击导航平滑滚动到指定位置,为了这效果我是快要崩溃了,上网查阅了很久发现并没有真正意义上解决这个问 ...
- 自定义ScrollViewer的Touch事件--触摸上下移动ScrollViewer滚动到指定位置
double mPointY;//触摸点的Y坐标 double mOffsetY;//滚动条当前位置 bool mIsTouch = false;//是否触摸 //触摸事件 private void ...
- ios开发之--令UITableView滚动到指定位置
这个应用场景还是挺多的,代码如下: //获取到需要跳转位置的行数 NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow: inSect ...
- jquery滚动到指定位置
利用jquery实现页面可视区滚动到指定位置.直接上代码 //滚动到指定位置 function scrollTo(element,speed) { if(!speed){ speed = 300; } ...
随机推荐
- TrustManagerService.java
/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- ubuntu18.04 下利用conda安装opencv3
ubuntu18.04 下利用conda安装opencv3 安装opencv3 conda install -c https://conda.anaconda.org/menpo opencv3 出现 ...
- conts、var 、let的区别
1.const定义的变量不可以直接修改,通过 this.a = 'kkk' 进行修改, 而且必须初始化. 2.var定义的变量可以修改,如果不初始化会输出undefined 3.let是块级作用域,函 ...
- 常见模块(七) re模块
首先明白正则表达式和re模块的关系:正则:是一种规则,这种规则在任何一种语言中都严格按照此规则进行匹配.正则匹配的就是字符串,从字符串的左边往右边匹配re: re是python语言中的利用正则规则的一 ...
- vue cli3.0配制axios代理
今天学习时,想访问网易新闻接口,结果显而易见,因为跨域被浏览器拒绝了. 去网上找一下结果一开始找到的是2.x版本的配置,生硬的放进去,给我各种报错.编译阶段就炸了.浪费好多时间 再按3.0版本去搜索才 ...
- 关于符号匹配题的一些思考过程--含cin.getline()函数的一些基本原理
刚刚拿到题目的时候,还没啥感觉,就是觉得要用到if--else就可以了,但是一联想到现在是在学栈,那么是不是要用到栈呢? 一.那么先看看题目吧 给定一串字符,不超过100个字符,可能包括括号.数字.字 ...
- JAVA基础搬运工
1Java线程的6种状态及切换 https://blog.csdn.net/pange1991/article/details/53860651/ 2进程和线程的区别 https://www.cnbl ...
- Oracle使用外部表批量创建用户
整体思路:通过使用外部表将用户名导入Oracle的表中,然后通过PL/SQL遍历数据表,批量创建用户. 具体步骤如下: 1.在安装数据库的服务器的C盘根目录创建一个User List.txt文件,内容 ...
- Combat 战斗任务
发售年份 1977 平台 VCS 开发商 雅达利(Atari) 类型 射击 https://www.youtube.com/watch?v=2LxPEdUZOkE
- 游戏人工智能编程案例精粹(修订版) (Mat Buckland 著)
https://www.jblearning.com/catalog/productdetails/9781556220784 第1章 数学和物理学初探 (已看) 第2章 状态驱动智能体设计 (已看) ...