Звук видео при загрузке
Добрый день.
Сайт 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, время: 19:08. |