169 похожих чатов

Import React, { useEffect, useRef, useState } from 'react'; import video

from '../../assets/building.mp4';
import throttle from 'lodash/throttle';

export default function VideoPlayer() {
const videoRef = useRef(null);
const [isPlaying, setIsPlaying] = useState(false);

useEffect(() => {
const handleScroll = throttle(() => {
const currentScrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;

const isScrolling = currentScrollTop > 0;

if (isScrolling && !isPlaying) {
setIsPlaying(true);
} else if (!isScrolling && isPlaying) {
setIsPlaying(false);
}
}, 200);

window.addEventListener('scroll', handleScroll);

return () => {
window.removeEventListener('scroll', handleScroll);
};
}, [isPlaying]);

useEffect(() => {
if (isPlaying) {
videoRef.current.play();
} else {
videoRef.current.pause();
}
}, [isPlaying]);

useEffect(() => {
const handleKeyDown = (e) => {
if (e.key === 'ArrowLeft') {
e.preventDefault();
const currentTime = videoRef.current.currentTime;
const durationForGoingBack = 1;
videoRef.current.currentTime = currentTime - durationForGoingBack;
}
};

window.addEventListener('keydown', handleKeyDown);

return () => {
window.removeEventListener('keydown', handleKeyDown);
};
}, []);

const handleMouseEnter = () => {
videoRef.current.pause();
};

return (
<div
style={{ width: '100%', height: '100%', overflow: 'hidden' }}
onMouseEnter={handleMouseEnter}
>
<video ref={videoRef} loop muted playsInline style={{ width: '100%', height: '100%' }}>
<source src={video} type="video/mp4" />
</video>
</div>
);
}

почему во время скролла видео не пермативается назад по моему все должно норм работать ?

1 ответов

4 просмотра

!ро научитесь читать закрепы

Похожие вопросы

Обсуждают сегодня

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Карта сайта