博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery中的scrollTop()和scrollLeft()应该怎么用?【转】
阅读量:6948 次
发布时间:2019-06-27

本文共 2164 字,大约阅读时间需要 7 分钟。

下面的演示中,外层元素的高度值是200px,内层元素的高度值是300px。很明显,“外层元素中的内容”高过了“外层元素”本身.当向下拖动滚动条时,有部分内容会隐没在“外层元素的上边界”之外,scrollTop就等于这部分“不可见的内容”的高度。 
演示:(拖动滚动条,可以看到scrollTop值的变化) 
这些文字显示在内层元素中。 
scrollTop值是:

 

这些文字显示在内层元素中。

 

解释: 
内层元素的高度值300px > 外层元素的高度值200px,因此“外层元素的内容”(也就是“内层元素”)无法完全显示,而外层元素把overflow设置为auto,因此外层元素的右侧会出现一个上下方向的滑动条 
初始状态下,“内层元素的上边界”和“外层元素的上边界”重合,没有任何内容超过“外层元素的上边界”,此时scrollTop属性的值为0。 
当向下拖动滚动条时,超过“外层元素的上边界”的内容会逐渐增多,scrollTop值就等于这些超出的部分。 
当拖动滚动条到最底部时,“内层元素的下边界”和“外层元素的下边界”重合,超过“外层元素的上边界”的内容的高度=300px-200px=100px,这也就是此时的scrollTop值。 
通过js代码来读取,写入scrollTop的值 
注意:scrollTop的使用方式是element.scrollTop,而不是element.style.scrollTop 
通过js代码来读取scrollTop的值 
上面的演示实例中,其实已经用到了scrollTop的读取操作。具体来说就是,在拖动滚动条的过程中,会读取此时的scrollTop的值,并在下方文字中显示出来。 
上面的演示实例的完整原码:

 

这些文字显示在内层元素中。

scrollTop值是:

 

解释: 
当拖动“外层元素的滚动条”时,会产生onscroll事件。为这个事件注册一个名为读取scrollTop的值并显示出来的处理函数 
在读取scrollTop的值并显示出来这个事件处理函数中,通过外层元素_div.scrollTop得到“外层元素”当时的scrollTop的值,并显示在页面上。 
通过js代码来设置scrollTop的值 
对上面的演示例子作一些修改。添加功能:通过js语句来设置scrollTop的值 
示例: 
这些文字显示在内层元素中。 
scrollTop值是: 
把scrollTop设为50把scrollTop设为500 
输入scrollTop的值:确定 
上面的演示实例的完整原码:

 

这些文字显示在内层元素中。

scrollTop值是:

输入scrollTop的值:

 

解释: 
形如div_外层元素A.scrollTop = 12345;的赋值语句会触发onscroll事件,使得读取scrollTop的值并显示出来函数执行一次 
上一个例子中已经提到:当拖动滚动条到最底部时,scrollTop=300px-200px=100px,这是scrollTop能够取的最大值。当用更大的值赋给scrollTop时,scrollTop会自动把它转变为100。例如上面的“把scrollTop设为500”按钮,scrollTop会把500转变为100。 
得到body元素的scrollTop 
body元素的scrollTop是超出“浏览器窗口上边界”的内容的高度 
当html文档头部包含有“文档类型声明”时,需要用document.documentElement.scrollTop获得正确的值,而document.body.scrollTop的值为0

 

 

 

当html文档头部不包含任何“文档类型声明”时,需要用document.body.scrollTop获得正确的值,而document.documentElement.scrollTop的值为0 
下面定义的get_scrollTop_of_body()方法可以处理这种差异

 

function get_scrollTop_of_body(){ var scrollTop; if(typeof window.pageYOffset != 'undefined'){ scrollTop = window.pageYOffset; } else if(typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat'){ scrollTop = document.documentElement.scrollTop; } else if(typeof document.body != 'undefined'){ scrollTop = document.body.scrollTop; } return scrollTop; }

 转载链接:http://www.jb51.net/article/18368.htm

你可能感兴趣的文章
连麦介绍
查看>>
MQTT 客户端源码分析
查看>>
IT思想类智力题
查看>>
php设计模式-单例模式
查看>>
php扩展php-redis安装与使用
查看>>
python一天一题(2)
查看>>
[HTML5] Semantics for accessibility
查看>>
Win10下安装Ubuntu16.04虚拟机并搭建TensorFlow1.3环境
查看>>
leetcode 108. Convert Sorted Array to Binary Search Tree
查看>>
【商城购物车】购物车逻辑
查看>>
PCIE协议解析 synopsys IP loopback 读书笔记(1)
查看>>
关于小程序你需要知道的事
查看>>
表服务器无法打开与报表服务器数据库的连接。所有请求和处理都要求与数据库建立连接...
查看>>
4月第4周业务风控关注 | 网络犯罪经济每年1.5万亿美元 GDP居全球第12位
查看>>
idea中gitlab新创建分支查找不到的原因
查看>>
php调试时echo,print_r(),var_dump()的区别
查看>>
vue 作用域插槽
查看>>
tfs 2013 利用 web deploy 完成asp.net站点自动发布
查看>>
dom对象常用的属性和方法有哪些?
查看>>
C#遍历XmlDocument对象所有节点名称、类型、属性(Attribute)
查看>>