0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 2619 Просмотров
*

Ruslan Chester

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Всем привет!сайт fishkasecond.tmweb.ru/sushi .Есть html-модуль вывода параллакс-блока. От <640px разрешения экрана данный блок хочу скрыть в самом коде. Пока скрыл его через CSS, но это плохая реализация (скорость загрузки страницы). Подскажите как на php запретить отображение модуля на определенном разрешении. Спасибо! Если продублировал тему, извините...не нашел похожего. В качестве примера хочу скрыть блок"position-akzii"
Код
<jdoc:include type="modules" name="position-after-header" style="xhtml" />
<jdoc:include type="component" style="xhtml"/>
<jdoc:include type="modules" name="position-after-content" style="xhtml" />
<jdoc:include type="modules" name="position-akzii" style="xhtml" />
<jdoc:include type="modules" name="position-before-footer" style="xhtml" />
<jdoc:include type="modules" name="position-footer" style="xhtml" />
*

1-F7

  • Захожу иногда
  • 197
  • 0 / 0
Оберните позицыю модуля в <div class="тест">

Код
<div class="test">
<jdoc:include type="modules" name="position-after-content" style="xhtml" />
</div>

Затем задайте стиль с помощью медиа запроса в CSS

Код
@media screen and (max-width: 750px){.mobile{display:none}}


В моем примере класс "тест" будет скрываться если расширения экрана меньше 750 px.

В общем почитайте в интернете по медиа запросом и изучите стиль.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Подскажите как на php запретить отображение модуля на определенном разрешении.

Посредством PHP узнать (подстраиваться) разрешение экрана нельзя.

Или через jQuery или @media.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
1-F7, читайте повнимательнее: ТС написал
Пока скрыл его через CSS
Ruslan Chester, когда сервер готовит запрашиваемую страницу, он не имеет понятия, какое разрешение у клиента: такой информации нет в заголовках запроса. Разрешение определяется на стороне браузера, когда страница уже пришла в готовом виде, посредством CSS или JavaScript. Так что нет способа заранее узнать разрешение экрана, если только не записать его в cookies, но и это не будет работать для первого раза.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

1-F7

  • Захожу иногда
  • 197
  • 0 / 0
Ну это понятно. Пусть сам тогда думает над размерами разрешения своего сайта.
*

Ruslan Chester

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
*

Ruslan Chester

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Выношу необтесанное решение на суд гуру и может это кому-нибудь поможет...Была задача: наладить взаимодействие некоторого блока на сайте при определенном разрешении экрана, но не легким способом через медиа-запросы а накорню, чтобы не нагружать сервер излишними запросами на ресурсы.Делать мобильную версию не хотелось, только адаптивную.Если очень коротко, то внутри произвольного модуля вставил
Код
<script>if(window.matchMedia('(max-width: 768px)').matches)
{
  document.write('весь html-код модуля');
    } else;
     
    return false;</script>
Первоисточник https://danilin.biz/media-query-in-jquery.htm   .Необходимо при этом также убрать пробелы перед тегами внутри вставляемого кода(.replace), но я просто вручную убрал. Полученный итог:
 похож на RESS(при изменении размера окна браузера блок не добавляется и не убирается - только при перезагрузке страницы) и самое главное нет ненужных запросов к серверу(я избавился так от 10 загружаемых больших изображений, которые мне не нужны были на телефонах и планшетах).Пытался подобное произвести через вызов модуля из index.php, но не смог сладить с пробелами
Код
<script>if(window.matchMedia('(max-width: 768px)').matches)
{
  document.write('<jdoc:include type="modules" name="position-after-content" style="xhtml" />');
    } else;
     
    return false;</script>
Явно "америку" не открыл, но интересно почитать мнения профи
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
К слову. Разрешение экрана и разрешение браузера-разные вещи.
Насколько я помню, есть отличие между ними, просто пример, если через функцию:

$(function() {
    if(screen.height<768) {

и

$(function() {
    if($(window).height()<768) {
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Ruslan Chester

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
.matchMedia даст истинный размер окна браузера с учетом отступов и полос прокрутки. Но это не принципиально для малых девайсов
*

radiant

  • Захожу иногда
  • 114
  • 3 / 0
В идеале, получить переменную из script в php, а дальше в php использовать переменную и скрывать нужные блоки.

Код
<script type="text/javascript">
function forMobile(x) {
if (x.matches) {
//document.body.style.backgroundColor = 'yellow'; // цвет фона
var phone = '1'; // переменная в script
} else {
//document.body.style.backgroundColor = 'pink'; // цвет фона
var phone = '0'; // переменная в script
}
}
var x = window.matchMedia('(max-width: 480px)')
forMobile(x)
x.addListener(forMobile)
</script>
<?php echo $phone; // переменная в php ?>

Но как в php узнать переменную из script, чтоб ее использовать дальше?
« Последнее редактирование: 14.03.2021, 13:28:33 от radiant »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться