Войти с помощью github
Форум /

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

modules.define('main', ['i-bem__dom'], function(provide, BEMDOM) {

  provide(BEMDOM.decl(this.name, {
    onSetMod: {
      'js': {
        'inited': function() {


          if (BEMDOM.win.width() >= 840) {

            this.setMod('desktop');

          } else if (BEMDOM.win.width() >= 480 && BEMDOM.win.width() <= 839) {

            this.setMod('touch-pad');

          } else if (BEMDOM.win.width() <= 479) {

            this.setMod('touch-phone');
          }


          this.bindToWin('resize', function(e) {

            if (BEMDOM.win.width() <= 479 && this.hasMod('touch-pad')) {

              this.delMod('touch-pad');
              this.setMod('touch-phone');

            } else if (BEMDOM.win.width() >= 480 && BEMDOM.win.width() <= 839 && this.hasMod('touch-phone')) {

              this.delMod('touch-phone');
              this.setMod('touch-pad');

            } else if (BEMDOM.win.width() >= 480 && BEMDOM.win.width() <= 839 && this.hasMod('desktop')) {
              this.delMod('desktop');
              this.setMod('touch-pad');

            } else if (BEMDOM.win.width() >= 840 && this.hasMod('touch-pad')) {
              this.delMod('touch-pad');
              this.setMod('desktop', true);

            }

          });

        }
      }

    }
}));

});