js的onscroll、scrollTop、scrollHeight及window.scroll等方法

onscroll

解释:当元素的滚动条滚动时触发的事件。

onscroll事件貌似任何实体元素都可以绑定,这里的实体元素包括DOM元素、window元素、document元素。

用法即:element.onscroll=function(){};

需要注意的是,滚动条一定要出现,而且滚动条是属于这元素的,例如:

<div id="wrap" style="height:100px;overflow:auto;">
    <div id="inner" style="height:200px;">content</div>
</div>

因为外层wrap的高度小于内层inner的高度,所以当设置overflow:auto时会出现滚动条,当拖动滚动条时就会触发wrap的onscroll事件,而不是inner的onscroll事件,即这滚动条属于wrap而不是属于inner,明白这点十分重要,对下面理解的scrollTop、scrollHeight一样道理。

scrollTop

解释:元素滚动条内的顶部隐藏部分的高度。

scrollTop属性只有DOM元素才有,window/document没有。

用法1:获取值 var top = element.scrollTop;//返回数字,单位像素

用法2:设置值 element.scrollTop = 200;

对上面的例子来说,控制滚动条的位置是wrap.scrollTop=xx;而不是inner.scrollTop,道理同上。

兼容性问题:获得整个文档scrollTop,IE是document.documentElement.scrollTop,FF/CH则是document.body.scrollTop.

scrollHeight

解释:元素滚动条内的内容高度。

scrollHeight同scrollTop属性一样,只有DOM元素才有,window/document没有。

不同的是scrollHeight是只读,不可设置。

兼容性问题:获取整个文档scrollHeight,IE/FF/CH都可以通过document.documentElement.scrollHeight或document.body.scrollHeight获得。

此外还有scrollLeft,scrollWidth,道理是一样的。

关于window.scroll(),window.scrollBy(),window.scrollTo()

这3个是全局函数,最新的IE/FF/CH都支持。

window.scroll(x,y)是让window滚动条滚动到那个x,y坐标。//x是水平坐标,y是垂直坐标。

window.scrollBy(-x,-y)是让window滚动条相对滚动到某个坐标,- 10即相对向左/向上滚动10像素。

window.scrollTo(x,y)和window.scroll(x,y)一样。

时间: 2024-11-10 13:44:07

js的onscroll、scrollTop、scrollHeight及window.scroll等方法的相关文章

offsetTop/offsetHeight scrollTop/scrollHeight 的区别

offsetTop/offsetHeight   scrollTop/scrollHeight  这几个属性困扰了我N久,这次一定要搞定. 假设 obj 为某个 HTML 控件. obj.offsetTop   obj距离上方或上层控件的位置,整型,单位像素. obj.offsetHeight   obj自身的高度,整型,单位像素. offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,二者的区别是: 一.offsetTop 返回的是数字,而 st

让$(window).scroll()监听事件只执行一次

可以用jQuery中的unbind()来进行事件解绑. 1 $(window).scroll(function() { 2 console.log("滚离顶部" + $(document).scrollTop()); 3 4 //... 5 6 //对window对象进行scroll事件解绑 7 $(window).unbind("scroll"); 8 }); 方法的参数如下(截图于w3school): 额外: 我在一次将scroll()和setInterval(

Js弹出窗口代码,window.open方法

<html><script language=JavaScript> <!--function click() {if (event.button==2) {window.open('#','popwindows',"toolbar=no,menubar=no,width=200,height=200")}}document.onmousedown=click//--></script><head><meta http-

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

笔记-[js兼容]-滚动条的滚动距离的兼容性问题解决方法。

在我们操作JS实现些效果的时候,可能会涉及到滚动条滚动距离的问题; 在IE和非IE下是存在兼容性问题的 在IE下支持:document.body.scrollTop(scrollLeft);//在ie下获取滚动条距离的属性 在非IE下支持:document.documentElement.scrollTop(scrollLeft);//在非ie下获取滚动条距离的属性 代码兼容: var scrollTop;//定义一个变量名为scrollTop为滚动条的距离 滚动高度 :  var scroll

js返回上一页并刷新的多种方法

js返回上一页并刷新的几种方法.参考链接:http://www.jbxue.com/article/11230.html <a href="javascript:history.go(-1)">返回上一页</a><a href="javascript:location.reload()">刷新当前页面</a><a href="javascript:" onclick="history

js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]

.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: <a href="javascri

JS打开新窗口防止被浏览器阻止的方法

这篇文章主要介绍了JS打开新窗口防止被浏览器阻止的方法,分析对比了常用方法与改进方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题 我最近也遇到了这样的问题,所以就把弹出新窗口的方法分享给大家.欢迎大家补充哦... 第一种.使用原生javas

js和jquery页面初始化加载函数的方法及先后顺序

原文:js和jquery页面初始化加载函数的方法及先后顺序 运行下面代码.弹出A.B.C.D.E的顺序:A=B=C>D=E. jquery:等待页面加载完数据,以及页面部分元素(不包括图片.视频), js:是页面全部加载完成才执行初始化加载. <!DOCTYPE html> <html> <head> <title>首页</title> <script type="text/javascript" src=&quo