- 1
- 2
- 3
- 4
- 5
- 6
- 7
dom.reClass('anim-shit-code-shining');
Object.prototype.reClass = function(cls){
this.classList.remove(cls);
void this.offsetWidth;
this.classList.add(cls);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 2
−56
dom.reClass('anim-shit-code-shining');
Object.prototype.reClass = function(cls){
this.classList.remove(cls);
void this.offsetWidth;
this.classList.add(cls);
}
Изобрел джиниальный способ перезапустить анимацию класса. Работает, че.
−47
dom.listener('animationend', function(){
alert('ЗАЕБОК');
});
Object.prototype.listener = function(type, callback){
let token = 'listener' + rand(1000, 9999);
this.setClass(true, token);
this.addEventListener(type, done);
function done(event){
if(event.path[0].className.indexOf(token) == -1)return;
this.setClass(false, token);
this.removeEventListener(type, done);
isCallback(callback);
}
};
Надо было по окончанию анимации запустить функцию. Обычный listener также слушал дочерние элементы, а не только тот, на который я его повесил, в результате, все шло по писте.
А вот мой glistener вешает на нужный X элемент класс вида 'listener49512', и вызывает callback, если событие произошло именно у X элемента с этим классом, а не где-то еще.
p.s. setclass, iscallback - мои говнотулы, потому что jq и прочее дерьмо для слабаков!