2013-05-08 98 views
0

我正在製作圖像滑塊。當用戶點擊圖像上:在調用另一個功能之前執行一些功能

  1. 圖片幻燈片和進來前
  2. 在被翻轉的下一個單擊圖像和放大
  3. 在下單擊圖像返回到其原始尺寸和位置

在選擇其他圖像時,會發生相同的步驟。我想要做的是:假設我選擇了一個圖像,圖像翻轉和放大。然後我直接點擊另一張圖片,所以我想寫的功能是在放大新圖片之前,第一張圖片應該回到原來的大小和位置。

如何做到這一點?

var status=1; 
function flipIt(obj){ 
//$(obj).wrap("<div class='centerImage'></div>") 



console.log("value before Function status "+status); 

if(status==1) 
{ 
alert("i am From JS IF part"); 
    $(obj).animate({"left": "-=30px","opacity": "0.65"},"slow"); 
    $(obj).animate({"height":"400px","width":"350px"},30); 


    // initial  w295 h354 
$(obj).css("-webkit-transform-style","preserve-3d"); 
$(obj).css("-webkit-transition","all 1.0s linear"); 
$(obj).css("transform-style","preserve-3d"); 
$(obj).css("transition","all 1.0s linear"); 

$(obj).css("-webkit-transform","rotateY(180deg)"); 
$(obj).css("transform","rotateY(180deg)"); 
//$(obj).css("box-shadow","-5px 5px 5px #aaa"); 

status=0; 
console.log("after if value set status "+status); 
} 
else 
{ 

//alert("i am From JS Else part"); 
    $(obj).animate({"left": "+=30px","opacity": "0.99"},"slow"); 
    $(obj).animate({"height":"354px","width":"295px"},30); 

$(obj).css("-webkit-transform-style","preserve-3d"); 
$(obj).css("-webkit-transition","all 1.0s linear"); 
$(obj).css("transform-style","preserve-3d"); 
$(obj).css("transition","all 1.0s linear"); 


$(obj).css("-webkit-transform","rotateY(0deg)"); 
$(obj).css("transform","rotateY(0deg)"); 
//alert("apply css"); 
    status=1; 
    Removecss(); 

console.log("ater else value set status "+status); 

} 
+0

如果你找到一個或多個答案,這個問題有幫助的,請考慮[upvoting(http://stackoverflow.com/privileges/vote-up)和/或[標記一個答案,因爲接受( http://stackoverflow.com/faq#howtoask),以幫助未來的訪問者找到他們正在尋找更多qui的信息ckly。 – 2013-05-16 14:03:15

回答

0

如果我理解正確的話,你的情況可以被抽象爲一個事物的列表,當用戶選擇的事情有事吧(圖像翻轉和放大,在這種情況下)一個。當用戶選擇列表中的其他東西時,您想重置第一個效果。

達到此目的的一種方法是在選定的事物上設置一個css類,如.flipped-and-enlarged。每當你然後在列表中任意變換對象,你首先要做的任何對象的反向操作有這個類:

function flipAndEnlarge(obj) { 
    $('.flipped-and-enlarge').reverseFlipAndEnlarge(); 

    // do the rest of your stuff 
} 

這樣一來,如果你這樣做是正確,永遠不會有一個以上的翻轉和放大隨時圖像。


注意,使用.reverseFlipAndEnlarge()如代碼示例以上需要編寫它作爲一個jQuery插件。這樣做是really easy和我強烈建議的東西,但如果你真的不想你可以做一些像reverseFlipAndEnlarge($('.flipped-and-enlarged'))而不是。

0

嘗試聲明一個變量,將舉行的姓名,班級,或查看當前的ID /放大圖像,然後調用之前的第二圖像是點擊這個樣子。

var previousImage = $(this).attr('class'); 

,並在如果嘗試將另一如果要檢查是否持有原先的形象ATTR變量爲空這樣

if(yourFirstStatement){ 
    if(previousImage != ''){ 
     //doTheResetOfImageSize(); 
    } 
    //doYourImageChangeSizeAndOtherAnimationThing.. 
} 

希望這有助於你.. :) 歡呼聲.. ..

相關問題