scrollTop与offsetTop研究
时间:2022-04-23
本文章向大家介绍scrollTop与offsetTop研究,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
虽然我是做后台出身的,但最近心血来潮越来越关注前台技术了^_^,前二天看了“司徒正美”先生的图片无缝滚动分析后,对于scrollTop和offsetTop这二个以前一直没搞太明白的属性研究了一番,大致弄明白了,贴在这里备份,测试代码如下:
<!doctype html>
<title>scrollTop study</title>
<style type="text/css">
.outer{}{
position:relative; /**//*为了兼容IE8,FF3.5,Chrome2,本例中如不加这一行,item2.offsetTop会以body为计算基准*/
width:100px;
height:100px;
border:15px solid #ccc;
overflow:hidden;
line-height:18px;
}
.item{}{
height:60px;
}
.bgColorRed{}{
background-Color:red;
}
.bgColorGreen{}{
background-Color:green;
}
</style>
<div class="outer" id="container">
container
<div class="item bgColorRed">item1</div>
<div class="item bgColorGreen" id="item2">item2</div>
</div>
<br/>
<button id="btnTest" >Test</button> <span id="result"></span>
<script type="text/javascript">
var btn = document.getElementById("btnTest");
btn.onclick = function(){
var outer = document.getElementById("container");
var item2 = document.getElementById("item2");
var result = document.getElementById("result");
outer.scrollTop ++ ;
result.innerHTML = "container.scrollTop=" + outer.scrollTop + ",item2.offsetTop=" + item2.offsetTop;
}
</script>
代码很简单,一个100px的正方形div,border边框值为15px,overflow设置为hidden(隐藏),然后里面放了二个100*60的子div,显然60*2=120px,大于最外层容器的100px高度,所以会有一部分被截掉,为了更形象,二个子div上面还放置了一行文字,高度为18px,点击按钮后,最下面绿色子div的scrollTop递增加1(即位置不断升高,直至完全呈现出来)
为方便理解,还画了一个分析图:(值得注意的是offsetTop属性在ie8的非兼容模式下,还要加上Border的高度)
- NVIDIA张建中:自主学习芯片,推动人工智能发展
- CodeSmith 创建Ado.Net自定义模版(三)
- Android注解学习(2)
- Android注解学习(2)
- 机器学习之——距离度量学习
- Enterprise Library Policy Injection Application Block 之三:PIAB的扩展—创建自定义CallHandler(提供Source Code下载)
- CodeSmith 创建Ado.Net自定义模版(四)
- TensorFlow图像分类教程
- Enterprise Library Policy Injection Application Block 之一: PIAB Overview
- Python教学——第七天
- 大数据将带来电视媒体生态式变革!大数据如何深度融合电视媒体?
- Silverlight SEO优化
- Silverlight性能优化
- WCF后续之旅(6): 通过WCF Extension实现Context信息的传递
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 657. 机器人能否返回原点
- ! [rejected] master -> master (fetch first)
- Mybatis源码学习(二)Mapper动态代理
- Mybatis源码学习(三)executor
- Mybatis源码学习(四)拦截器与插件原理
- SpringBoot如何使用注解装配Bean
- Spring Boot 如何快速实现定时任务
- Django 实现文件上传下载API
- 【原创】Spring Boot 如何手写stater
- 【原创】Spring Boot 过滤器、监听器、拦截器的使用
- 关于useState的一切
- 关于useEffect的一切
- (25)Bash数值运算与运算符
- (27)正则表达式
- (28)字符截取命令cut、printf