• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >浏览器兼容 > window.onscroll兼容浏览器

window.onscroll兼容浏览器

作者:Q_004的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-21

本文主要包含window.onscroll兼容,js,右侧悬浮窗等相关知识,Q_004的博客希望在学习及工作中可以帮助到您

为窗口添加滚动条事件其实很简单 就是window.onscroll=function()

但是在获取滚动条距离的时候要做到兼容

document.documentElement.scrollTop----->获取当前页面滚动条的纵坐标位置 但是chrome不兼容  对应的是HTML标签

而document.body.scrollTop对应的是BODY标签  在w3c下 它的值恒为0;

所以,对于有doctype声明的页面里使用document.documentElement.scrollTop来获取

  对于没有doctype声明的页面可以使用document.body.scrollTop来获取

为了兼容可以这样表示

var scrollTop=document.documentElement.scrollTop||document.body.scrollTop

下面以一个右侧悬浮框的代码为例

代码如下:

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>右侧悬浮框</title>
		<style type="text/css">
			#div1{
				width: 100px;
				height: 150px;
				background-color: red;
				position: absolute;
				right: 0;
				bottom: 0;
			}
		</style>
		<script type="text/javascript">
			window.onscroll=function()
			{
				var oDiv=document.getElementById('div1');
				var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;  //做兼容
			    startMove(parseInt((document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop));
			    //(可视区域高度-div的高度)/2+滚动条的高度
			}
			
			var timer=null;
			function startMove(iTarget)
			{
				var oDiv=document.getElementById('div1')
				clearInterval(timer);
				timer=setInterval(function(){
					var speed=(iTarget-oDiv.offsetTop)/8;  //速度可变 
					speed=speed>0?Math.ceil(speed):Math.floor(speed); //速度可能为小数,取整
					if(oDiv.offsetTop==iTarget){
						clearInterval(timer);
					}
					else
					{
						oDiv.style.top=oDiv.offsetTop+speed+'px';
					}
				},30)
			}
		</script>
	</head>
	<body style="height:2000px;">
		<div id="div1">
			
		</div>
	</body>
</html>

 

 

您可能想查找下面的文章:

  • window.onscroll兼容浏览器

相关文章

  • 2017-06-02针对IE8正式版的CSS hack
  • 2017-06-02关于select标签的高度设置在ie6/ie7下兼容心得
  • 2017-06-02IE6支持max-width/height与min-width/height(完美解决方案)
  • 2017-06-02跨浏览器的inline-block声明上承诺了很多提供的却很少
  • 2017-06-02IE7和IE8的兼容性问题
  • 2017-09-27web前端开发工程师必备的IE6浏览器工具
  • 2017-06-02ie6不支持hover ie6 标签(除a标签)不支持伪类:hover解决方案
  • 2017-06-02针对主流浏览器的CSS-HACK写法及IE常用条件注释
  • 2017-06-02纯CSS实现背景半透明文字不透明效果兼容IE6
  • 2017-06-02兼容各种浏览器篡位的css样式写法分享

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 让IE6支持最小高度min-height、最大高度max-height的方法
    • 项目中碰到的css兼容问题小结
    • 如何判断PC端浏览器内核
    • ie8 background背景图片没有显示
    • firebug使用方法 在IE上使用firebug的技巧图文介绍
    • DIV+CSS 兼容小集
    • IE6双倍边距 IE6浏览器会出现双倍边距解决方法
    • ie8中图片设置max-width属性满足一定的条件会导致消失
    • select在各浏览器中显示option的测试结果分享
    • FireFox正常 IE错位的绝对定位元素

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有