javascript - 指针事件不会通过 javascipt 切换?
问题描述
我正在尝试在单击时淡入和淡出下拉菜单。目前使用 CSS 动画将其淡出并使用 JS 切换动画的类。我在js中创建了一个变量来检查对象是否包含淡入淡出类 - 如果元素的类不透明度为0,我希望元素的指针事件设置为无,如果元素是,则设置为全部可见,但变量不会更新并保持为假。我是 JavaScript 新手。
HTML
<button class="mobile__more">+</button>
<div class="mobile__process-nav">
<a href="#show" data-tab-target="#show" class="mobile__tab">Show</a>
<a href="#about" data-tab-target="#about" class="mobile__tab">About</a>
<a href="#researchFilm" data-tab-target="#researchFilm" class="mobile__tab">Research Film</a>
<a href="#stills" data-tab-target="#stills" class="mobile__tab">Stills</a>
<a href="#lookbook" data-tab-target="#lookbook" class="mobile__tab">Lookbook</a>
</div>
css
.mobile__process-nav {
display:flex;
flex-direction: column;
justify-content: space-evenly;
height: 30vh;
opacity: 0;
transition: opacity 0.3s ease-in-out;
-moz-transition: opacity 0.3s ease-in-out;
-webkit-transition: opacity 0.3s ease-in-out;
-ms-transition: opacity 0.3s ease-in-out;
-o-transition: opacity 0.3s ease-in-out;
}
.mobile__process-nav.fade {
opacity: 1;
}
JS
const morebtn = document.querySelector('.mobile__nav');
const processMenu = document.querySelector('.mobile__process-nav');
if (window.matchMedia("(max-device-width: 850px)").matches) {
let menuOpen = processMenu.classList.contains('fade');
morebtn.addEventListener('click', () => {
processMenu.classList.toggle('fade');
if (!menuOpen) {
console.log(menuOpen);
processMenu.style.pointerEvents = "none";
} else {
console.log(menuOpen);
processMenu.style.pointerEvents = "all";
}
})
}
解决方案
menuOpen
您应该更新点击回调中的变量
推荐阅读
- php - PHP中带有用户IP地址的cURL请求
- scip - SCIP 节点选择器中的 std 优先级和 memsave 优先级
- vba - 替换范围文本然后插入一个符号
- c++ - 能够使用 Debug.Assert() 函数需要什么?
- android - 如何解决:从 network_security_config 解析 XML 配置失败
- linux - 如何订购具有特定标准的文本文件?
- javascript - 从不同的节点插件方法多次调用 JS 函数
- gradle - Gradle 如何:从依赖项中解压缩 ZIP 文件中的 ZIP 文件,并保持增量构建功能
- laravel - Laravel 5.8 带有参数、DI 和模拟的上下文绑定永远不会起作用
- bash - 如何在 shell 中创建自己的 bash 命令选项