js+css3實(shí)現(xiàn)旋轉(zhuǎn)效果
我的前面一張文章實(shí)現(xiàn)了用css3制作旋轉(zhuǎn)的效果,現(xiàn)在呢,我換另外一種方法來實(shí)現(xiàn).就是使用js結(jié)合css3的方法來實(shí)現(xiàn)的.下面我就先上圖給大家看看效果吧

下面呢我先放上我的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;
}
上面的代碼大家都看得懂,我就不介紹了.我重點(diǎn)講的是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){
//循環(huán)屬性對象
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];
}
}
}
我在這就把相對的難點(diǎn)講一下:
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());
這一句代碼其實(shí)就是把首字母轉(zhuǎn)成是大寫的
({transform:"rotate(10deg)","transform-origin":"0 0"))
因?yàn)樵趈s中修改樣式的時候,是不存在-webkit-transformz這樣的格式的,兩個單詞之間的"-"是必須要省略掉的,換成第二個單詞的字母為大寫.所以主要就是把這個處理好了之后久ok了<br><span style="color: #ff0000">注意點(diǎn):1.因?yàn)槿绻惶砑觕ss3的過渡屬性的話,旋轉(zhuǎn)的時候是會有種卡頓效果的,就是旋轉(zhuǎn)的時候不順暢,所以我這里添加了transition屬性,讓他轉(zhuǎn)動起來的時候看起來順暢的.<br> 2.transform-origin的值如果為0 0的時候,是繞著原點(diǎn)旋轉(zhuǎn)的,50% 50%的時候就是繞著中心點(diǎn)旋轉(zhuǎn)的.不過默認(rèn)的時候就是繞著中心點(diǎn)旋轉(zhuǎn)的<br></span>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
javascript判斷移動端訪問設(shè)備并解析對應(yīng)CSS的方法
這篇文章主要介紹了javascript判斷移動端訪問設(shè)備并解析對應(yīng)CSS的方法,涉及移動端設(shè)備的判斷及動態(tài)加載技巧,需要的朋友可以參考下2015-02-02
利用js將ajax獲取到的后臺數(shù)據(jù)動態(tài)加載至網(wǎng)頁中的方法
今天小編就為大家分享一篇利用js將ajax獲取到的后臺數(shù)據(jù)動態(tài)加載至網(wǎng)頁中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
微信小程序云開發(fā)實(shí)現(xiàn)微信支付功能業(yè)務(wù)邏輯可靠
這篇文章主要介紹了微信小程序云開發(fā)實(shí)現(xiàn)微信支付功能,云開發(fā)來開發(fā)微信小程序時,如何實(shí)現(xiàn)微信支付,并且保證業(yè)務(wù)邏輯可靠,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-05-05
BootStrap智能表單實(shí)戰(zhàn)系列(八)表單配置json詳解
這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(八)表單配置json詳解的相關(guān)資料,本章節(jié)屬于高級部分,介紹一些表單中的配置知識,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06
小程序顯示彈窗時禁止下層的內(nèi)容滾動實(shí)現(xiàn)方法
這篇文章主要介紹了小程序顯示彈窗時禁止下層的內(nèi)容滾動實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03

