#javascript #html #css #dom #addeventlistener
Вопрос:
Я пытаюсь заставить видео вращаться при нажатии на кнопку. Я действительно подзабыл свои навыки JS для начинающих и не могу понять эту простую вещь. В любом случае, может быть, я что-то путаю, но может ли кто-нибудь объяснить мне, почему это не работает?
let video = document.querySelector('.video');
let rotateBtn = document.querySelector('.rotate-btn');
function addRotation() {
video.classList.add('.video-rotate');
}
rotateBtn.addEventListener('click', function() {
addRotation(video);
});
* {
box-sizing: border-box;
}
#demo-container {
text-align: center;
}
.video-rotate {
transform: rotate(270deg);
}
<div class="live-demo">
<h1 class="live-demo-title">Live Demo</h1>
<div class="rotate">
<button class="rotate-btn">Rotate</button>
</div>
<div id="demo-container">
<video class="video" width="500px" height="700px" controls autoplay>
<source src="media/myFlix-Iphone-LiveDemo.mp4" type="video/mp4">
<source src="media/myFlix-Iphone-LiveDemo.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
</div>
</div>
Комментарии:
1. Вы не указываете имя
.
класса при вызове.classList.add()
2.
video.classList.add('video-rotate');
3. все еще не работает
4. Это сработало, когда я попробовал.
Ответ №1:
Я не слишком уверен, что это ответ, но вместо
video.classList.add(".video-rotate");
делать
video.classList.add("video-rotate");
Поэтому удалите точку перед видео-поверните.
Ответ №2:
Похоже, что реализация функции addRotation() принимает параметр видео, но фактическая функция его не принимает. А также вам нужно добавить имя класса без точки вот так
function addRotation(video) {
video.classList.add('video-rotate');
}
rotateBtn.addEventListener('click', function() {
addRotation(video);
});
Надеюсь, это сработает 🙂
Комментарии:
1. Функция использует глобальную переменную
video
.