我在滚动事件中有以下代码:
stickySliderItems.forEach( function( item, i ) {
if(i) { // exclude first
let meScrollStart = scroll - sliderWrapperT - ( i * sliderItemH );
let meScroll = _clamp( meScrollStart, min, max);
let meShift = (i === sliderItemNum) ? maxS : meScroll.map(min, max, minS, maxS); // except last one
item.style.transform = "translate(" + meShift + "px," + meScroll + "px)";
if ( meScroll >= max - fadeMargin && !item.classList.contains("finished") ) {
item.classList.add("finished");
stickySliderItems[i-1].classList.remove("finished");
}; // can’t get this to work backwards
};
});
我喜欢做的事情显然很简单(在 jQuery 中对我来说确实如此),但在纯 JS 中很难实现。当我的代码将“finished”类附加到一个元素时,它应该同时从前一个兄弟元素中删除它。
我试了很多。 previousSibling 等没有任何作用。我的概念错误在哪里?