序言:在网络上百度,关键字:“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滚动到指定位置的更多相关文章

  1. selenium webdriver——JS滚动到指定位置

    1.DOM滚动方法 1.scrollIntoView(alignWithTop)  滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素.如果alignWithTop为true,或者省略它, ...

  2. js滚动到指定位置显示或隐藏元素

    $(function(){ $(window).scroll(function(){ var scroll_top=$(window).scrollTop(); console.log(scroll_ ...

  3. js 获取滚动位置,滚动到指定位置,平滑滚动

    1.获取当前滚动条位置信息 var top = dom.scrollTop; // 获取y轴上的滚动位置 var left = dom.scrollLeft; // 获取x轴上的滚动位置 2.滚动到指 ...

  4. 通过scrollTop,使子元素滚动至指定位置

    想实现这样的一个功能,点击子元素,让元素滚动至指定位置,怎么实现呢? 在代码实现之前,先了解下相关关键点. 1.scrollHeight 属性 通过 scrollHeight 属性可获得子元素的滚动高 ...

  5. 利用jquery制作滚动到指定位置触发动画

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>利用 ...

  6. Vue如何引入jquery实现平滑滚动到指定位置效果

    在以往的做法里首选jquery的animate实现,但是Vue里并没有这个方法.如何在Vue项目中实现点击导航平滑滚动到指定位置,为了这效果我是快要崩溃了,上网查阅了很久发现并没有真正意义上解决这个问 ...

  7. 自定义ScrollViewer的Touch事件--触摸上下移动ScrollViewer滚动到指定位置

    double mPointY;//触摸点的Y坐标 double mOffsetY;//滚动条当前位置 bool mIsTouch = false;//是否触摸 //触摸事件 private void ...

  8. ios开发之--令UITableView滚动到指定位置

    这个应用场景还是挺多的,代码如下: //获取到需要跳转位置的行数 NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow: inSect ...

  9. jquery滚动到指定位置

    利用jquery实现页面可视区滚动到指定位置.直接上代码 //滚动到指定位置 function scrollTo(element,speed) { if(!speed){ speed = 300; } ...

随机推荐

  1. the evolution of Lua 全文翻译

    终于赶在春节前将论文全文翻译完,以后有时间将前面三章重新翻译一次,因为刚开始的时候没打算全文翻译的..第一次每天花25分钟完成这么长的一篇翻译,证明滴水可以穿石,哈哈哈 中文地址:Lua的演进 祝各位 ...

  2. java中,字符串类型的时间数据怎样转换成date类型。

    将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...

  3. Unity判断用户联网状态,WiFi/移动网络/无网络

    Unity判断用户联网状态 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  4. 练习题:试使用C#编程实现银行、ATM等功能

    练习题:试使用编程实现银行.ATM等功能 using System; using System.Collections.Generic; using System.Linq; using System ...

  5. 二、2.1 Java的下载和安装

    1.下载Java 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...

  6. java面试题03

    1.一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?这个是可以的,一个“.java” ...

  7. 2050 Programming Competition

    http://2050.acmclub.cn/contests/contest_show.php?cid=3 开场白 Time Limit: 2000/1000 MS (Java/Others)    ...

  8. async await 同时发起多个异步请求的方法

    @action getBaseInfo = async() => { let baseInfo; try { baseInfo = await getBaseInfo(this.id); if ...

  9. H5 实现图片上传预览

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. C语言题库----指针

    1.如果f是一个函数,请说明 f() 和f的意思. f是函数的地址,f()是函数 2.怎样理解数组的下标运算? 先偏移,后取址. 3.int *p,*q; int a[]={10,20,30,40}; ...