.test
div numarasını, her tıklandığında saat yönünde 180 ° döndürmeye çalışıyorum. Ben ne yaptımUyarı modunun eklenmesi neden CSS rotasyon yönünü etkiler?
temelde: hayır rotasyon oluştu
- ise 180 döndürün.
- 180 ° döndürüldüyse, 360 ° döndürün. 360 döndürüldüğünde uğradıysa
- ,
transform
vetransition
özelliklerini kaldırmak ve 180 döndürün.
$(".test").click(function(){
var angle;
var matrix = $(this).css("-webkit-transform")
if (matrix == "none") { //div hasn't been rotated yet
angle = 0;
}
else {
var values = matrix.split('(')[1].split(')')[0].split(',');
var a = values[0]; //should be -1 if div is upside down, 1 if it is normal.
if(a == 1) {
$(this).removeAttr('style');
angle = 0;
}
else {
angle = 180;
}
}
$(this).css({
"-webkit-transform": "rotate("+(angle+180)+"deg)",
"-moz-transform": "rotate("+(angle+180)+"deg)",
"transform": "rotate("+(angle+180)+"deg)",
"-webkit-transition": "-webkit-transform 0.3s ease-in",
});
});
Bu ilk iki tıklama için çalışıyor, ancak 180 360 den dönen oymuş gibi üçüncü tıklamada div ben zaten olmasına rağmen, saat yönünün tersi yönde style
özniteliği kaldırıldı.
İşte bir çalışma keman var: https://jsfiddle.net/wwny5q5d/3/
Şimdi, gerçekten merak var şey .css()
çağırmadan önce alert
veya debugger
bir eklerseniz ben, saat yönünde onu istediğiniz gibi üçüncü dönme gider.
alert("Now it will always rotate clockwise")
$(this).css({
"-webkit-transform": "rotate("+(angle+180)+"deg)",
"-moz-transform": "rotate("+(angle+180)+"deg)",
"transform": "rotate("+(angle+180)+"deg)",
"-webkit-transition": "-webkit-transform 0.3s ease-in",
});
Yani benim sorular şunlardır: Neden üçüncü bir tıklama benim div döndürme yönünde VE niye alert
dahil o iş yapmak etmez ki? onun 360 tarzı div kaldırılmadan önce zaman keman olarak
@Gothdo ben '.test' div bir grup vardır çünkü ben istemiyorum sayaç çeşit, kullanmadığınız sürece 0˚ veya 360˚ derecede olmak bunun ayırt edemez çünkü. Peki 180˚ veya 540˚'ya dönmek isteyip istemediğimi nasıl anlarım? – digglemister
@Gothdo Takip ettiğimden emin değilim. Mevcut rotasyonuna sadece 180 eklediniz mi? Sorun şu ki, ne kadar döndürüldüğünü bilmiyorum, sadece eşdeğer mod360 olan döndürme matrisindeki değerleri biliyorum. – digglemister
Evet, bakınız http://stackoverflow.com/questions/13592384/how-to-retrieve-the-angle-in-css3-rotate –