Définition de la taille minimale pour une fenêtre minimisation du navigateur?

Est-il possible de définir manuellement la taille minimale d'une fenêtre de navigateur sur tous les navigateurs?

10
demandé sur AnilRedshift 2013-04-23 19:56:05

4 réponses

Vous pouvez essayer

body {  min-width:600px; }

Vous obtiendrez une barre de défilement horizontale lorsque le viewport sera inférieur à 600px. Cela ne fonctionnera que dans les navigateurs modernes supportant la propriété CSS min-width.

je ne pense pas qu'il est possible de restreindre l'utilisateur de redimensionner, et il ne devrait pas l'être!

19
répondu Gurpreet Singh 2013-04-23 16:46:15

vous devrez utiliser Javascript et créer la fenêtre en question pour que cela fonctionne la plupart du temps, puisque tabbed bowsers ne vous laissera pas redéfinir la taille de la fenêtre contenant d'autres onglets. Même alors, certains navigateurs ne vous laisseront pas faire.

en utilisant window.open, vous pouvez faire une fenêtre de taille 640 * 480 en précisant:

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

Dans la fenêtre, vous pouvez essayer et resizeTo hauteur et largeur déclenchées par le resize événement gestionnaire comme suit:

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)

vous devriez tenir compte du fait que les deux comportements ci-dessus sont litigieux, et que ce que vous décrivez restreint effectivement la liberté de l'utilisateur d'utiliser son navigateur comme bon lui semble. En tant que tel, je ne m'attendrais pas à ce que cela fonctionne partout - mais dans les endroits où cela fonctionne, c'est le code qui vous permettra de le faire.

19
répondu Barney 2016-12-30 02:28:07
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
répondu Tito100 2014-05-13 10:41:03

voici ma solution pour assurer la largeur et la hauteur minimales réelles du contenu, ce qui inclut le traitement des dimensions "chrome" de différents navigateurs. Cela ne fonctionne pas avec Firefox, mais je l'ai testé dans Edge et 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
répondu Gabriël Wolmarans 2016-02-03 06:05:14