首页 > 解决方案 > 视差滚动在移动设备上不起作用

问题描述

嗨,我的网站上有一个视差效果滚动,它在桌面上运行良好,但在移动设备上,当我尝试滚动/向下滑动页面时,它无法正常工作。

这是javascript:

var ticking = false;
var isFirefox = /Firefox/i.test(navigator.userAgent);
var isIe = /MSIE/i.test(navigator.userAgent) || /Trident.*rv\:11\./i.test(navigator.userAgent);
var scrollSensitivitySetting = 30;
var slideDurationSetting = 800;
var currentSlideNumber = 0;
var totalSlideNumber = $('.background').length;
function parallaxScroll(evt) {
  if (isFirefox) {
      delta = evt.detail * -120;
  } else if (isIe) {
      delta = -evt.deltaY;
  } else {
      delta = evt.wheelDelta;
  }
  if (ticking != true) {
      if (delta <= -scrollSensitivitySetting) {
          ticking = true;
          if (currentSlideNumber !== totalSlideNumber - 1) {
              currentSlideNumber++;
              nextItem();
          }
          slideDurationTimeout(slideDurationSetting);
      }
      if (delta >= scrollSensitivitySetting) {
          ticking = true;
          if (currentSlideNumber !== 0) {
              currentSlideNumber--;
          }
          previousItem();
          slideDurationTimeout(slideDurationSetting);
      }
  }
}
function slideDurationTimeout(slideDuration) {
  setTimeout(function () {
      ticking = false;
  }, slideDuration);
}
var mousewheelEvent = isFirefox ? 'DOMMouseScroll' : 'wheel';
window.addEventListener(mousewheelEvent, _.throttle(parallaxScroll, 60), false);
function nextItem() {
  var $previousSlide = $('.background').eq(currentSlideNumber - 1);
  $previousSlide.css('transform', 'translate3d(0,-130vh,0)').find('.content-wrapper1').css('transform', 'translateY(40vh)');
  currentSlideTransition();
}
function previousItem() {
  var $previousSlide = $('.background').eq(currentSlideNumber + 1);
  $previousSlide.css('transform', 'translate3d(0,30vh,0)').find('.content-wrapper1').css('transform', 'translateY(30vh)');
  currentSlideTransition();
}
function currentSlideTransition() {
  var $currentSlide = $('.background').eq(currentSlideNumber);
  $currentSlide.css('transform', 'translate3d(0,-15vh,0)').find('.content-wrapper1').css('transform', 'translateY(15vh)');
  ;
}

您的帮助将不胜感激,谢谢!

标签: javascriptjquerycssparallax

解决方案


推荐阅读