it-swarm.com.ru

Задать минимальный лимит размера для минимизации окна браузера?

Есть ли способ вручную установить минимальный размер окна браузера во всех браузерах?

11
Human Being

Ты можешь попробовать 

body {  min-width:600px; }

Вы получите горизонтальную полосу прокрутки, как только область просмотра станет меньше 600 пикселей. Это будет работать только в современных браузерах, поддерживающих свойство CSS минимальной ширины.

Я не думаю, что возможно ограничить пользователя от изменения размера, и это не должно быть! 

19
Gurpreet Singh

Вам придется использовать Javascript и создать рассматриваемое окно, чтобы это работало большую часть времени, поскольку баузеры с вкладками не позволят вам переопределить размер окна, содержащего другие вкладки. Даже тогда некоторые браузеры не позволят вам сделать это.

Используя window.open , вы можете создать окно размером 640 * 480, указав:

window.open('http://www.your.url/','yourWindowsName','width=640,height=480');

В этом окне вы можете попробовать и resizeTo height и width, запускаемые обработчиком событий resize, как показано ниже:

function resizeToMinimum(){
  var minimum    = [640, 480];
  var current    = [window.outerWidth, window.outerHeight];
  var restricted = [];
  var i          = 2;

  while(i-- > 0){
    restricted[i] = minimum[i] > current[i] ? minimum[i] : current[i];
  }

  window.resizeTo(current[0], current[1]);
}

window.addEventListener('resize', resizeToMinimum, false)

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

20
Barney
function resizeToMinimum(w,h){
    w=w>window.outerWidth?w:window.outerWidth;
    h=h>window.outerHeight?h:window.outerHeight;
    window.resizeTo(w, h);
};
window.addEventListener('resize', function(){resizeToMinimum(100,100)}, false)
1
Tito100

Вот мое решение для обеспечения фактической минимальной ширины и высоты содержимого, которое включает в себя работу с разными «хромированными» размерами браузера. Это не работает с Firefox, но я протестировал его в Edge и Chrome.

function ensureMinimumWindowSize(width, height) {
    var tooThin = (width > window.innerWidth);
    var tooShort = (height > window.innerHeight);

    if (tooThin || tooShort) {
        var deltaWidth = window.outerWidth - window.innerWidth;
        var deltaHeight = window.outerHeight - window.innerHeight;

        width = tooThin ? width + deltaWidth : window.outerWidth;
        height = tooShort ? height + deltaHeight : window.outerHeight;

        // Edge not reporting window outer size correctly
        if (/Edge/i.test(navigator.userAgent)) {
            width -= 16;
            height -= 8;
        }

        window.resizeTo(width, height);
    }
}

var resizeTimer;
window.addEventListener('resize', function(event) {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function () {
        ensureMinimumWindowSize(<width>,<height>);
    }, 250);
}, false);
0
Gabriël Wolmarans