【问题标题】:css zoom not working in ie11css缩放在ie11中不起作用
【发布时间】:2015-02-16 01:44:38
【问题描述】:

我正在使用 Angular 构建应用。它应该可以在平板电脑和触控设备上运行。

我想让用户能够放大/放大应用程序,适用于视力不佳和手指笨拙的用户。为此,我使用了这个脚本,在用户单击缩放按钮时执行: 这是代码

<!--code start -->  
$scope.zoomLevel+= 0.1;

$('body').css({
   zoom: $scope.zoomLevel
});

这在 chrome 中完美运行,但在 IE11 中什么都不做

我正在使用 twitter bootstrap、angular 和 jquery

jsFiddle 中测试时,我完全可以使用 在 IE 中缩放,所以我猜是我,或者某些第三方库正在设置属性这会影响 IE 中的缩放属性。

  • 这可能是什么?

PS:我不介意它不能在 Firefox 中运行。此应用将始终在 IE11 中运行。

【问题讨论】:

  • "... it isn't recommended for production sites." 您可能想尝试使用transform 属性和scale() 函数。
  • scale() 的行为方式并不完全相同。它不会影响我的应用程序的布局。我需要它的行为就像使用浏览器缩放一样。此外,scale() 在 IE11 中也不起作用。
  • 正如我所说,这个应用程序有一个非常具体的硬件目标,所以我不介意跨浏览器的问题,只要它在 IE11 中工作。
  • 它在 IE10 中不起作用。它确实适用于 Chrome。

标签: javascript html css internet-explorer internet-explorer-11


【解决方案1】:

zoom 属性是一个较旧的功能,今天确实不应该使用。它的跨浏览器支持很差,不属于正式标准,因此我(IE 团队的一名工程师)会鼓励您找到一种更符合标准的方法来继续前进。

从第 9 版开始,Internet Explorer 支持 CSS 变换和缩放功能。此特定功能具有更好的跨浏览器支持,足以满足您的需求。我创建了一个小小提琴,它并排显示缩放和缩放,以确认体验的相似性。

小提琴:http://jsfiddle.net/jonathansampson/hy5vup49/2/

在 cmets 中进行了一些讨论后,您指出了 zoom 和转换缩放之间的有效布局差异。如果您希望实现zoom 跨浏览器的效果,我建议您考虑在项目中使用emrem 单位,并利用字体大小继承作为缩放机制。

小提琴:http://jsfiddle.net/jonathansampson/024krs33/

【讨论】:

  • 转换的问题是整个亚像素精度问题,结果可能会让您的字体模糊,使用zoom时这不是问题@
  • 好的,也许我应该考虑缩放。缩放的实现似乎因您的浏览器而异。但是我有这些问题:首先,以下示例应该证明缩放和比例不同:jsfiddle.net/hy5vup49/5(仅适用于 chrome)。缩放会影响布局,而缩放不会。我将如何以稳健的方式通过转换重新创建这种行为?其次,缩放在 IE 中的 MY 页面上不起作用。这可能是什么原因?
  • @SimonBob Zoom 不是标准,因此实现可能确实有所不同。话虽如此,如果您正在寻找与缩放类似的东西,我建议您采用emrem 单位作为项目的标准,并使用font-size 继承来增加一切。 See this fiddle。关于你的项目;有实时链接吗?
  • @SimonBob 上面答案中的第二个小提琴有帮助吗?
猜你喜欢
  • 2017-10-23
  • 2018-08-17
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 2013-10-27
相关资源
最近更新 更多