javascript - 在每个车轮事件上更改页面
问题描述
我很难解决这个问题。用户使用轮子时尝试更改页面(组件)。这些是我正在尝试的参考页面。
http://www.harukimurakami.com/
https://redredefined.preciosacomponents.com/
所以我试图添加active
类第一个元素,并在每次用户使用轮子时从最后一个元素中删除它。但是过得很艰难。
name: 'home',
components: {
"news-landing": newslanding,
"news-library": newslibrary,
"news-contact": newscontact,
},
data(){
return {
};
},
created () {
window.addEventListener('wheel', this.handleScroll);
},
destroyed () {
window.removeEventListener('wheel', this.handleScroll);
},
methods: {
handleScroll(event) {
const delta = Math.sign(event.deltaY);
let classes = [];
let nodes = [];
classes = document.querySelectorAll(".common");
nodes = Array.prototype.slice.call(classes, 0);
if (delta == 1) {
nodes.forEach((item, key) => {
if (item.classList.contains("active")) {
}
})
}
}
}
这是实时代码沙箱:
解决方案
你应该像这样改变你的方法:
handleScroll(event) {
const delta = Math.sign(event.deltaY);
let i;
let nodes = document.querySelectorAll(".common");
for(i = 0; i < nodes.length; i++)
{
if(nodes[i].classList.contains('active'))
{
if(delta>0)
{
if(i < nodes.length - 1)
{
nodes[i].classList.remove('active');
nodes[i+1].classList.add('active');
break;
}
}
else
{
if(i > 0)
{
nodes[i].classList.remove('active');
nodes[i-1].classList.add('active');
break;
}
}
}
}
}
推荐阅读
- string - 为什么这段代码做错误的计算?
- python - 如何从未指定变量名的 jupyter 笔记本单元格中获取输出?
- kotlin - 如何使用 Kotlin KClass 属性 simpleName 生成空值
- python - 为什么模型的图层形状是 (1000,) 而不是 Keras 中的 (1000)?
- php - 让 JW Player 响应式
- c# - 如何在 DynamicMethod 中调用 DynamicMethod
- laravel - 属性'开始'未定义的vuejs laravel
- python - Django 网站部署到 heroku。应用程序错误
- python - 为什么这个批处理脚本没有启动我的 python 程序?
- java - 有没有办法让我的前台服务不间断地运行。当最小化窗口中的Cross(X)按钮清除手机缓存时它会停止吗?