- 1.window.pageXOffset、document.body.scrollLeft
- 封装滚动插件(兼容IE)
- 2.兼容模式
- 3.window.innerWidth、document.body.clientWidth、document.documentElement.clientWidth
- 封装可视窗口尺寸
- 4.document.body.scrollWidth、document.documentElement.scrollWidth
- 封装body大小
- 5.offsetLeft、offsetTop、offsetParent
- 封装元素距离上、左边距的距离方法
- 6.window.scroll()、window.scrollTo()、window.scrollBy()
- 课后作业未做 小说自动滚动
1.window.pageXOffset、document.body.scrollLeft
pageXOffset 返回文档在窗口左上角水平的像素。
pageYOffset 返回文档在垂直方向滚动的像素。
封装滚动插件(兼容IE)
function getScrollOffset(){if(window.pageXOffset){return{left:window.pageXOffset,top:window.pageYOffset}}else{return{left:document.body.scrollLeft + document.documentElement.scrollLeft,top:document.body.scrollTop + document.documentElement.scrollTop}}}
2.兼容模式
<!DOCTYPE html>
HTML文档头写 <!DOCTYPE html> 则使用W3C规范 标准模式
不写则用浏览器自己的规范 怪异模式
测试方法 document.compatMode
document.compatMode === "CSS1Compat" //W3C
document.compatMode === "BackCompat" //怪异模式
3.window.innerWidth、document.body.clientWidth、document.documentElement.clientWidth
innerheight 返回窗口的文档显示区的高度。
innerwidth 返回窗口的文档显示区的宽度。
封装可视窗口尺寸
function getViewportSize(){
if(window.innerWidth){
return{
width:window.innerWidth,
height:window.innerHeight
}
}else{
if(document.compatMode==='BackCompat'){
return{
width:document.body.clientWidth,
height:document.body.clientHeight
}
}else{
return {
width:document.documentElement.clientWidth,
height:document.documentElement.clientHeight
}
}
}
}
4.document.body.scrollWidth、document.documentElement.scrollWidth
封装body大小
function getScrollSize(){
if(document.body.scrollWidth){
return {
width:document.body.scrollWidth,
height:document.body.scrollHeight
}
}else{
return {
width:document.documentElement.scrollWidth,
height:document.documentElement.scrollHeight
}
}
}
5.offsetLeft、offsetTop、offsetParent
封装元素距离上、左边距的距离方法
<body>
<div class="grandPa">
<div class="parent">
<div class="son"></div>
</div>
</div>
</body>
<script>
var son = document.getElementsByClassName('son')[0];
function getElemDocPosition(el){
var parent = el.offsetParent,
offsetLeft = el.offsetLeft,
offsetTop = el.offsetTop;
while(parent){
offsetLeft += parent.offsetLeft;
offsetTop += parent.offsetTop;
parent = parent.offsetParent;
}
return {
left: offsetLeft,
top: offsetTop
}
}
</script>
6.window.scroll()、window.scrollTo()、window.scrollBy()
ie要定位scrollTo 可以直接设置scrollLeft scrollTop
ie不支持参数**
