Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2019, 00:39
Интересующийся
Отправить личное сообщение для Saitama Посмотреть профиль Найти все сообщения от Saitama
 
Регистрация: 30.01.2019
Сообщений: 10

Бесконечное движение видео по горизонтали
Здравствуйте, уважаемые специалисты по JS
У меня есть два скрипта.
Первый скрипт двигает фоновую картинку - по горизонтали.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
<style type="text/css">
body{
  background-image:url('https://w-dog.ru/wallpapers/3/4/436036299520318/pole-doroga-pejzazh-leto.jpg');
}
</style>
<script language="JavaScript" type="text/javascript">
 
  
window.setInterval(function () {
    if (!this.a || this.a < 0) this.a = 20000;
    else this.a--;
    document.body.style.backgroundPosition = this.a + "px 100%"
}, 50);
 
</script>
</head>
<body></body>
</html>


Второй скрипт - воспроизводит видео на всю страницу.
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>loop</title>
 </head> 
 <body>
 
 
  <video autoplay loop muted controls>
    <source src="1.mp4">
  </video>
 
<audio muted="muted">
</audio>
 
 
 </body> 
</html>


Вот этот код двигает видео вправо, но не бесконечно.
let x = 0
let v = document.querySelector("video")
let w = window.innerWidth
window.setInterval(function () {
    if(x == w - v.offsetWidth - 10) x = 0
    x++
    v.style.marginLeft = x + "px"
}, 50);



Скажите - как заставить видео - бесконечно двигаться по горизонтали, как картинку из первого скрипта ?
То есть чтобы видео было как фоновая картинка - левая сторона видео - граничила бы с правой стороной другого такого же видео.
Я не знаю как это сделать, возможно нужно несколько плееров как-то выстроить в один ряд и двигать их вправо.
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2019, 11:06
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<!DOCTYPE html>
<html>
<head>
	<meta name="viewport" content="initial-scale=1,width=device-width">
</head>

<body>
	<style>
		#canvas-bg {
			position: fixed;
			pointer-events: none;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: black;
			z-index: -1;
		}
	</style>
	<script>
		
(function() {
	var canvas = document.createElement("canvas");
	var context = canvas.getContext("2d");

	var video = document.createElement("video");
	video.autoplay = true;
	video.muted = true;
	video.loop = true;

	video.src = "https://sample-videos.com/video123/mp4/240/big_buck_bunny_240p_30mb.mp4";

	video.oncanplay = function() {
		video.oncanplay = null;
		video.play();
		loop(0);
	};

	canvas.id = "canvas-bg";

	function loop(time) {
		var p = time % 30000 / 30000;
		var ρ = canvas.height / video.videoHeight;
		var videoWidth  = ρ * video.videoWidth;
		var videoHeight = ρ * video.videoHeight;
		var x = -p * videoWidth;

		context.clearRect(0, 0, canvas.width, canvas.height);

		while(x < canvas.width) {
			context.drawImage(video, x, 0, videoWidth, videoHeight);
			x += videoWidth;
		}

		requestAnimationFrame(loop);
	}

	function onresize() {
		canvas.width = innerWidth;
		canvas.height = innerHeight;
	};

	onresize();

	addEventListener("resize", onresize);

	document.documentElement.appendChild(canvas);
})();
	</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение видео на сайте по расписанию. Grasss Общие вопросы Javascript 20 06.11.2017 20:54
Видео без <VIDEO> и FLASH DIGIUS Общие вопросы Javascript 1 25.10.2016 03:34
Сайт торент видео онлайн (через браузер). nemo84 Ваши сайты и скрипты 1 18.05.2013 21:07