Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Звук видео при загрузке (https://javascript.ru/forum/css-html-browser/43272-zvuk-video-pri-zagruzke.html)

e.s.ya 29.11.2013 13:44

Звук видео при загрузке
 
Добрый день.

Сайт 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;
    }
}

рони 03.12.2013 13:51

e.s.ya,
устанавливайте параметры у элемента когда он уже есть на странице а не на пустом месте
$( document ).ready(function(){
$('.video-container').get(0).muted = true;

$('#mute').click(function(){
    mute_change(this);
});


    video_on_off();
});

рони 03.12.2013 14:14

e.s.ya,
дубликат в другом файле можно убрать
$( document ).ready(function(){
    video_on_off();
});
.ready лучше одно и в него всё что нужно

e.s.ya 03.12.2013 14:44

Цитата:

Сообщение от рони (Сообщение 284239)
e.s.ya,
устанавливайте параметры у элемента когда он уже есть на странице а не на пустом месте
$( document ).ready(function(){
$('.video-container').get(0).muted = true;

$('#mute').click(function(){
    mute_change(this);
});


    video_on_off();
});

Ошибка звука исчезла, теперь консоль ругается на "mute_show"и не исчезает кнопка (
$( 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');
}
});

рони 03.12.2013 14:54

e.s.ya,
вы скрыли mute_show и mute_hide() от video_on_off()

добавьте весь http://reka63.ru/js/videodown.js в ready аккуратно и без дубляжа

рони 03.12.2013 14:59

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');
}
});

e.s.ya 03.12.2013 15:10

Без дубликатов, но не работает.
$( 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())
}

});

e.s.ya 03.12.2013 15:12

Если скрипт дублируется в другом документе может отключить videodown.js ?

рони 03.12.2013 15:19

Цитата:

Сообщение от e.s.ya
Если скрипт дублируется в другом документе может отключить videodown.js ?

я же вам написал убрать дубликаты -- естественно сейчас videodown.js ненужен

e.s.ya 03.12.2013 15:28

Теперь кнопка схлопывается, но не работает. Не нажимается т.е.


Часовой пояс GMT +3, время: 08:12.