2016-11-06 89 views
1

我想更多的旋轉度每有人點擊一次添加到#弧度自旋#RAD-BTN添加更多度每次點擊

$(document).ready(function(){ 
    $("#rad-btn").click(function(){ 
     $("#rad-spin").css("transform", "rotate(90deg)"); 
    }); 
}); 

現在它只是一個時間到90度,如果我點擊再次它不會進一步到180deg(顯然)。這就是我想要的。任何人都知道如何做到這一點?

回答

1
  1. 通過詞彙範圍,你可以做到這一點。通過這個,保持外部值index

    $(document).ready(function(){ 
        var index = 0 
        $("#rad-btn").click(function(){ 
        index++ 
        $("#rad-spin").css("transform", "rotate(" + 90 * index + "deg)"); 
        }); 
    }); 
    
  2. 通過data-$.data,你可以保存在DOM中的信息。

    $(document).ready(function(){ 
        $("#rad-spin").data('index', 0) 
        $("#rad-btn").click(function(){ 
        var index = $("#rad-spin").data('index') 
        $("#rad-spin").data('index', ++index) 
        $("#rad-spin").css("transform", "rotate(" + 90 * index + "deg)"); 
        }); 
    }); 
    
+0

感謝這個工作! :) – user3124133

+0

現在我有另一個問題,但。我想要這個按鈕:#rad-btn。當它正在旋轉時被禁用。(這是一個旋轉的btw)ivoklerk.com/sesamestreet/rad.html# - user3124133剛剛編輯 – user3124133

+0

我無法得到您的目標。用戶可能會多次單擊'#rad-btn'動畫結束? @ user3124133 – TomIsion

1

只是存儲的角度地方。

$(document).ready(function(){ 
 
    var angle = 0; 
 
    $("#rad-btn").click(function(){ 
 
     angle+=720; 
 
     $("#rad-spin").css("transform", "rotate("+angle+"deg)"); 
 
     $(this).prop('disabled',true).delay(2000).queue(()=>$(this).prop('disabled',false).dequeue()); 
 
    }); 
 
});
#rad-spin{ 
 
    transition: transform 2s; 
 
    position: absolute; 
 
    top: 150px; 
 
    left: 50px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id='rad-btn'>v. rad</button> 
 
<div id='rad-spin'>spin me round and round</div>

+0

謝謝我已經用TomIsion的解決方案修復了它。現在我還有另一個問題。我想要這個按鈕:#rad-btn。要在它的旋轉被禁用。(這是一個紡車BTW) http://ivoklerk.com/sesamestreet/rad.html# – user3124133

+0

各種方式來做到這一點,我添加了一個到我的回答。您可以定義在CSS過渡超時,禁用按鈕,然後點擊相同的延遲後啓用它。 – unholybear

+0

謝謝你這個工作! :) – user3124133