Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Исчезающий блок с видео (https://javascript.ru/forum/misc/43271-ischezayushhijj-blok-s-video.html)

e.s.ya 29.11.2013 13:28

Исчезающий блок с видео
 
Добрый день!
Сайт reka63.ru Не корректно работает скрипт. Написан он для того, чтобы видеоподложка и кнопка звука на сайте отображались только на экранах больших размерах. Все работало исправно, пока не добавил анализ браузеров($ brouser). В данный момент функция «video_on_off» привязанная к событию .resize срабатывает только на "схлопывание" . Т.е при уменьшении размера окна видео с кнопкой исчезает, а при увеличении окна обратно не появляется. В чем ошибка ?

$( document ).ready(function(){
video_on_off();
});

$( window ).resize(function(){
video_on_off();
});

function video_on_off(){

if(document.body.clientWidth<=784){
$('video').attr('src','');
$('video').css('display','none');
mute_hide();
}
else{

if (browser=="opera"){

$('video').attr('src','/video/mid.ogv');
$('video').css('display','block'); 
mute_show();
}
else{

$('video').attr('src','/video/mid.mp4');
$('video').css('display','block'); 
mute_show();

}

}
}

Kaizoku 02.12.2013 02:43

не узнает переменную browser

e.s.ya 02.12.2013 11:36

Если писать выражение в виде: ($.brouser.opera), то скрипт работает и на схлопывание и на расхлоп, НО теперь скрипт перестает работать в Опере- не подгружает видеофайл с нужным расширением. Замкнутый круг. Как быть ?

рони 02.12.2013 12:23

e.s.ya,
версия
Цитата:

Сообщение от e.s.ya
Если писать выражение в виде: ($.brouser.opera),

нет такой функции в jQuery и никогда небыло, а почему?

e.s.ya 02.12.2013 13:04

Рони, уровень моих знаний в jQuery крайне низок, если можно сказать , он вообще никакой. По этим причинам Ваш вопрос ставит меня в тупик.) Есть важная задача, которую в силу обстоятельств пытаюсь решить самостоятельно, с книжкой и поисковиком. Если вы знаете решение и готовы помочь , пожалуйста, помогите.

рони 02.12.2013 13:50

e.s.ya,
у вас опечатка и неиспользуйте новые версии jQuery в них функция определения браузера удалена $.browser.opera неподдерживается и лучше проверять не браузер а то что поддерживается этим браузером

e.s.ya 02.12.2013 14:10

Опечатка, да) Спасибо, я попробую подключить более старую версию. Знаю, анализ браузера использовать не правильно и делать это не рекомендуют. Но к сожалению не знаю как реализовать это через .support. Возможно с опытом дойдет ) Рони, а может вот про это что-нить знаете ? http://javascript.ru/forum/showthrea...489#post283489
Спасибо за помощь!

рони 02.12.2013 14:14

e.s.ya,
у вас и так старая версия jQuery JavaScript Library v1.6.2

e.s.ya 02.12.2013 14:22

В таком случае решения вопроса по прежнему нет, к сожалению. В смысле опечатка "broUser" была только в конкретном посте, в коде писал правильно

e.s.ya 02.12.2013 14:27

Вы писали про опечатку, а ее я допустил только в конкретном посте, в коде прописал название функции правильно, через "W".

рони 02.12.2013 14:32

e.s.ya,
ни на вашем сайте ни здесь я не вижу ни одной попытки написать правильный код

e.s.ya 02.12.2013 14:36

$( document ).ready(function(){
    video_on_off();
});

$( window ).resize(function(){
    video_on_off();
});



function video_on_off(){


    if(document.body.clientWidth<=784){
	$('video').attr('src','');
	$('video').css('display','none');
	mute_hide();
    }
    else{
	 
          if ($.browser.opera){

          $('video').attr('src','/video/mid.ogv');
          $('video').css('display','block'); 
         mute_show();
       }
	 else{

         $('video').attr('src','/video/mid.mp4');
         $('video').css('display','block'); 
         mute_show();
	
}

         
    }
}

рони 02.12.2013 14:38

e.s.ya,
ок сейчас верно -- должно работать

e.s.ya 02.12.2013 14:39

Не работает, в том то и дело. Тестирую на Опере 18.0.1284.49

рони 02.12.2013 14:45

e.s.ya,
Версия:
12.16 определяется нормально
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<script src="http://reka63.ru/js/jquery.min.js"></script>
<script>
alert($.browser.opera);
</script>
</body>

</html>

запустите код в новой опере -- если не true -- ищите иное определение для оперы

рони 02.12.2013 14:48

e.s.ya,
http://htmlbook.ru/html5/detect

e.s.ya 02.12.2013 14:51

Ошибку выдает. Вот скрин http://yadi.sk/d/zOy95IjaDf4t5

рони 02.12.2013 14:53

e.s.ya,
обновите страницу и запустите ещё раз

рони 02.12.2013 14:59

e.s.ya,
Видео форматы

e.s.ya 02.12.2013 15:01

Спасибо, думаю я понял как решить

e.s.ya 02.12.2013 15:34

Рони, получился вот такой код. Скачал и подключил библиотеку Modernizr. Работает и в хроме и в опере. Но блок по прежнему не "схлопывается". Можете предположить причину ?
$( document ).ready(function(){
    video_on_off();
});

$( window ).resize(function(){
    video_on_off();
});



function video_on_off(){


    if(document.body.clientWidth<=784){
	$('video').attr('src','');
	$('video').css('display','none');
	mute_hide();
    }
    else{
	 
          if (Modernizr.video) {

 if (Modernizr.video.h264) { 

} else if (Modernizr.video.ogg){

}
$('video').css('display','block'); 
         mute_show()
}
	
}

         
    
}

рони 02.12.2013 16:00

e.s.ya,
function video_on_off() {
    if (document.body.clientWidth <= 784) {
        $('video').attr('src', '');
        $('video').css('display', 'none');
        mute_hide();
    } else {

        if (Modernizr.video) {
            if (Modernizr.video.h264) {
                $('video').attr('src', '/video/mid.mp4');
            } else if (Modernizr.video.ogg) {
                $('video').attr('src', '/video/mid.ogv');
            };
            $('video').css('display', 'block');
            mute_show()
        }

    }
}

e.s.ya 02.12.2013 16:05

Рони, все работает! Убеждаюсь, что мир не без добрых людей. Спасибо!


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