切换样式与纯javascript中的类相同

切换样式与纯javascript中的类相同,javascript,Javascript,我有一些代码,当点击一个按钮时,它会切换一个活动类。同时,我需要在切换元素上设置一个上边距,一旦再次单击按钮并删除切换类,也需要删除该元素。我无法将顶部边距设置为活动类的一部分,因为我需要通过检查另一个元素的高度来动态获取边距值 这是我必须切换类并添加边距的代码 var sizeBtn = document.querySelector(".size-toggle-btn"); var sizeItems = document.querySelector(".sele

我有一些代码,当点击一个按钮时,它会切换一个活动类。同时,我需要在切换元素上设置一个
上边距
,一旦再次单击按钮并删除切换类,也需要删除该元素。我无法将
顶部边距设置为活动类的一部分,因为我需要通过检查另一个元素的高度来动态获取边距值

这是我必须切换类并添加边距的代码

var sizeBtn = document.querySelector(".size-toggle-btn");
var sizeItems = document.querySelector(".select-items");
var elementHeight = document.querySelector(".Detail-Container__inline").offsetHeight ;

sizeBtn.addEventListener("click", function(e) {
    sizeItems.classList.toggle('size-toggle--active')
    sizeItems.style.marginTop = "-" + elementHeight + "px";
});

但是,很明显,当再次单击按钮时,这不会删除样式,因此基本上我需要像活动类一样切换样式。是否还有其他方法可以执行此操作?

您需要检查是否存在className,以便代码可以是:

var sizeBtn=document.querySelector(“.size toggle btn”);
var sizeItems=document.querySelector(“.select items”);
var elementHeight=document.querySelector(“.Detail-Container\uuu inline”).offsetHeight;
sizeBtn.addEventListener(“单击”,函数(e){
if(sizeItems.classList.contains('size-toggle--active')){
sizeItems.classList.remove('size-toggle--active')
sizeItems.style.marginTop=null;
}
否则{
sizeItems.classList.add('size-toggle--active')
sizeItems.style.marginTop=“-”+元素高度+“px”;
}
});