Вот код скрабера
enableDragThumb(): Observable<any> {
let parentWidth;
let thumbBarClientWidth;
const mouseUp = Observable.fromEvent(document, 'mouseup')
.merge(Observable.fromEvent(document, 'touchend'));
const mouseMove = Observable.fromEvent(document, 'mousemove')
.merge(Observable.fromEvent(document, 'touchmove'));
const thumbBarDown = Observable.fromEvent(this.thumbBar, 'mousedown')
.merge(Observable.fromEvent(this.thumbBar, 'touchstart'))
.map((evt: any) => {
evt = evt.changedTouches ? evt.changedTouches[0] : evt;
thumbBarClientWidth = this.thumbBar.clientWidth;
parentWidth = this.thumbBar.getBoundingClientRect().width - 10;
const left = ((evt.clientX - this.thumbBar.getBoundingClientRect().left) / parentWidth) * thumbBarClientWidth;
this.thumb.style.left = left - 10 + 'px';
return evt;
});
const mouseDown = Observable.fromEvent(this.thumb, 'mousedown')
.merge(Observable.fromEvent(this.thumb, 'touchstart'))
.merge(thumbBarDown)
.map((ev: any) => {
ev = ev.changedTouches ? ev.changedTouches[0] : ev;
parentWidth = this.thumbBar.getBoundingClientRect().width - 10;
return ev;
});
return mouseDown.mergeMap((md: MouseEvent) => {
this.isDragging = true;
const startX = md.clientX;
this.startLeft = (this.thumb.offsetLeft / thumbBarClientWidth) * parentWidth;
this.progress = (this.startLeft / parentWidth) * 100;
const result = mouseMove
.map((mm: any) => {
if (mm.preventDefault) {
mm.preventDefault();
}
mm = mm.changedTouches ? mm.changedTouches[0] : mm;
const left = this.startLeft + mm.clientX - startX;
if (left < 0) {
this.progress = 0;
this.thumb.style.left = 0;
} else if (left > parentWidth - 20) {
const percent = ((parentWidth - 20) / parentWidth) * 100;
this.progress = percent;
this.thumb.style.left = percent + '%';
} else {
const percent = (left / parentWidth) * 100;
this.progress = percent;
this.thumb.style.left = percent + '%';
}
})
.takeUntil(mouseUp);
result.subscribe(null, null, () => {
this.isDragging = false;
this.updateProgress();
});
return result;
});
}
Когда direction ltr скрабер работает нормально при изменении дирекшна на rtl скрабер ведет себя не нормально Проект на ангуляре, как исправить?
Виртуальный выделенный сервер (VDS) становится отличным выбором
как можно отловить событие клик по видео, дабл клик по видеоНужно сделать играть/пауза по клику и полноэкранный режим - дабл клик
Приостоновил создание сайта в теплом и уютном denvereНачал изучать вопрос хостинга
Использую апи гугл мэпс, чтобы программно получить список адресов по введенным буквам:
Приветствую всех, у меня такая задача есть вот такая таблица https://igrotekaclub/game/index