Да, просто замени весь шаблон на этот:
|

10.08.2019, 19:01
|
|
Аспирант
|
|
Регистрация: 16.09.2012
Сообщений: 38
|
|
|
Добавить 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 подключена. Заранее благодарен 
|
|

10.08.2019, 19:20
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,156
|
|
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'
}
})
});
Последний раз редактировалось рони, 10.08.2019 в 19:23.
|
|

11.08.2019, 19:04
|
|
Аспирант
|
|
Регистрация: 16.09.2012
Сообщений: 38
|
|
Сообщение от рони
|
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, 12.08.2019 в 14:37.
|
|

11.08.2019, 20:41
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,156
|
|
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'
}
})
Последний раз редактировалось рони, 11.08.2019 в 23:28.
|
|

11.08.2019, 22:49
|
|
Аспирант
|
|
Регистрация: 16.09.2012
Сообщений: 38
|
|
Сообщение от рони
|
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 -> и видео и сторадж работают как надо
|
|

11.08.2019, 23:39
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,156
|
|
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'
}
})
|
|

12.08.2019, 13:52
|
|
Аспирант
|
|
Регистрация: 16.09.2012
Сообщений: 38
|
|
Сообщение от рони
|
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, 12.08.2019 в 14:05.
|
|

12.08.2019, 14:13
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,156
|
|
|
noid,
так может строка 7 ненужна?
|
|

12.08.2019, 14:26
|
|
Аспирант
|
|
Регистрация: 16.09.2012
Сообщений: 38
|
|
Сообщение от рони
|
noid,
так может строка 7 ненужна?
|
По верстке нужна, но я уже вроде нашел решение. Добавил кусок, теперь как надо:
if (localStorage.getItem("paused") == "true") {
getFav = localStorage.paused;
$(".video-control").addClass('video-control_active');
}
Спасибо Вам за помощь!
|
|
|
|