這篇文章主要為大家詳細介紹了使用JavaScript和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 >注意點:1.因為如果不添加css3的過渡屬性的話,旋轉的時候是會有種卡頓效果的,就是旋轉的時候不順暢,所以我這里添加了transition屬性,讓他轉動起來的時候看起來順暢的.<br> 2.transform-origin的值如果為0 0的時候,是繞著原點旋轉的,50% 50%的時候就是繞著中心點旋轉的.不過默認的時候就是繞著中心點旋轉的<br></span>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
新聞名稱:使用JavaScript和css3怎么編寫個旋轉效果
標題路徑:http://www.2m8n56k.cn/article24/jssice.html
成都網站建設公司_創新互聯,為您提供自適應網站、商城網站、外貿網站建設、網頁設計公司、App設計、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯