2014-10-28 117 views
3

我希望我的header.php中的元素的CSS動畫可以在不同的頁面上順利地繼續。繼續頁面加載CSS動畫?

因此,如果我有一個200秒的循環動畫和80秒,我點擊了關於我們頁面的動畫在頁面加載時仍然是80秒?

這是可能的,如果是這樣,怎麼樣?謝謝。

+0

如果您可以在頁面退出時獲取當前動畫的狀態並將其發送到下一頁,那麼下一頁可以簡單地在該點開始動畫。但祝好運可靠地檢測頁面何時退出。 – 2014-10-28 14:23:55

+7

你最好離開標題並使用AJAX加載新的頁面內容/調整URL。 – naththedeveloper 2014-10-28 14:25:14

+0

您不提供足夠的信息讓我們知道如何幫助您。爲了在不觸及標題動畫的情況下對頁面進行修改,我的建議是正確使用Javascript來更改要修改的部分,讓頁面的其他部分不受影響。 – 2014-10-28 14:25:42

回答

1

你可以做到這一點,如果它是某種關鍵幀動畫,如:

CSS

@keyframes colorchange { 
    0% {background: red;} 
    50% {background: green;} 
    100% {background: yellow;} 
} 
div { 
    width: 100px; 
    height: 100px; 
    background: red; 
    -webkit-animation: colorchange 5s linear infinite; 
    animation: colorchange 5s linear infinite; 
    -moz-animation: colorchange 5s linear infinite; 
} 

JS

$(document).ready(function(){ 
    var animationTime=0; 
    var intId = setInterval(function(){ 
     animationTime++; 
    },1000); 
    var postTime = function(link){ 
     $.ajax({ 
     type: 'POST', 
     url: link, 
     data: {'variable': animationTime}, 
     }); 
    } 
    $('a').click(function(){ 
      window.onbeforeunload = postTime($(this).attr('href')); 
    }) 
    }) 

PHP

$myval = $_POST['variable']; 
    echo "$('div').css('animation-delay', '-".$myval."s')" 

您可以使用負動畫延遲從某個點開始動畫,但無論如何,這種方法並不完美,但值得一試。

PS不過還好在這種情況下:)

1

快速粗略的想法使用AJAX的頁面重載

time = 200000; 
var distance = 300; 
window.currentTime = 0; 

$('#element').animate({ left: distance }, 
{ 
    duration: time, 
    step: function(now, fx) { 

    window.currentTime = Math.round((now*time)/distance); 

    } 
}); 

$('a').on("click", function(e){ 
    e.preventDefault(); 
    window.location.href = "http://yoururl.com/?startingPoint=" + (time - window.currentTime);   
}); 

然後在每個文件做這樣的事情

if($_GET['startingPoint']){ 
    echo 'time = '.$_GET['startingPoint']; 
} 
else{ 
    echo 'time = 200000'; 
} 

到位JavaScript的時間變量,我道歉,如果錯誤在這裏,字面上只是把這個從我的屁股,但概念是在那裏,沒有阿賈克斯nee DED。