首先讓我告訴你,我一個人學習了腳本,所以我的方法肯定有點奇怪。 爲了解釋什麼,我想做的事情,請去這個例子網站我準備:How it should be, kind of!Jquery和AJAX。在動畫之間放置一個Ajax調用
你會發現,當你按下所有按「展示廳」之後,顯示的鏈接和所有其他menue按鈕的內容主窗口在窗口向下移動之前正在改變。
簡單地說:我想要完成的是窗口向下移動並保持內容直到消失,然後當它從右側出現時應該有新的內容。
當前窗口的內容:「家」 - >按「個人」 - >窗口的內容仍是「家」的 - >下移 - 從右側>自帶的內容從「個人」
這裏是AJAX中的JavaScript部分和動畫
function createRequestObject()
{
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
ro = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
var katcheck;
function sndReq(req)
{
var req2 = req;
katcheck = req.slice(0, 1);
if (katcheck == "k")
{
var katid = req2.slice(3,4);
http.open('get', 'getkat.php?kat='+katid);
}
else
{
$('#videoleft').animate({"top": "1000px"}, { queue:true, duration:600, easing: 'easeInQuad'})
.hide(0).animate({"top": "0px", "left": "800px"},{ queue:true, duration:1});
http.open('get', 'getwork.php?id='+req);
}
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse()
{
if(http.readyState == 4)
{
var response = http.responseText;
}
if (katcheck == "k")
{
document.getElementById("videomenue").innerHTML = response;
}
else
{
$('#videoleft').show(0).animate({"top": "0px", "left":"0px"},{ queue:true, duration:800, easing: 'easeOutBack'});
document.getElementById("post").innerHTML = response;
}
}
現在好了,我會在sndReq函數開始解釋該部分:
一般menue中的按鈕只是向sndReq發送數字(這是數據庫中的ID)。例如:你按下「Showroom」,然後「k_01」被髮送到同一個sndReq功能。 「k」代表類別,腳本通過切分字符串來告訴它是否是類別請求。
我希望你明白我的意思。
實際上對於Windows來說真是太棒了,其中一箇舊內容向下移動,同時一個新窗口從右側移動到新內容,但是當我嘗試使用兩個窗口test3.php(同一目錄)我得到未定義的問題。
我希望有人能幫助我。非常感謝您
做了一些修改.. – 2010-02-10 04:26:44
非常感謝您!我根據你做出了改變,現在它可以工作!你可以在同一目錄下的test2.php文件中看到它。還有一件事:按下其中一個按鈕時有時會出現滯後現象,這意味着動畫不會在同一時刻開始播放,而是需要很短的時間(最多2秒)。我相信它與jQuery動畫結局有關,但我不確定。任何想法?再次:非常感謝你! – Cletus 2010-02-10 12:51:37
true ..在我的答案中加入了更新2 ... – 2010-02-10 13:33:50