【问题标题】:Angular + ui-sortable lists: CTRL-mousewheel zoom vs normal mousewheel zoomAngular + ui-sortable 列表:CTRL-鼠标滚轮缩放与普通鼠标滚轮缩放
【发布时间】:2013-10-22 21:24:10
【问题描述】:

我的理解是 CTRL-鼠标滚轮缩放是一种可访问性功能,内置在相关浏览器中(我目前正在 Chrome 和 Opera 中进行测试,如果它们都使用 CTRL-缩放)。

但是,对于可访问性而言,这将永远不需要,因为该应用程序不会面向公众。与标准鼠标滚轮缩放元素相比,CTRL 滚轮缩放具有开箱即用的好处:Angular ui-sortables 似乎在任何缩放/比例下都能完美工作。

不幸的是,从我在 SO 上找到的其他答案来看,使用 CTRL 滚轮时无法进行缩放 有选择地:浏览器只能缩放 所有内容 .对我来说,这包括 position:fixed 叠加层与主视口同时缩放,这不好。

所以我设置了一些代码来根据鼠标光标所在的任何元素进行滚动,例如。仅当鼠标悬停在该视口元素上时,才使用鼠标滚轮缩放主视口。

问题在于,ui-sortable 在仅将它用于单个元素时,不 的行为是否正确。我使用scale 和transform-origin 设置为50% 50%,但是,当我以1:1 以外的任何比例拖动ui-sortables 时,它们看起来偏向左侧。关于如何开始解决这个问题的任何想法?

【问题讨论】:

    标签: javascript angularjs dom jquery-ui-sortable


    【解决方案1】:

    这在Angular's sortable adaptation 中不是问题,而是在第 4000 行(_generatePosition 或其他其中之一)周围的底层 jQuery-ui 1.9.2 定位函数中存在问题。我相信由于浏览器不会在scale 或zoom 期间修改实际尺寸值,并且该库中提供的公式不考虑缩放(我可以看到),因此没有简单的修复,因为 jQuery @ 987654326@ 需要比例准确的值来计算正确的位移。 (我尝试修改公式来解决这个问题,但没有成功。)

    目前最简单的解决方法是手动更改各个列表元素的width() / height(),如here 所示。这可能需要选择什么您使用width()/height() 进行扩展,以及您使用scale 更改的内容(这通常更容易)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多