#javascript
#javascript
Вопрос:
Страница, над которой я работаю, имеет эффект наклона, который влияет на ориентацию тела сайта. Я хочу отключить это, когда страница достигнет области просмотра мобильного устройства; Я посмотрел и попробовал несколько вещей, но, похоже, не могу добиться желаемого эффекта. Приведенный ниже код — это то, что я использую. Этот скрипт выполняется отдельно от моего основного JS-кода.
window.addEventListener("mousemove",function(e) {
var width = window.innerWidth;
var height = window.innerHeight;
var clientHeight = document.body.clientHeight;
var skew = {};
skew.y = (20 * ((e.x / width) - 0.5));
skew.x = -(20 * ((e.y / height) - 0.5));
document.body.style.webkitTransform = "perspective(" clientHeight "px) rotateX(" skew.x "deg) rotateY(" skew.y "deg)";
});
Комментарии:
1. Что значит «отключить это»? Например, просто не запускать этот скрипт, если экран пользовательского устройства меньше определенного размера? Или динамически отключать и включать его в ответ на изменение пользователем размера окна браузера?
2. Я бы хотел, чтобы наклон включался только тогда, когда окно broswer имеет полный размер.. Я попробовал следующее. window.addEventListener(‘resize’, функция(){ если(window.innerWidth > 568){ … выполнить скрипт } Но, похоже, это не работает, я предполагаю, что я не знаю синтаксиса для запуска скрипта?
Ответ №1:
Изменения CSS сами по себе не удалятся, поэтому вам придется удалить преобразование вручную, если окно браузера меньше нужного вам размера.
Проверьте изменение размера окна,
window.addEventListener('resize', function() {
if (window.innerWidth < 568) {
document.body.style.webkitTransform = '';
}
});
А также убедитесь, что вы не применяете его повторно, если пользователь перемещает мышь.
// This is the function you already have
window.addEventListener('mousemove', function(e) {
if (window.innerWidth < 568) {
return;
}
...
}
Комментарии:
1. Итак, я бы добавил их в JS-файл, который отвечает за эффект, или в основной JS-файл для сайта?
2. Файл JS, отвечающий за эффект. Второй фрагмент кода — это модификация того, что вы опубликовали изначально, просто добавьте этот оператор if внутри функции mousemove.
3. Ладно, я думаю, у меня получилось, что по большей части это работает, в мобильном режиме все еще немного скручивается, но это лучше, чем было.. Большое спасибо за помощь.
4. Если изначально в нем все еще есть twist, попробуйте запустить document.body.style. webkitTransform = «; при загрузке страницы. Если мой ответ решил вашу проблему, пожалуйста, отметьте его как «принятый», установив большую галочку.