Просмотр полной версии : Добавить cookie к play/pause фонового видео
Доброго времени суток. Не могу разобраться с cookie, да и не хочу особо вникать. Мне просто нужен рабочий код, донатик за рабочее решение скину. Код:
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
var currentVideo = document.querySelector('.play');
if (currentVideo.paused) {
currentVideo.play();
} else {
currentVideo.pause()
}
})
Нужно, чтоб запоминал вкл/выкл после перезагрузки страницы. Jquery подключена. Заранее благодарен :)
noid,
$(function() {
var currentVideo = document.querySelector('.play');
var paused = 'paused' in localStorage;
if(paused == 'false') {
currentVideo.play();
$('.video-control').addClass('video-control_active');
}
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
});
noid,
$(function() {
var currentVideo = document.querySelector('.play');
var paused = 'paused' in localStorage;
if(paused == 'false') {
currentVideo.play();
$('.video-control').addClass('video-control_active');
}
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
});
Спасибо, в локалсторадж пишет. Я должен был сразу весь код выложить, мой бок. После перезагрузки страницы видео запускается, даже при сохраненном TRUE в сторадже. Видимо очередность видео мешает. Скинул весь js-ник в личку
noid,
playlist();
$(function() {
var currentVideo = document.querySelector('.play');
var paused = 'paused' in localStorage;
if(paused == 'false') {
currentVideo.play();
$('.video-control').addClass('video-control_active');
}
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
});
заменить на
if(localStorage.paused !== 'true') playlist();
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
var currentVideo = document.querySelector('.play');
if (currentVideo && currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
noid,
... заменить на
if(localStorage.paused !== 'true') playlist();
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
Так перестало останавливаться видео и ничего не пишется в сторадж, но класс 'video-control_active' тоглится. Попробовал так:
if(localStorage.paused !== 'true') playlist();
$(function() {
var currentVideo = document.querySelector('.play');
var paused = 'paused' in localStorage;
if(paused == 'false') {
currentVideo.play();
$('.video-control').addClass('video-control_active');
}
$('.video-control').on('click', function () {
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
});
В сторадж пишется и видео реагирует на кнопку. Перезагружаю страницу из состояния:
1. Видео на паузе, сторадж=true -> в итоге видео висит на паузе и не реагирует на кнопку play. И сторадж не обновляется.
2. Перезагружаю, когда видео проигрывается и сторадж=false -> и видео и сторадж работают как надо
noid,
пробуйте, заменить на
if(localStorage.paused !== 'true') playlist();
else {
videos[currPlayVideo].classList.add('play');
videos[currPlayVideo].onended = function () {
playNextVideo();
};
$('.video-control').remove('video-control_active');
};
$('.video-control').on('click', function () {
var currentVideo = document.querySelector('.play');
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
noid,
пробуйте, заменить на
if(localStorage.paused !== 'true') playlist();
else {
videos[currPlayVideo].classList.add('play');
videos[currPlayVideo].onended = function () {
playNextVideo();
};
$('.video-control').remove('video-control_active');
};
$('.video-control').on('click', function () {
var currentVideo = document.querySelector('.play');
$(this).toggleClass('video-control_active');
if (currentVideo.paused) {
currentVideo.play();
localStorage.paused = 'false'
} else {
currentVideo.pause();
localStorage.paused = 'true'
}
})
Отлично! Все работает, за исключением состояния (внешнего вида) кнопки. Подскажите пожалуйста, как добавить проверку - если localStorage.paused == true -> тогда addClass('video-control_active') при загрузке страницы?
noid,
так может строка 7 ненужна?
noid,
так может строка 7 ненужна?
По верстке нужна, но я уже вроде нашел решение. Добавил кусок, теперь как надо:
if (localStorage.getItem("paused") == "true") {
getFav = localStorage.paused;
$(".video-control").addClass('video-control_active');
}
Спасибо Вам за помощь!
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot