.addclass не работает при загрузке страницы

Я пытаюсь запустить анимацию после загрузки моей главной страницы, но у меня есть система предварительной загрузки, которая загружает и имеет анимацию загрузки и скрывает содержимое главной страницы. Это загружает все содержимое сайтов (изображения и т. д.), и после завершения главная страница становится видимой. Когда главная страница станет видимой, я хочу загрузить несколько анимаций, используя класс .add.

Вот HTML

    <header id="head" class="wrap" style="background-color:transparent;">

<div class="123">
    <ul class="abc">

<li><a href="/index.php#home" class="class1">Home</a></li>
<li><a href="index.php#portfolio">Portfolio</a></li>            
       <li id="defg"><a>defg</a></ul></li></ul>
</div>

<div class="class2">


        <div class="title">Title</div>
        <span id="title-seperator">|</span>

</div>

</header>   

<div class="mainpart" id="mainpart"> A bunch of other nested elements with....</div>

Вот мой CSS

    header
    {
        margin:0 auto;
        height:11%;
        background-color:#eee;
        z-index:10;
    }
    header .animateHeader
    {
-webkit-animation: rotateInRight 4s;
-moz-animation: rotateInRight 4s; 
-o-animation: rotateInRight 4s; 
animation: rotateInRight 4s; 
    }

    #mainpart .animateMainpart
    {
-webkit-animation: fadeInRight 4s;
-moz-animation: fadeInRight 4s; 
-o-animation: fadeInRight 4s; 
animation: fadeInRight 4s;
    }
    #mainpart {
height: 80%;
width: 100%;
background-color: #eee;
white-space: nowrap;
z-index: 10;
max-height: 520px;

overflow: hidden;
outline: none;
background-color: transparent;
}

    @-webkit-keyframes fadeInRight {
from {
    opacity: 0;
    -webkit-transform: translateX(300px);
}

to {
    opacity: 1;
    -webkit-transform: translateX(0);
}
    }

    @-moz-keyframes fadeInRight {
0% {
    opacity: 0;
    -moz-transform: translateX(300px);
}

100% {
    opacity: 1;
    -moz-transform: translateX(0);
}
    }

    @-o-keyframes fadeInRight {
0% {
    opacity: 0;
    -o-transform: translateX(300px);
}

100% {
    opacity: 1;
    -o-transform: translateX(0);
}
    }

    @keyframes fadeInRight {
0% {
    opacity: 0;
    transform: translateX(300px);
}

100% {
    opacity: 1;
    transform: translateX(0);
}
    }

  @keyframes rotateInRight {
from {
    transform-origin: 100% 0%;
    transform: rotateY(-200deg);
}
to {
    transform-origin: 100% 0%;
}
}
 @-webkit-keyframes rotateInRight {
from {
    -webkit-transform-origin: 100% 0%;
    -webkit-transform: rotateY(-200deg);
}
to {
    -webkit-transform-origin: 100% 0%;
}
}
  @-moz-keyframes rotateInRight {
from {
    -moz-transform-origin: 100% 0%;
    -moz-transform: rotateY(-200deg);
}
to {
    -moz-transform-origin: 100% 0%;
}
}
  @-o-keyframes rotateInRight {
from {
    -o-transform-origin: 100% 0%;
    -o-transform: rotateY(-200deg);
}
to {
    -o-transform-origin: 100% 0%;
}
}

и, наконец, вот мой JavaScript (с использованием библиотеки JQuery)

   <script>
   $(document).ready(function () {

        $("body").preloader({
            //Preload the contents of the page before they're displayed.
        });

    });
    </script>
    <script>    
$(window).load(function() {
    $("#mainpart").addClass("animateMainpart");​
    $("header").addClass("animateHeader");​
}); 
   </script>

В целях тестирования я поместил поле предупреждения внутри функции загрузки, чтобы увидеть, выполняется ли функция вообще. Окно предупреждения появляется только в том случае, если предупреждение само по себе находится внутри .load, однако, как только я пытаюсь разместить .addclass, ни анимация, ни предупреждение не появляются, поэтому я знаю, что функция .load работает. Это просто вопрос, почему .addclass не работает. Также моя функция .ready с классом preloader работает нормально и не вызывает никаких проблем, поэтому я уверен, что это не вина этого класса.

Спасибо


person Morelka    schedule 16.01.2014    source источник
comment
У меня это работает нормально: jsbin.com/ILEyexI/2/edit? html, js, вывод   -  person jammykam    schedule 16.01.2014
comment
Я запустил ваш jsbin, но там нет css с анимацией. JSbin работает так же, как работает мой код. Все элементы, которые я хочу анимировать, показаны на странице. Единственная проблема заключается в том, что элементы не анимируются сначала на странице, где находится моя функция загрузки. То же самое с jsbin, изображение отображается, но не анимируется при загрузке страницы, потому что в вашем css нет переходов. Раздел кода css пуст, поэтому я предполагаю, что переходов нет.   -  person Morelka    schedule 17.01.2014


Ответы (1)


person    schedule
comment
Это не сработает, изображения могут не загрузиться на этом этапе. - person jammykam; 16.01.2014
comment
попробуйте сейчас, я обновил ответ, который может вам помочь. - person Bharat soni; 16.01.2014
comment
Который ничем не отличается от того, что у него было - person jammykam; 16.01.2014
comment
Да, я внес изменения в соответствии с вашей функцией .bind, но результат тот же. Не работает, но я знаю, что функция .,load вызывается, потому что, как я уже сказал, когда я помещаю предупреждение внутри функции, всплывает предупреждение. Единственный раз, когда это не работает, это когда я также помещаю .addclass внутрь функции загрузки. Так что я думаю, что это либо мой CSS, либо то, как я пытаюсь прикрепить .addclass, но у меня есть подсказка. - person Morelka; 17.01.2014