【ie浏览器兼容性】 IE8- 浏览器document.documentElement.scrollLeft获取的值一直为0
问题描述如题目。
代码如下:
##html header
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<title>大主宰官方网站——正版授权 经典回合制游戏——晨游科技</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit">
##js
function setPosition(){
var scroll_Left = 0;
console.log(window.top.document.compatMode); //CSS1Compat
var scroll_Left = window.pageXOffset || document.documentElement.scrollLeft
|| document.body.scrollLeft
|| 0;
console.log(scroll_Left); //这里不管怎么scroll打印出来的一直为0
$(".header").css('left',~scroll_Left + 1);
}
问题已解决:ie8-浏览器和标准浏览器之间scroll事件有差别,标准浏览器对document监控scroll事件是可以的,但是ie8-浏览器下对document监控scroll事件则不会触发,解决方法就是统一对window进行监控scroll事件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题已解决:ie8-浏览器和标准浏览器之间scroll事件有差别,标准浏览器对document监控scroll事件是可以的,但是ie8-浏览器下对document监控scroll事件则不会触发,解决方法就是统一对window进行监控scroll事件
有两个问题:
1、要这样写:
2、上面获取的只是【静态的值】,也就是说如果你的滚动条一开始停在0,那么获取到的也只能是0,你要拉动滚动条再刷新页面,才能获得新的scrollLeft值,所以要实时获取要写在滚动事件里: