Javascript window.scrollTo 在不同浏览器上的行为

标签 javascript internet-explorer google-chrome firefox

当正文具有 dir=rtl 属性时,我遇到了scrollTo 函数的问题。这是 jsfiddle对于我的情况。

HTML:

    window.scrollTo(-200, 0);
<html>
	<head>

	</head>
	<body  dir="rtl">
		<div width="100%" style="width: 3000px; height:200px; overflow: hidden">
			<div style="width: 1000px; height: 100px; border: 2px solid black; display: inline-block"></div>
			<div style="width: 1000px; height: 100px; border: 2px solid red; display: inline-block"></div>
		</div>
		<script type="text/javascript">
			
			window.scrollTo(-200, 0);
		</script>
	</body>
</html>

因此,如果我为 xpos 参数传递一个正值,它自然会在 IE 上工作(有点),它会从屏幕右侧滚动 200 像素。但在 chrome 和 firefox 上它不起作用,我必须传递一个负值才能使滚动按预期工作。

我的问题是,我如何在代码中处理这种情况,我应该进行浏览器嗅探吗?或者,还有更好的方法?我可以测试一些功能是否支持?

最佳答案

othree explains在他的 jQuery rtl 滚动类型插件中,当 dir 设置为 rtl 时,水平滚动有 3 种主要实现:WebKit、Firefox/Opera 和 IE

这些实现的区别如下: scroll types

因为你不能使用 jQuery,所以我修改了此 plunker 中的其他代码它在 chrome、firefox 和 IE11 中运行良好

关于Javascript window.scrollTo 在不同浏览器上的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610423/

相关文章:

javascript - 为什么 javascript 对象属性描述符不总是默认为 false (根据规范)

javascript - 在 Chrome 中重新计算样式事件大约需要 2 秒

google-chrome - 如何在 canary 和 chrome 开发者版中启用 "Load unpacked extension"?

javascript - VS Code 扩展代码找不到 JSON 路径

javascript websocket 客户端

javascript - 将对象传递给 require 模块时出现 Node.js 引用错误

javascript - 使用 ExecWB 和 Javascript 使用 IE11 进行客户端打印

jquery - IE - 无效参数 jQuery 错误

internet-explorer - Firefox 可以/是否会为自动调整宽度的 div 触发调整大小事件?

html - 使用列时,所有视频都会在 Chrome 中移至左侧