js+css3實現旋轉效果,jscss3實現旋轉

來源:互聯網
上載者:User

js+css3實現旋轉效果,jscss3實現旋轉

我的前面一張文章實現了用css3製作旋轉的效果,現在呢,我換另外一種方法來實現.就是使用js結合css3的方法來實現的.下面我就先給大家看看效果吧

下面呢我先放上我的css代碼,代碼很簡單:

.one{width:200px;height: 200px;border:1px solid #adadad;transition:all 0.1s;border-radius:50%;background:url(images/1.jpg) no-repeat center center;background-size:cover;margin:50px auto;}

上面的代碼大家都看得懂,我就不介紹了.我重點講的是js的代碼部分.

window.onload=function(){ var div=document.getElementsByClassName("one")[0]; console.log(div); setCss3(div,{transform:"rotate(10deg)","transform-origin":"50% 50%"}) var angel=0; setInterval(function(){ angel+=8; setCss3(div,{transform:"rotate("+angel+"deg)","transform-origin":"0 0"}) },30) function setCss3(obj,objAttr){ //迴圈屬性對象 for(var i in objAttr){ var newi=i; //判斷是否存在transform-origin這樣格式的屬性 if(newi.indexOf("-")>0){ var num=newi.indexOf("-"); newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase()); } //考慮到css3的相容性問題,所以這些屬性都必須加首碼才行 obj.style[newi]=objAttr[i]; newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase()); obj.style[newi]=objAttr[i]; obj.style["webkit"+newi]=objAttr[i]; obj.style["moz"+newi]=objAttr[i]; obj.style["o"+newi]=objAttr[i]; obj.style["ms"+newi]=objAttr[i]; } }}

我在這就把相對的痛點講一下:

if(newi.indexOf("-")>0){  var num=newi.indexOf("-");  newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase()); }

newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase());

這一句代碼其實就是把首字母轉成是大寫的

({transform:"rotate(10deg)","transform-origin":"0 0"))

因為在js中修改樣式的時候,是不存在-webkit-transformz這樣的格式的,兩個單詞之間的"-"是必須要省略掉的,換成第二個單詞的字母為大寫.所以主要就是把這個處理好了之後久ok了<br><span style="color: #ff0000">注意點:1.因為如果不添加css3的過渡屬性的話,旋轉的時候是會有種卡頓效果的,就是旋轉的時候不順暢,所以我這裡添加了transition屬性,讓他轉動起來的時候看起來順暢的.<br>    2.transform-origin的值如果為0 0的時候,是繞著原點旋轉的,50% 50%的時候就是繞著中心點旋轉的.不過預設的時候就是繞著中心點旋轉的<br></span>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的協助,同時也希望多多支援幫客之家!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.