отключить эффект увеличения CTRL / Wheel во время выполнения - PullRequest
9 голосов
/ 12 февраля 2009

Как отключить эффект масштабирования ctrl / wheel с помощью css или javascript для определенных элементов. Я создаю строку меню, которая искажается при применении эффекта масштабирования. Я хотел бы отключить его только для определенных элементов.

Ответы [ 4 ]

11 голосов
/ 12 февраля 2009

Лучшая идея: спроектируйте свой макет так, чтобы он был достаточно устойчивым, чтобы обрабатывать подобные изменения. Вы не можете отключить их, даже если вы исправите размер шрифта (что вы никогда не должны делать в первую очередь), так что вы могли бы с таким же успехом отреагировать на изменение масштаба.

Дело в том, что если все элементы масштабируются браузером одинаково, ваша страница должна выглядеть и работать точно так же, как и раньше (за исключением, знаете, большего), если только вы не использовали какие-то ленивые ярлыки в своем дизайне. .

2 голосов
/ 15 февраля 2011

решение для IE и Firefox:

var obj=document.body;  // obj=element for example body
// bind mousewheel event on the mouseWheel function
if(obj.addEventListener)
{
    obj.addEventListener('DOMMouseScroll',mouseWheel,false);
    obj.addEventListener("mousewheel",mouseWheel,false);
}
else obj.onmousewheel=mouseWheel;

function mouseWheel(e)
{
    // disabling
    e=e?e:window.event;
    if(e.ctrlKey)
    {
        if(e.preventDefault) e.preventDefault();
        else e.returnValue=false;
        return false;
    }
}
0 голосов
/ 30 мая 2009

Вот моя проблема: Я всегда проектировал с помощью ems, и они работают волшебно. Но при полном увеличении страницы мои фоны также увеличиваются. Если у меня есть повторяющийся узор в качестве основного фона, я не хочу, чтобы это стало пиксельным. Они помогают нам избежать некоторой работы, например, реализации «Раздвижных дверей CSS» Дуга Боумена, но теперь мне приходится жить с размытыми вкладками.

У меня также есть другая проблема с полноразмерным масштабированием, по крайней мере, так как это реализовано в современных браузерах: Я один из тех людей, которые установили в моем браузере шрифт 12pt вместо 16pt. Время от времени я сталкивался с (фиксированной шириной, конечно) сайтом, который изменяет размер текста до крошечного размера (я предполагаю, что они использовали 0.9em или что-то вместо 14px, пытаясь сделать это меньше). Я обычно просто увеличивал изображение на две метки, и все было бы хорошо. Однако при полном увеличении страницы изображения плохо масштабируются, и у меня есть горизонтальная полоса прокрутки.

Решением первой проблемы было бы позволить какой-то инструкции обработки в теге background-image запретить масштабирование всего элемента на этом элементе. Или, может быть, что-то в голове документа. Если браузеры действительно хотят быть честными по этому поводу, они могут также предоставить пользователям опцию, которую они могут установить, которая переопределяет инструкцию без масштабирования, чтобы они могли в любом случае масштабировать, если они того пожелают. Решением второй проблемы было бы полное масштабирование страницы, чтобы сначала преобразовать все px в em со скоростью 16px / em, а затем , а затем уменьшить до размера текста вместо преобразования px в em. используя ваш размер текста в качестве основы. Затем прокрутка до 16 пикселей сделает изображения идеального размера, как и предполагалось.

0 голосов
/ 12 февраля 2009

Вы не можете; это функция браузера, а не документа.

Сказав, что если вы используете CSS style = "font-size: 9px;", вы можете переопределить размер текста. Масштаб браузера все равно будет работать, а изменения размера шрифта браузера будут иметь некоторые эффекты переформатирования.

...