2015-12-07 3 views
1

У меня есть анимированный gif, который отлично работает во всех браузерах, за исключением, например, (сюрприз, сюрприз). После долгих поисков я нашел GIF не анимированы, т.е. из-за настройки в опциях:Есть ли способ определить, отключена ли анимация

Настройки -> Расширенные настройки -> Мультимедиа -> Воспроизводить анимацию на веб-страницах

Есть ли способ определить, включено ли это, поскольку я хотел бы отображать что-то другое вместо статического гигабайта загрузки или есть способ заставить т. е. воспроизвести анимацию?

В случае, если есть обходной путь, вот код, я использую, чтобы показать свой загрузчик и тип GIF я использую:

#loading { 
 
    background:url(http://preloaders.net/preloaders/712/Floating%20rays.gif) center center no-repeat; 
 
    position:fixed; 
 
    left:0; 
 
    right:0; 
 
    bottom:0; 
 
    top:0; 
 
}
<div id="loading"></div>

+0

Используйте JavaScript. – Ionut

ответ

1

Вы можете использовать корневой класс от тела который показывает только браузер IE, то писать, как, как показано ниже в вашем CSS:

.rootclassname #loading { 
background : //use static image here 
} 
0

Хм, кажется, немного грязный, но что, черт возьми, наказать STUP id ie users ...

В качестве обходного пути я воспользовался ответами Праджваля и Лонута - добавив класс ie к моему загрузчику. Затем я сохранил каждую часть анимированного gif, а затем использовал следующие js, чтобы дать мне анимированный погрузчик т.е.:

var ieLoadingCount = 1, 
 
    ieLoadingInt; 
 

 
function addLoading() { 
 
    var loading = $('#paving-designer-loading'); 
 

 
    if (loading.hasClass('ie')) { // only do this for ie 
 
     clearInterval(ieLoadingInt); // need to clear interval as this is a multi-step form and addLoading may be called multiple times 
 
     ieLoadingInt = setInterval(function() { animateIELoading(loading, true); }, 175); // preload images 
 
    } 
 
} 
 

 
function animateIELoading(loading, firstRun) { 
 
    loading.css('background-image', 'url(' + baseUrl + 'images/presentation/toolbox/pavingdesigner/loading/' + ieLoadingCount + '.png)'); 
 
    
 
    if (ieLoadingCount == 12) { // loading gif had 12 parts in it 
 
     ieLoadingCount = 1; 
 
     if (firstRun) { 
 
      clearInterval(ieLoadingInt); // finish preload 
 
      ieLoadingInt = null; 
 
     } 
 
    } else { 
 
     ieLoadingCount++; 
 
    } 
 
} 
 

 
function showLoading(loading) { 
 
    if (loading.hasClass('ie')) { 
 
     clearInterval(ieLoadingInt); 
 
     ieLoadingInt = setInterval(function() { animateIELoading(loading, false); }, 175); 
 
    } 
 

 
    loading.show(); 
 
} 
 

 
function hideLoading(loading) { 
 
    loading.hide(); 
 

 
    if (loading.hasClass('ie')) { 
 
     clearInterval(ieLoadingInt); 
 
    } 
 
}

Я оставляю это открытым в случае, если кто может найти способ, чтобы проверить, если анимация разрешена в первую очередь, как в настоящее время я применяю это для всех т.е. пользователи независимо от того, разрешена ли анимация или нет. Было бы неплохо применить его только к браузерам, которые отключили анимацию.

Смежные вопросы