Недавно мне было поручено создать HTML-управляемую веб-страницу, которая будет эмулировать базовые переходы Flash и анимацию, что, естественно, заставило меня обратиться к jquery. На сайте есть четыре разные страницы, каждая со своим конкретным фоном и небольшим абзацем текста.
Легко? Видимо, не так для меня. Когда я запустил интерактивный макет для утверждения, я столкнулся с проблемой вялой анимации, характерной только для (удивление, удивление) компьютеров Mac с мониторами выше 18 ". ПК, на которых я тестировал, отлично работал во всех основных браузерах - Chrome, IE9 и FF. Для Mac выше 18 ", однако, это был FF, который работал лучше всего, в то время как остальное было ужасно.
Я пробовал средства и способы оптимизации кодов jquery и даже прибегнул к предварительной загрузке всех изображений в кеш браузера со страницей index.html, а затем перенаправил пользователя на реальную веб-страницу, надеясь, что это может быть меньше стресса на время обработки.
К сожалению, ничего не сработало.
Это одностраничная настройка, которая может быть одним из основных факторов, способствующих медлительности, но она не объясняет, почему она отлично работает на ПК и компьютерах с диагональю 18 дюймов.
В любом случае, вот фрагменты моих кодов для анимации, чтобы добавить элементы при загрузке и перейти между страницами / разделами:
$(document).ready(function(){
$("#home-button").click(function(){
$("#home").fadeTo(2000, 1);
$("#location").fadeTo(2000, 0);
$("#services").fadeTo(2000, 0);
$("#contact").fadeTo(2000, 0);
$("#bg-img-1").fadeTo(2000, 0);
$("#bg-img-2").fadeTo(2000, 0);
$("#bg-img-3").fadeTo(2000, 0);
$("#bg-img-4").fadeTo(2000, 1);});
$("#location-button").click(function(){
$("#home").fadeTo(2000, 0);
$("#location").fadeTo(2000, 1);
$("#services").fadeTo(2000, 0);
$("#contact").fadeTo(2000, 0);
$("#bg-img-1").fadeTo(2000, 0);
$("#bg-img-2").fadeTo(2000, 1);
$("#bg-img-3").fadeTo(2000, 0);
$("#bg-img-4").fadeTo(2000, 0);});
$("#services-button").click(function(){
$("#home").fadeTo(2000, 0);
$("#location").fadeTo(2000, 0);
$("#services").fadeTo(2000, 1);
$("#contact").fadeTo(2000, 0);
$("#bg-img-1").fadeTo(2000, 0);
$("#bg-img-2").fadeTo(2000, 0);
$("#bg-img-3").fadeTo(2000, 1);
$("#bg-img-4").fadeTo(2000, 0);});
$("#contact-button").click(function(){
$("#home").fadeTo(2000, 0);
$("#location").fadeTo(2000, 0);
$("#services").fadeTo(2000, 0);
$("#contact").fadeTo(2000, 1);
$("#bg-img-1").fadeTo(2000, 1);
$("#bg-img-2").fadeTo(2000, 0);
$("#bg-img-3").fadeTo(2000, 0);
$("#bg-img-4").fadeTo(2000, 0);});});
Вот мои CSS-стили для фонового изображения и некоторых графических элементов, размер и размер которых необходимо изменить в соответствии с размером браузера:
img.bg{
min-height: 100%;
min-width: 900px;
width: 100%;
height: auto;
position: fixed;
top: 0;
left: 0;
z-index:-4;}
#bg-img-1,#bg-img-2, #bg-img-3, #bg-img-4{
opacity:0;}
img.d-4{
min-height: 100%;
min-width: 1024px;
width: 92%;
height: auto;
position: fixed;
top:0;
left:0;
z-index:-3;
opacity:0.3;}
img.d-5{
min-height: 100%;
min-width: 1024px;
width: 92%;
height: auto;
position: fixed;
margin-left:-50px;
z-index:-3;}
Любая помощь или мнения о том, как оптимизировать это дальше и предотвратить вялые проблемы, очень ценится.
Спасибо, ребята! :)