Как настроить определение экрана? - PullRequest
0 голосов
/ 11 мая 2018

Добрый день!

Найден скрипт в сети для определения размера экрана, но я не могу понять, как правильно установить определение isMobile, isTablet, isDesktop.

function() {
    var i = {
        mobile: "mobile",
        tablet: "tablet",
        desktop: "desktop",
        oldHeight: null,
        oldWidth: null,
        current: function() {
            return this.define()
        },
        isMobile: function() {
            return this.define() === this.mobile
        },
        isTablet: function() {
            return this.define() === this.tablet
        },
        isDesktop: function() {
            return this.define() === this.desktop
        },
        define: function() {
            return this.width() < 768 ? this.mobile : this.width() < 1360 ? this.tablet : this.desktop
        },
        height: function() {
            return window.innerHeight
        },
        width: function() {
            return window.innerWidth
        },
        init: function() {
            this.oldHeight = window.innerHeight, this.oldWidth = this.define()
        }
    };

Скажите, пожалуйста ...

Теперь я использую этот метод:

if(
    (screen.width <= 640) || 
    (window.matchMedia && 
     window.matchMedia('only screen and (max-width: 640px)').matches
    )
  ){
   // Do the mobile thing
}

Но я думаю, что приведенный выше скрипт более универсален.

P.S. Может есть более правильные способы определения размеров экрана?

Спасибо

1 Ответ

0 голосов
/ 11 мая 2018

Как вы вызываете метод isMobile? Кажется, это будет работать нормально, если вы удалите внешнее анонимное function и вызовете методы, подобные i.isMobile() - для меня, который сообщает false, когда у меня развернут браузер, и true, если я уменьшу браузер до ширины менее 768 пикселей ...

...