Javascript 如何在超过一定的窗口宽度后从对象中删除类
我有一堆LI元素,每个元素都有类。因此,由于响应能力,我希望在1050px之后删除这些类。我还没有尝试过用jQuery编写它,但是如果您认为它能够让它工作,那么请随意使用jQuery。 PS:不,我不能仅仅覆盖CSS中的属性,我必须删除它们Javascript 如何在超过一定的窗口宽度后从对象中删除类,javascript,html,css,Javascript,Html,Css,我有一堆LI元素,每个元素都有类。因此,由于响应能力,我希望在1050px之后删除这些类。我还没有尝试过用jQuery编写它,但是如果您认为它能够让它工作,那么请随意使用jQuery。 PS:不,我不能仅仅覆盖CSS中的属性,我必须删除它们 var itemsArray=[].slice.call(document.querySelectorAll(“.list li”); var i=0; 函数检查(){ 如果(this.innerWidth为什么不在媒体查询中应用与该类关联的样式,使其仅在
var itemsArray=[].slice.call(document.querySelectorAll(“.list li”);
var i=0;
函数检查(){
如果(this.innerWidth为什么不在媒体查询中应用与该类关联的样式,使其仅在1050px下生效
@media screen and (max-width: 1050px) {
.disblck {
/* styles */
}
.disnone {
/* styles */
}
}
尽管有最佳实践,但当窗口超过1050px时,您似乎仍然希望删除这些CSS类(我的意思是,对憎恨者来说,他的句柄是“KeyBasher”lolz)
可以将调整大小事件处理程序添加到窗口对象
function handleAbove1050px(){
const isAbove1050px = window.innerWidth > 1050
if(isAbove1050px) {
// remove the classes
itemsArray.forEach(item => {
item.classList.remove('disblck')
item.classList.remove('disnone')
})
}
else {
// add them back
itemsArray.forEach(item => {
item.classList.add('disblck')
item.classList.add('disnone')
})
}
}
window.addEventListener('resize', handleAbove1050px)
这里有一个问题:因为它们与其他属性冲突…我滥用了!重要规则,没有太多时间重新编写代码…我在两年前写了这篇文章,我再次访问它,因为这是我学校的一个竞赛…@KeyBasher你的问题没有提到这一点。冲突是什么?当然你可以创建CSS规则t更具体的是,按照@Phil的建议去做,并使你的CSS选择器更具体。例如,li。disblck
将覆盖li
或disblck
,只要你在需要的地方包括!重要的。如果需要,将另一个类添加到所有
。“不,我不能只覆盖CSS中的属性,我必须删除它们”@KeyBasher-这对你有用吗?你查看了JSFIDLE链接了吗?