2012-03-17 119 views
0

我創建了一個小腳本,允許我通過Ajax和CSS將內容部分滑入和滑出。我已經成功地將它從頂部加載到頁面上,但我遇到了一個問題,滑出!Ajax和CSS3動畫

我爲'aniOut'寫了一個剪輯,也可以工作,但我似乎無法在轉換之前先完成一個加載。我已經嘗試了一些東西,但是我要麼鎖定頁面,停止加載,要麼就是無法正確啓動。我將整個'aniIn'CSS的工作代碼包含進去,因爲它包含了在-moz-webkit上運行的功能,但是隻有'aniOut'的基本動畫代碼才能保存在我的線程空間中。

有人可以將我推向一個資源,以幫助我瞭解我需要做什麼嗎?

我的網站與工作幻燈片在The Mind Company住。

CSS:

header { 
     z-index:100; 
     position:relative; 
     display: block; 
     background-color: #272727; 
     height:100px;} 

    #contentBody { 
     min-height:48em;} 

    footer { 
     position:relative; 
     display: block; 
     background-color: #272727; 
     height:168px; } 

    #aboutPage { 
     display:none;} 

    #productPage { 
     display:none;} 

    #contactPage { 
     display:none;} 

    .aniIn { 
z-index:0; 
-webkit-animation-name: ANIMATEin; 
-webkit-animation-duration: 1s; 
-webkit-animation-iteration-count: 1; 
-webkit-animation-timing-function: ease-in; 

-moz-animation-name: ANIMATEin; 
-moz-animation-duration: 1s; 
-moz-animation-iteration-count: 1; 
-moz-animation-timing-function: ease-in; 

/* Currently Not Working in browsers: Is planed for implimentation in later versions. */ 
animation-name: ANIMATEin; 
animation-duration: 1s; 
animation-iteration-count: 1; 
animation-timing-function: ease-in; 

-ms-animation-name: ANIMATEin; 
-ms-animation-duration: 1s; 
-ms-animation-iteration-count: 1; 
-ms-animation-timing-function: ease-in; 
} 

@-webkit-keyframes ANIMATEin { 
from { 
margin-top:-3000px; 
} 
to { 
margin-top:0px; 
} 
} 

@-moz-keyframes ANIMATEin { 
from { 
margin-top:-3000px; 
} 
to { 
margin-top:0px; 
} 
} 

@keyframes ANIMATEin { 
from { 
margin-top:-3000px; 
} 
to { 
margin-top:0px; 
} 
} 

.aniOut { 
z-index:0; 
animation-name: ANIMATEout; 
animation-duration: 1s; 
animation-iteration-count: 1; 
animation-timing-function: ease-in; 
} 

@keyframes ANIMATEout { 
from { 
margin-top:0px; 
} 
to { 
margin-top:3000px; 
} 
} 

Java腳本:

function $_(IDS) { return document.getElementById(IDS); } 

function ani(){ 
    document.getElementById(classID).className ='aniOut'; 
} 

function checkPage(classID, url){ 
    var tmp = ''; 
    var sel = document.getElementsByTagName('section'); 
    for (var i=0; i<sel.length; i++){ 
     if (sel[i].id == classID) { tmp = 'block' } else { tmp = 'none' } 
     $_(classID).className ='aniIn'; 
     sel[i].style.display = tmp;} 
    $_(classID).style.display = 'block';  
    loadContent(classID, url); } 

function loadContent (classID, url){ 
    var xmlhttp; 
    if (window.XMLHttpRequest){ 
     xmlhttp=new XMLHttpRequest();} 

    xmlhttp.onreadystatechange=function(){ 
     if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
      document.getElementById(classID).innerHTML=xmlhttp.responseText;}} 

    xmlhttp.open("GET","content/"+url,true); 
    xmlhttp.send();} 

和HTML5:

<!-- Header Areas: (Constent visual)--> 
<header> 
     <li><a href="#" onclick="checkPage('aboutPage', 'about.html');return false">About</a></li> 
     <li><a href="#" onclick="checkPage('productPage', 'projects.html');return false">Projects</a></li> 
     <li><a href="#" onclick="checkPage('contactPage', 'contact.html');return false">Contact</a></li> 
</header> 

<!-- Content Areas: (Variable visual)--> 
<div id="contentBody"> 
    <section id="aboutPage"></section> 
    <section id="productPage"></section> 
    <section id="contactPage"></section> 
</div> 

<!-- Footer Area: (Constant visual)--> 
<footer></footer> 

以前發佈的與沒有答案:Previous Post

+1

重複http://stackoverflow.com/questions/9747783/transistion-with-ajax-and-css3。布蘭登,請看看http://meta.stackexchange.com/questions/7046/how-do-i-get-attention-for-my-old-unanswered-questions。 – Zeta 2012-03-17 18:29:44

+0

k,對不起。現在將鏈接。 – 2012-03-17 18:59:14

+2

查看https://developer.mozilla.org/en/CSS/CSS_transitions。考慮你想要達到的目標,以及你是否真的需要一個動畫或者只是一個過渡。問自己「我的腳本爲了創造這樣的效果需要做些什麼?」?在內容加載之前添加類*是一個好主意嗎? – Zeta 2012-03-18 00:03:59

回答

0

我試過Severa的lZeta引用MDN網站之後的方式。我決定留在動畫元素中,因爲我可以設置諸如反彈或位置移動速度(漸進減慢)等效果。

第一次嘗試我想嘗試純粹的CSS,但我無法得到它,我還沒有收到任何反饋,爲什麼question to why

然後我試着去做with JavaScript並取得了一些成功。我現在確實遇到了這個腳本的一個問題,但這是我正在嘗試的一個官方修復。 (注意:當前問題是第一個鏈接點擊不會轉換,我可能有一個解決方案雖然)

請參閱代碼解決方案的鏈接。