【问题标题】:Can I stop the resizing of elements on zoom?我可以停止缩放元素的大小吗?
【发布时间】:2011-09-21 11:24:12
【问题描述】:

我有一个标准网站,当用户放大(CTRL +)时,如何防止元素调整大小?

【问题讨论】:

  • 您只是想禁用某些元素的缩放,还是想阻止某些元素的缩放?您确定这是解决您遇到的任何问题的正确方法吗?缩放旨在放大事物,禁用此功能对于使用缩放功能放大事物的用户来说可能是不直观的......
  • +1 个有趣的问题,但恐怕“如何”之前的问题的答案是“你能防止浏览器放大(某些)元素吗?”。恐怕答案是“不”(但很想看到有人在那里证明我错了:D)
  • 那么您应该查看listen.grooveshark.com!尝试放大或缩小
  • @tunetosuraj,grooveshark.com 不会阻止“浏览器”缩放。它只是强制用户重置为默认缩放。所以,这并不能反驳@Jeroen 的观点

标签: html resize


【解决方案1】:

我不知道在用户放大时阻止项目缩放。可能有一种方法可以catch the zoom event 并相应地调整元素的大小,但它不适用于所有浏览器。

并且很明显-人们放大是因为他们无法在正常缩放时阅读/看到它。请不要破坏标准行为。这是有原因的。

【讨论】:

  • 同意@Charles。标准行为是有原因的。如果有充分的理由想要这样做,我想听听。
  • 我有一个固定的标题元素,当您捏合和缩放时会占用整个页面。预期的行为是让页面内容缩放,而标题(仅包含导航切换、徽标和无文本)不受影响。
  • @cspray 我在网站中插入了 Flash 视频播放器。要将调整大小数据发送给播放器,我需要测量窗口的大小。当用户放大时会改变,变小,反之亦然。因此,当您放大视频时,其容器内的大小会比应有的更小。我不需要阻止缩放,但我找不到任何大小不会因此而改变的元素。
【解决方案2】:

您可以使用以下命令禁用 cntl 按钮:

<script language="JavaScript">
function disableCtrlKeyCombination(e)
{
        //list all CTRL + key combinations you want to disable
        var forbiddenKeys = new Array(‘+’);
        var key;
        var isCtrl;

        if(window.event)
        {
                key = window.event.keyCode;     //IE
                if(window.event.ctrlKey)
                        isCtrl = true;
                else
                        isCtrl = false;
        }
        else
        {
                key = e.which;     //firefox
                if(e.ctrlKey)
                        isCtrl = true;
                else
                        isCtrl = false;
        }

        //if ctrl is pressed check if other key is in forbidenKeys array
        if(isCtrl)
        {
                for(i=0; i<forbiddenkeys .length; i++)
                {
                        //case-insensitive comparation
                        if(forbiddenKeys[i].toLowerCase() == String.fromCharCode(key).toLowerCase())
                        {
                                alert(‘Key combination CTRL + ‘
                                        +String.fromCharCode(key)
                                        +‘ has been disabled.’);
                                return false;
                        }
                }
        }
        return true;
}
</script>

【讨论】:

  • 你不应该只是“禁用”控制按钮,因为它有很多用途。禁用特定输入可能没问题,但是将其全部禁用会限制您的 suser 进行各种操作,例如复制/粘贴。事实是,即使我在为此类检测找到一个好的插件时也遇到了麻烦,可能会在这个周末写一个。
  • @SpYk3HH:嗯...你呢? :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多