首先設(shè)置這個元素為浮動的css屬性,再用js獲取這個元素的top,left等定位值,改變他就可以做到了。
邵東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
思路:使用javascript定時器函數(shù)setTimeout()每隔一定的毫秒間隔數(shù)執(zhí)行動作,在執(zhí)行的動作中循環(huán)替換圖片的src屬性。樹立演示如下:
1、HTML結(jié)構(gòu)
img src="1.png" id="test"
2、javascript代碼
function change(n){
if(n5) n=1; // 一共5張圖片,所以循環(huán)替換
document.getElementById("test").setAttribute("src", n+".png");
n++;
setTimeout("change("+n+")",1000);
}
window.onload = function(){
setTimeout("change(1)", 1000);
}
向左移動:
startMove(Div, {left:-200,top:0}, 10,function(){}),
向右移動:
startMove(Div, {left:200,top:0}, 10,function(){}),
向上移動:
startMove(Div, {left:0,top:-100}, 10,function(){}),
向下移動:
startMove(Div, {left:0,top:100}, 10,function(){}),
操場軌跡上下兩邊為直線,左右為半圓。
選擇用純css分成四段控制動畫,最終效果如圖:
詳細分析:
創(chuàng)建HTML:
HTML非常簡單,2個div嵌套,里面的point就是點,調(diào)整外面的layout的top,left和rotate做出動畫效果。
div?class="layout"
div?class="point"/div
/div
核心css:
去掉了瀏覽器兼容用的代碼。
把動畫分成四個部分:上方直線-右邊半圓-下方直線-左邊半圓。
最巧妙的地方在于,layout其實是一個長方型,把點放在長方型的一頭,通過旋轉(zhuǎn)layout使點旋轉(zhuǎn),去掉代碼中注釋的紅色背景就能看到如下效果:
.layout{
width:10px;
height:150px;
position:relative;
margin-left:100px;
margin-top:50px;
/*background:red;*/
animation-name:rotate;
animation-duration:2s;
animation-timing-function:linear;
animation-iteration-count:infinite;
animation-direction:alternate;
animation-play-state:running;
animation-direction:normal;
}
@-webkit-keyframes?rotate{
0%??{??left:0px;?top:0px;?
transform:rotate(0deg);
}
25%?{ left:150px;?top:0px;?
transform:rotate(0deg);
}
50%?{ left:150px;?top:50px;?
transform:rotate(180deg);
}
75%?{ left:0px;?top:50px;?
transform:rotate(180deg);
}
100%{ left:0px;?top:0px;?
transform:rotate(360deg);
}
}
完整代碼:
html
head
style?
.point{
width:10px;
height:10px;
background:blue;
position:relative;
border-radius:5px;
margin:0?auto;
}
.layout{
width:10px;
height:150px;
position:relative;
margin-left:100px;
margin-top:50px;
/*background:red;*/
animation-name:rotate;
animation-duration:2s;
animation-timing-function:linear;
animation-iteration-count:infinite;
animation-direction:alternate;
animation-play-state:running;
animation-direction:normal;
/*?Chrome:?*/
-webkit-animation-name:rotate;
-webkit-animation-duration:2s;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count:infinite;
-webkit-animation-play-state:running;
-webkit-animation-direction:normal;
/*?Firefox:?*/
-moz-animation-name:rotate;
-moz-animation-duration:2s;
-moz-animation-timing-function:linear;
-moz-animation-iteration-count:infinite;
-moz-animation-direction:alternate;
-moz-animation-play-state:running;
-moz-animation-direction:normal;
/*?Opera:?*/
-o-animation-name:rotate;
-o-animation-duration:2s;
-o-animation-timing-function:linear;
-o-animation-iteration-count:infinite;
-o-animation-direction:alternate;
-o-animation-play-state:running;
-o-animation-direction:normal;
}
@-webkit-keyframes?rotate{
0%??{??left:0px;?top:0px;?
transform:rotate(0deg);
-ms-transform:rotate(0deg);? /*?IE?9?*/
-moz-transform:rotate(0deg);? /*?Firefox?*/
-webkit-transform:rotate(0deg);?/*?Chrome?*/
-o-transform:rotate(0deg);? /*?Opera?*/
}
25%?{ left:150px;?top:0px;?
transform:rotate(0deg);
-ms-transform:rotate(0deg);? /*?IE?9?*/
-moz-transform:rotate(0deg);? /*?Firefox?*/
-webkit-transform:rotate(0deg);?/*?Chrome?*/
-o-transform:rotate(0deg);? /*?Opera?*/
}
50%?{ left:150px;?top:50px;?
transform:rotate(180deg);
-ms-transform:rotate(180deg);? /*?IE?9?*/
-moz-transform:rotate(180deg);? /*?Firefox?*/
-webkit-transform:rotate(180deg);?/*?Chrome?*/
-o-transform:rotate(180deg);? /*?Opera?*/
}
75%?{ left:0px;?top:50px;?
transform:rotate(180deg);
-ms-transform:rotate(180deg);? /*?IE?9?*/
-moz-transform:rotate(180deg);? /*?Firefox?*/
-webkit-transform:rotate(180deg);?/*?Chrome?*/
-o-transform:rotate(180deg);? /*?Opera?*/
}
100%{ left:0px;?top:0px;?
transform:rotate(360deg);
-ms-transform:rotate(360deg);? /*?IE?9?*/
-moz-transform:rotate(360deg);? /*?Firefox?*/
-webkit-transform:rotate(360deg);?/*?Chrome?*/
-o-transform:rotate(360deg);? /*?Opera?*/
}
}
/style
/head
body
div?class="layout"
div?class="point"/div
/div
/body
/html
布朗運動是隨機運動,計算機無法計算出隨機數(shù),只能模擬出偽隨機數(shù)
所以你可以使用偽隨機數(shù)經(jīng)過算法變換為方向速度距離之類的值來模擬布朗運動
JavaScript運動框架 解決防抖動問題,懸浮對聯(lián)
這篇文章主要為大家詳細介紹了JavaScript運動框架的第二部分,解決防抖動問題、懸浮對聯(lián)問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下