知识点
1、window.scrollTo (x,y):可以把内容滚动到指定位置
 scroll
 scroll:卷动意思(书卷)  从上到下移动
 
1、window.onscroll 窗口滚动事件(必须有滚动条才可以触发)
  body{height: 5000px;}
window.onscroll=function () {
console.log()
}
2、scrollWidth 获取盒子的高
     scrollWidth =盒子宽+内边距(不包括外边距 , 边框)
var div=document.getElementsByTagName("div")[];
console.log(div.scrollWidth);
3、scrollHeight 高度 (很少用)
      scrollHeight  =盒子高+内边距(不包括外边距 , 边框)
      如果内容没有溢出盒子,高度就是盒子本身+内边距
      如果溢出,高度就是超出内容的总高度
      ie7(包括ie7)高度就是内容的高度
 
4、scrollTop 窗口滚动的时候,页面被浏览器遮挡的高度 (调用者文档页面)
      scrollLeft  窗口滚动的时候,页面被浏览器遮挡的宽度
  <script>
window.onscroll=function () {
// console.log(document.body.scrollTo)
document.title=document.body.scrollTop;
document.title=document.body.scrollLeft;
}
</script>

5、scroll 兼容性
DTD,只有旧版本的浏览器遵循一些新的规则 (html4 有dtd)

<script >
window.onscroll=function() {
//没有约束的 dtd 兼容
谷歌只认(document.body 有没有dtd都可以) IE9+
document.title=document.body.scrollTop; (认为body在动) //有约束的 dtd 兼容
IE6、、 只认(document.documentElement有没有dtd都可以)
IE9+任何时候
document.title = document.documentElement.scrollTop;(文档在动) //不管有没有 dtd 兼容 火狐 、 谷歌 、IE9+以上的 不兼容IE6\7\8
document.title=window.pageYOffset (窗口的纵坐标在动)
}
</script>

兼容性写法

document.title=document.documentElement.scrollTop || document.body.scrollTop
最常用的兼容写法
//最常用的兼容写法
document.title= window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;

 (1)CSS1Compat 已经声明
    (2)BackCmpat 为声明
<script>
alert(document.compatMode)
</script>

7、自己分装一个,scroll兼容性写法

<script>
window.onscroll=function () {
document.title=scroll().top+"^^^^"+scroll().left
}; //需求封装一个兼容 scroll的
//分装当然用函数了
function scroll(){
//如果这个window.pageYOffset 存在那么返回值是0-无穷大
//如果没有这个值,返回值是undefined
//只要判断不是undefined就可以调用次方法
if(window.pageYOffset !== undefined){
var josn={
"top":window.pageYOffset,
"left":window.pageXOffset
};
return josn
}else if(document.compatMode==="CSS1Compat"){
//返回一个json数组
return {
"top": document.documentElement.scrollTop,
"left": document.documentElement.scrollLeft
}
}else {
return {
"top": document.body.scrollTop,
"left": document.body.scrollLeft
}
}
}
</script>
 
 

js scroll动画的更多相关文章

  1. JS——scroll动画

    固定导航栏 1.计算导航栏到顶部的距离值 2.当scrollTop值大于这个距离值就添加定位,当小于距离值后解除定位 注意事项:当导航栏添加定位之后,导航栏就脱离了文档流,也就是不占位了,下面的盒子就 ...

  2. 用js实现动画效果核心方式

    为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...

  3. js双层动画幻灯

    js双层动画幻灯 点击下载

  4. js运动动画

    原文:js运动动画 今天简单的学了一下js运动动画,再此感谢慕课网的这位老师http://www.imooc.com/view/167,讲的很不错. 下面是我整理出来的结果. 知识点一:速度动画. 1 ...

  5. 好用的jquery.animateNumber.js数字动画插件

    在做公司的运营报告页面时,有一个数字累计增加的动画效果,一开始,毫无头绪,不知如何下手,于是上网查资料,发现大多都是用的插件来实现的,那么今天,我也来用插件jquery.animateNumber.j ...

  6. JS封装动画框架,网易轮播图,旋转轮播图

    JS封装动画框架,网易轮播图,旋转轮播图 1. JS封装运动框架 // 多个属性运动框架 添加回调函数 function animate(obj,json,fn) { clearInterval(ob ...

  7. css3动画和JS+DOM动画和JS+canvas动画比较

    css3兼容:IE10+.FF.oprea(animation):safari.chrome(-webkit-animation) js+dom:没有兼容问题: js+canvas:IE9+:(性能最 ...

  8. 使用WebGL + Three.js制作动画场景

    使用WebGL + Three.js制作动画场景 3D图像,技术,打造产品,还有互联网:这些只是我爱好的一小部分. 现在,感谢WebGL的出现-一个新的JavaScriptAPI,它可以在不依赖任何插 ...

  9. JS实现动画的四条优化方法

    JS实现动画的四条优化方法 1)如果使用的是setTimeout实现的轮询动画,在每一次执行方法之前需要把前面的设置的定时器清除掉 2)为了防止全局变量的污染,我们把定时器的返回值赋值给当前操作元素的 ...

随机推荐

  1. where用法

    where 子句用于指定类型约束. 1.接口约束 public class MyGenericClass<T> where T:IComparable { }  2.基类约束: 指出某个类 ...

  2. 使用 FTP 迁移 SQL Server 数据_迁移数据_快速入门(SQL Server)_云数据库 RDS 版-阿里云

    背景信息 阿里云数据库 SQL Server 版导入数据有如下限制: 仅支持导入 SQL Server 2005.SQL Server 2008.SQL Server 2008R2 版本数据 仅支持全 ...

  3. element随笔

    时间选择框el-date-picker和select框数据选不上: [解决]用v-model="searchData.searchDate",不能用:model="sea ...

  4. python编程中常见错误

    python编程培训中常见错误最后,我想谈谈使用更多python函数(数据类型.函数.模块.类等)时可能遇到的问题.由于篇幅有限,我们试图将其简化,特别是一些高级概念.有关更多详细信息,请阅读学习py ...

  5. 选择webpack这条路,我踩过的坑

    在http://www.jianshu.com/p/42e11515c10f这篇文章,我重新学习了一下webpack. 一.json文件里面不应该含有注释,否则会报错 本来我的json文件长这个样子: ...

  6. C++ STL 之 容器的深拷贝和浅拷贝

    如果我们没有提供拷贝构造函数,没有重载=操作符,vector 对我们的 mc 对象进行的简单的浅拷贝,将拷贝的对象插入到容器中,导致我们的 mc 对象的 data 指针和容器中mc 对象的拷贝对象中的 ...

  7. LCD1602 液晶

    它是一种专门用来显示字母.数字.符号的点阵型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成 引脚 时序 操作步骤 初始化 写命令(RS=L)设置显示坐标 写数据(RS=H) 指令 清屏: 指 ...

  8. Redis缓存策略设计及常见问题

    Redis缓存设计及常见问题 缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要.下面会介绍缓存使用技巧和设计方案,包含如下内容:缓存的收益和成本分析.缓存更新策略的选 ...

  9. Spring Data JPA 大纲归纳

    第一天: springdatajpa day1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理以及基本操作 day3:多表操作,复杂查 ...

  10. 批量kill指定名称的进程

     以Airflow举例: ps -ef | grep “airflow" | grep -v grep | cut -c 9-15 | xargs kill -9   分析: ps -ef  ...