JQuery UI диалог - Flash-контент просвечивает при прокрутке в Safari - PullRequest
1 голос
/ 19 января 2011

У меня проблема, подобная этой:

Как отключить просмотр содержимого Flash через jQuery UI Dialog в Firefox в Windows

.. но только в сафари и только когда я прокручиваю содержимое внутри диалога. Когда появляется диалоговое окно, все в порядке. Но когда вы начинаете прокручивать, колесом мыши или перетаскиванием панели, содержимое флэш-памяти начинает просвечивать и возвращаться. Например:

начало: отлично прокрутить один шаг: вспышка кровоточит прокрутите второй шаг: отлично прокрутить третий шаг: вспышка кровотечения и т.д.

В модальном «режиме» модальный фон появляется над диалоговым окном, но все еще находится над вспышкой.

Chrome и Firefox работает отлично. Я попробовал "wmode = transparent" и "wmode = opaque" и проверил z-index, но ничего не вышло.

Помощь

Flash-код с swfobject:

<script type="text/javascript">       
   var flashvars = false;
   var params = {wmode: 'opaque', bgcolor: '#FFF4D5'};
   var attributes = false;
   swfobject.embedSWF("chat/logo.swf", "logo", "250", "100", "9.0.0", "../expressInstall.swf", flashvars, params, attributes);
              </script>

Диалог открытия штуки:

function openAdminDialog(buttons) {

 $("#admin-dialog").dialog({
  autoOpen: false,
  width: 925,
  height: 500,
  modal: true,
  title: 'Title',
  buttons: buttons,
  close: function() { 
   $('#admin-dialog').remove();
  }
 });
 $('#admin-dialog').dialog('open');
}

РЕДАКТИРОВАТЬ: SWFObject перевести на это (из консоли Safari):

<object type="application/x-shockwave-flash" data="chat/logo.swf" width="250" height="100" id="logo" style="visibility: visible; "><param name="wmode" value="transparent"><param name="bgcolor" value="#FFF4D5"></object>

1 Ответ

1 голос
/ 12 мая 2011

Та же проблема здесь, только в Safari для Mac, отлично работает для всех других браузеров.Даже выберите, текст и фоновые изображения, где просвечивает (мерцание, если быть точным).Единственный способ исправить это - скрыть флэш-контейнер и снова показать его при закрытии.

$(e).click(function(){
    $(popup).dialog({       
        close: function(){
            $(flashElem).show();
        }
    });
    $(flashElem).hide();
    return false;
});

Не оптимально, но работает.

...