Как в полной версии сайта сделать виджет «Сообщения сообщества» изначально открытым, а в мобильной - закрытым?

Голоса: +1

Здравствуйте, подскажите пожалуйста как в полной версии сайта сделать виджет «Сообщения сообщества» изначально открытым, а в мобильной - закрытым?

в head:

   <script type="text/javascript" src="//vk.com/js/api/openapi.js?127"></script>

на странице:

  <!-- VK Widget --> <div id="vk_community_messages"></div> <script type="text/javascript"> VK.Widgets.CommunityMessages("vk_community_messages", 125352938 ); </script>

если после 125352938 поставить {shown: "1"} , то виджет будет открыт, но тогда загородит пол экрана в мобильном

Адрес сайта gymbalance.ru
| Автор: | Категория: JavaScript

Ответов: 3

голоса: +3
 
Лучший ответ
  1. Сделайте бекап шаблона. Дальше, в глобальный блок "Нижняя часть сайта" перед тогом </body> добавьте.

<script>

(function () {
  var $window = $(window),
  isHidden = 0;
  function checkWidth() {
    var windowsize = $window.width();
    if (windowsize >= 768) {
      if (isHidden) {
        isHidden = 0;
        CommunityMessages(isHidden);
      }
    } else {
      if (!isHidden) {
        isHidden = 1;
        CommunityMessages(isHidden);
      }
    };
  };
  function CommunityMessages(a) {
    VK.Widgets.CommunityMessages('vk_community_messages', 125352938, {
      shown: a
    });
  };
  checkWidth();
  $(window).resize(checkWidth);
}) ();
</script>

 

Код ниже удалите у себя с шаблона:

  <script type="text/javascript"> VK.Widgets.CommunityMessages("vk_community_messages", 125352938 ); </script>
| Автор:
Выбор ответа лучшим | | Автор: Andrey Filimonov
Сделал так. В полной версии совсем нет виджета, а в мобильной уже раскрытый.   В "Нижней части сайта" у меня нет body совсем. Вставил перед </body> на главной странице (div тоже на главной странице со всем остальным)

<script>

(function () {
  var $window = $(window),
  shown = null;
  function checkWidth() {
    var windowsize = $window.width();
    if (windowsize >= 768) {
      if (shown === 0 || shown === null) {
        shown = 1;
        CommunityMessages();
      }
    } else {
      if (shown === 1 || shown === null) {
        shown = 0;
        CommunityMessages();
      }
    };
  };
  function CommunityMessages() {
    VK.Widgets.CommunityMessages('vk_community_messages', 125352938, {
      shown: shown
    });
  };
  $window.resize(checkWidth);
  checkWidth();
}) ();
</script>

Попробуйте так.

Guest_143344550441,
Вот так работает!) Спасибо
Голоса: +1

Закрытым, что вы имеете ввиду, чтобы блок с виджетом не отображался в мобильной версии, если это так, то можно завернуть в условие:

<?ifnot($USER_AGENT_PDA$)?>здесь код вижета<?endif?>

| Автор:

нет, если поставлено условие {shown: "1"} то диалог уже открыт а если убрать - то свёрнут 

очень хотелось бы в полной версии развёрнутый вариант, а в мобильной - свёрнутый

Голоса: +1

Сделайте так....

 

<!-- VK Widget --> <div id="vk_community_messages"></div> <script type="text/javascript"> VK.Widgets.CommunityMessages("vk_community_messages", 125352938 <?ifnot($USER_AGENT_PDA$)?> {shown: "1"}<?endif?> ); </script>

| Автор:
В полной версии виджет пропал, а в мобильной есть, свёрнутый)
...