Как прокручивать сцену в кадре на мобильных устройствах

Есть ли способ прокручивать кадр на мобильных устройствах, я пытался отключить элементы управления сценой, но все еще не могу прокручивать, и он продолжает взаимодействовать

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
165
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из подходов — создать элемент наложения над сценой, который предотвратит взаимодействие и

  • скрыть наложение при двойном нажатии
  • показывать оверлей при нажатии чего-либо за пределами сцены

Итак, скажем, где-то внутри вашего прокручиваемого контента у вас есть настройка HTML, подобная этой:

<div id = "aframe-content">
  <div id = "aframe-overlay"></div>
  <a-scene embedded>
      <!-- cool stuff --->
  </a-scene>
</div>

и css настроен так, чтобы оверлей работал в прокручиваемом столбце:

#aframe-content {
  position: relative;
}

#aframe-overlay {
  z-index: 10000;
  position: absolute;
}

a-scene, #aframe-overlay {
  height: 300px;
  width: 100%;
}

нам нужно только добавить js, отвечающий за скрытие/показ оверлея:

const overlay = document.querySelector("#aframe-overlay");
const acanvas = document.querySelector("canvas.a-canvas")
// helper boolean, so that on each touch we don't need to compare HTML elements
var overlayHidden = false; 

function setOverlay(enabled) {
  overlayHidden = !enabled
  overlay.style.display = overlayHidden ? "none" : "block";
}

function hideOverlay(evt) {
  if (overlayHidden && evt.target !== acanvas) {
    setOverlay(true)
  }
}

var showOverlay = setOverlay.bind(this, false)
overlay.addEventListener("dblclick", showOverlay);
window.addEventListener("click", hideOverlay);
window.addEventListener("touchstart", hideOverlay);

Вы можете проверить это в этом глюке, который, похоже, работает как на ПК, так и на мобильных устройствах. Нажмите на рыбу, чтобы увидеть исходный код.

Спасибо, я использую полноэкранную сцену, которая появляется после прокрутки до определенного момента, для этого я оставил отображаемым оверлей, только если появляется диалоговое окно (для устройств iOS с запросом разрешения) оно скрыто, а затем снова появляется после нажатия на кнопка

Abdo Sh 28.12.2020 12:30

Другие вопросы по теме