Звук видео при загрузке
Добрый день.
Сайт reka63.ru . По умолчанию при загрузке страницы звук работать не должен. На Хроме работает, хотя консоль браузера выдает ошибку : "Uncaught TypeError: Cannot set property 'muted' of undefined" На Yandex браузере и на Сафари скрипт не работает. Не пойму в чем ошибка.
$('.video-container').get(0).muted = true;
$('#mute').click(function(){
mute_change(this);
});
function mute_change(obj){
if(obj.className=='mute-on'){
obj.className = 'mute-off';
$(obj).attr('title','Выключить звук');
$('.video-container').get(0).muted = false;
}
else{
obj.className = 'mute-on';
$('.video-container').attr("muted","false");
$(obj).attr('title','Включить звук');
$('.video-container').get(0).muted = true;
}
}
|
e.s.ya,
устанавливайте параметры у элемента когда он уже есть на странице а не на пустом месте
$( document ).ready(function(){
$('.video-container').get(0).muted = true;
$('#mute').click(function(){
mute_change(this);
});
video_on_off();
});
|
e.s.ya,
дубликат в другом файле можно убрать
$( document ).ready(function(){
video_on_off();
});
.ready лучше одно и в него всё что нужно |
Цитата:
$( document ).ready(function(){
$('.video-container').get(0).muted = true;
$('#mute').click(function(){
mute_change(this);
});
function mute_change(obj){
if(obj.className=='mute-on'){
obj.className = 'mute-off';
$(obj).attr('title','Выключить звук');
$('.video-container').get(0).muted = false;
}
else{
obj.className = 'mute-on';
$('.video-container').attr("muted","false");
$(obj).attr('title','Включить звук');
$('.video-container').get(0).muted = true;
}
}
function mute_show_hide(){
if($("#mute").css('display')=='none'){
mute_show();
}
else{
mute_hide();
}
}
function mute_show(){
$("#mute").css('display','block');
}
function mute_hide(){
$("#mute").css('display','none');
}
});
|
e.s.ya,
вы скрыли mute_show и mute_hide() от video_on_off() добавьте весь http://reka63.ru/js/videodown.js в ready аккуратно и без дубляжа |
e.s.ya, дубликаты убрать
$( document ).ready(function(){
$('.video-container').get(0).muted = true;
video_on_off();
$( window ).resize(function(){
video_on_off();
});
function video_on_off() {
784 >= document.body.clientWidth ? ($("video").attr("src", ""), $("video").css("display", "none"), mute_hide()) : Modernizr.video && (Modernizr.video.h264 ? $("video").attr("src", "/video/mid.mp4") : Modernizr.video.ogg && $("video").attr("src", "/video/mid.ogv"), $("video").css("display", "block"), mute_show())
}
$('#mute').click(function(){
mute_change(this);
});
function mute_change(obj){
if(obj.className=='mute-on'){
obj.className = 'mute-off';
$(obj).attr('title','Выключить звук');
$('.video-container').get(0).muted = false;
}
else{
obj.className = 'mute-on';
$('.video-container').attr("muted","false");
$(obj).attr('title','Включить звук');
$('.video-container').get(0).muted = true;
}
}
function mute_show_hide(){
if($("#mute").css('display')=='none'){
mute_show();
}
else{
mute_hide();
}
}
function mute_show(){
$("#mute").css('display','block');
}
function mute_hide(){
$("#mute").css('display','none');
}
});
|
Без дубликатов, но не работает.
$( document ).ready(function(){
$('.video-container').get(0).muted = true;
$('#mute').click(function(){
mute_change(this);
});
function mute_change(obj){
if(obj.className=='mute-on'){
obj.className = 'mute-off';
$(obj).attr('title','Выключить звук');
$('.video-container').get(0).muted = false;
}
else{
obj.className = 'mute-on';
$('.video-container').attr("muted","false");
$(obj).attr('title','Включить звук');
$('.video-container').get(0).muted = true;
}
}
function mute_show_hide(){
if($("#mute").css('display')=='none'){
mute_show();
}
else{
mute_hide();
}
}
function mute_show(){
$("#mute").css('display','block');
}
function mute_hide(){
$("#mute").css('display','none');
}
video_on_off();
$( window ).resize(function(){
video_on_off();
});
function video_on_off() {
784 >= document.body.clientWidth ? ($("video").attr("src", ""), $("video").css("display", "none"), mute_hide()) : Modernizr.video && (Modernizr.video.h264 ? $("video").attr("src", "/video/mid.mp4") : Modernizr.video.ogg && $("video").attr("src", "/video/mid.ogv"), $("video").css("display", "block"), mute_show())
}
});
|
Если скрипт дублируется в другом документе может отключить videodown.js ?
|
Цитата:
|
Теперь кнопка схлопывается, но не работает. Не нажимается т.е.
|
e.s.ya,
вы дважды грузите скрипты !!! <script src="/js/script.js"></script> строка 29 <script defer="" src="/js/script.js"></script> 223 и вместо 1 клика естественно получаите 2 -- вот и ничего нессрабатывает :cray: :cray: :cray: |
Убрал лишнюю ссылку, заработало ! Yandex браузер все равно по умолчанию воспроизводит со звуком, но дело уже наверное не в коде, а в конкретном браузере ) Рони, спасибо, вы оч. крутой спец!
|
e.s.ya,
document.body.clientWidth -- замените на кросбраузерное или используйте jQuery $(window).width() есть также
$("#content").hasClass("newsBlock") проверит наличие класса newsBlock у элемента с идентификатором content
надёжнее if(obj.className=='mute-on') и ещё много интересных вещей |
| Часовой пояс GMT +3, время: 01:51. |