Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Methode zur Bestimmung des Browsergeräts basierend auf CSS Media Queries_Javascript-Kenntnissen

JavaScript-Methode zur Bestimmung des Browsergeräts basierend auf CSS Media Queries_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 08:59:512882Durchsuche

CSS-Teil

Erstellen Sie zunächst eine neue Klasse zur Beurteilung und weisen Sie dann mithilfe von Medienabfragen dem Z-Index-Attribut dieser Klasse unterschiedliche Werte zu. Diese Klasse wird nur zum Lesen von JavaScript verwendet und muss daher aus dem Bildschirmfenster verschoben und für den Browser unsichtbar gemacht werden, um unerwartete Situationen zu vermeiden.

Zur Demonstration legt der folgende Code vier Gerätezustände fest: normale Desktop-Version, Desktop-Version mit kleinem Bildschirm, Tablet-Version und mobile Version.

/* default state */
.state-indicator {
  position: absolute;
  top: -999em;
  left: -999em;

  z-index: 1;
}

/* small desktop */
@media all and (max-width: 1200px) {
  .state-indicator {
    z-index: 2;
  }
}

/* tablet */
@media all and (max-width: 1024px) {
  .state-indicator {
    z-index: 3;
  }
}

/* mobile phone */
@media all and (max-width: 768px) {
  .state-indicator {
    z-index: 4;
  }
}

JavaScript-Urteil

CSS ist bereits vorhanden, daher müssen Sie JavaScript verwenden, um ein temporäres DOM-Objekt zu generieren, dann die entsprechende Klasse dafür festzulegen und dann den Z-Indexwert dieses Objekts zu lesen. Die ursprüngliche Schreibmethode ist wie folgt:

// Create the state-indicator element
var indicator = document.createElement('div');
indicator.className = 'state-indicator';
document.body.appendChild(indicator);

// Create a method which returns device state
function getDeviceState() {
  return parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10);
}
getDeviceState() 函数返回的就是 z-index 的值,为了增强一下可读性,可以用 switch 函数来规范输出一下:

function getDeviceState() {
  switch(parseInt(window.getComputedStyle(indicator).getPropertyValue('z-index'), 10)) {
    case 2:
      return 'small-desktop';
      break;
    case 3:
      return 'tablet';
      break;
    case 4:
      return 'phone';
      break;
    default:
      return 'desktop';
      break;
  }
}

Auf diese Weise können Sie den folgenden Code verwenden, um den Gerätestatus zu ermitteln, und anschließend den entsprechenden JavaScript-Code ausführen:

if(getDeviceState() == 'tablet') {
  // 平板电脑下执行的 JavaScript 代码
}

Wenn Sie hier jQuery verwenden, verwenden Sie einfach den folgenden Code:

$(function(){
  $('body').append('<div class="state-indicator"></div>');

  function getDeviceState() {
    switch(parseInt($('.state-indicator').css('z-index'),10)) {
      case 2:
        return 'small-desktop';
        break;
      case 3:
        return 'tablet';
        break;
      case 4:
        return 'phone';
        break;
      default:
        return 'desktop';
        break;
    }
  }

  console.log(getDeviceState());
  $('.state-indicator').remove();
});

Erstellen Sie zuerst den Knoten, rufen Sie ihn ab und löschen Sie ihn schließlich. Klicken Sie hier, um die Demo anzuzeigen. Sie können versuchen, den mittleren Rand zu ziehen und dann auf Ausführen zu klicken.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn