JavaScript 鼠标滚轮事件在垂直滚动时水平滚动页面

标签 javascript jquery

我试图检测用户何时在固定高度元素上向上或向下滚动,并相应地更新元素的transform:translateX CSS值,以将内容向左滚动或向右滚动两次。但是,我不知道如何从增量中获取正确的值。

document.getElementById("list").addEventListener("wheel", myFunction);

function myFunction(event) {
  var matrix = $('.gallery-list').css('transform').split(/[()]/)[1];

  var y = parseInt(event.deltaY);
  var posX = parseInt(matrix.split(',')[4]);

  console.log(y);
  console.log(posX);
  console.log(y + posX);

  //$('.gallery-list').css('transform', 'translateX('+posX + y+'px)');
}

这里有一个 Codepen:https://codepen.io/kylehagler/pen/OKxMGr

最佳答案

将其添加到您的 CSS 中:

.outside {
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  position: absolute;
}

用以下内容包围画廊列表 div:

<div id="outside" class="outside">

最后,这是 JS:

document.getElementById("outside").addEventListener("wheel", myFunction);

var total = 0;

function myFunction(event) {
  var y = parseInt(event.deltaY);
  
  total += y;
  
  $(".gallery-list").css('transform', 'translateX(' + total + 'px)');
}

关于JavaScript 鼠标滚轮事件在垂直滚动时水平滚动页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776865/

相关文章:

javascript - 如何在c++中使用html、javascript

javascript - GA——Javascript Array Auto 的 onClick with Name in Alpha

javascript - 什么时候使用 "class"与 "id"?

javascript - Highcharts : Stacked barchart on hover change the opacity

javascript - 这个老式的 ajax 调用可以用 jquery 轻松完成吗?

javascript - 使用for循环在javascript中计算正弦值,但它不断崩溃。为什么?

jQuery 水平菜单动画表现得很奇怪

javascript - 加载 ajax 加载的 div 的 innerHtml

javascript - fs.createReadStream循环未完成

javascript - 如何读取 JSON 文件并将键/值对加载到字典中