【发布时间】:2018-03-22 19:51:04
【问题描述】:
是否有任何允许在元素上切换样式(而不是类)的原生 JavaScript 函数?
到目前为止,我正在使用这种脚本:
target.addEventListener('click', (e) => {
target.classList.toggle('target--is-visible')
}
按照风格:
target {
visibility: hidden;
&--is-visible {
visibility: visible;
}
}
我很乐意被允许这样做:
target.addEventListener('click', (e) => {
target.style.toggle.visibility = 'visible'
}
编辑
Ternary Operator 在可读性方面最接近我所寻找的。p>
@GuyWhoKnowsStuff 发送的函数使用三元运算符,值得分享:
const div = document.querySelector('div');
function toggleStyle(el, prop, style1, style2) {
el.style[prop] = el.style[prop] === style1 ? style2 : style1;
}
div.addEventListener('click', e => {
toggleStyle(div, 'background', 'red', 'blue');
});
感谢您的回答!
【问题讨论】:
-
你可以尝试类似
target.style.visibility = target.style.visibility == 'visible' ? 'hidden' : 'visible'但是切换css类是更干净的方法 -
@Satpal - toggle 不是样式属性
-
感谢四位您的评论@Satpal!这是我正在寻找的简单方法。为什么不是更清洁的方法?在可读性或性能方面?
标签: javascript html css