Javascript實現動畫效果
HTML程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>移動事件應用</title>
<style>
body{
background:pink
}
#picAll{
width:100px;
height:100px;
overflow:hidden;
position:relative
}
</style>
<script src="js/addLoadEvent.js"></script>
<script src="js/move.js"></script>
</head>
<body>
<h1>Dota中各個版本的地圖</h1>
<ol id="links">
<li>
<a href="1.html">Dota第一個版本</a>
</li>
<li>
<a href="2.html">Dota第二個版本</a>
</li>
<li>
<a href="3.html">Dota第三個版本</a>
</li>
<li>
<a href="4.html">Dota第四個版本</a>
</li>
</ol>
<div id="picAll">
<img src="images/hb.jpg" alt="Dota各個版本的圖片" id="img0"/>
</div>
<script type="text/javascript">
function showpic(){
//var picShows = document.getElementById("pic")
var imgf = document.getElementById("img0");
imgf.style.position = "absolute";
imgf.style.left = "0px";
imgf.style.top = "0px";
var linkss = document.getElementById("links");
var aa = linkss.getElementsByTagName("a");
aa[0].onmouseover = function(){
movement("img0",0,0,10);
}
aa[1].onmouseover = function(){
movement("img0",-100,0,10);
}
aa[2].onmouseover = function(){
movement("img0",-200,0,10);
}
aa[3].onmouseover = function(){
movement("img0",-300,0,10);
}
}
addLoadEvent(showpic);
</script>
</body>
</html>
js程式碼:(move.js)
function movement(eleId,pos_x,pos_y,interval){
var ele = document.getElementById(eleId);
var start_x = parseInt(ele.style.left);
var start_y = parseInt(ele.style.top);
var dist = 0;
if (ele.mov){
clearTimeout(ele.mov);//這裡和重要的,佛祖額會出現卡頓現象,佇列堆積所致
}
if (start_x == pos_x && start_y == pos_y){
return true;
}
if (start_x < pos_x)
{
dist = Math.ceil((pos_x-start_x)/10);
start_x += dist;
}
if (start_y < pos_y){
dist = Math.ceil((pos_y-start_y)/10);
start_y += dist;
}
if (start_x > pos_x){
dist = Math.ceil((start_x-pos_x)/10);
start_x -= dist;
}
if (start_y > pos_y){
dist = Math.ceil((start_y-pos_y)/10);
start_y -= dist;
}
ele.style.left = start_x+"px";
ele.style.top = start_y+"px";
//var moveStr = "movement("+ele+","+pos_x+","+pos_y+","+interval+")";
var moveStr = "movement('"+eleId+"',"+pos_x+","+pos_y+","+interval+")";
ele.mov = setTimeout(moveStr,interval);
}
js程式碼(addLoadEvent.js)
function addLoadEvent(fun){
var oldfun = window.onload;
if (typeof window.onload != 'function'){
window.onload = fun;
}else{
window.onload = function(){
oldfun();
fun();
}
}
}
執行結果:
相關文章
- 用JavaScript實現動畫效果 (轉)JavaScript動畫
- javascript實現文字拼寫動畫效果JavaScript動畫
- javascript實現animate()動畫效果程式碼例項JavaScript動畫
- React實現動畫效果React動畫
- javascript實現的動畫效果簡單例項程式碼JavaScript動畫單例
- JavaScript元素動畫效果JavaScript動畫
- JavaScript動畫實現初探JavaScript動畫
- Flutter動畫實現粒子漂浮效果Flutter動畫
- JavaScript 簡單動畫效果JavaScript動畫
- JavaScript 動畫效果例項JavaScript動畫
- Flutter 類抽屜效果動畫實現。Flutter動畫
- 加入購物車動畫效果實現動畫
- Web 頁面如何實現動畫效果Web動畫
- SVG實現動態模糊動畫效果SVG動畫
- SVG 實現動態模糊動畫效果SVG動畫
- 實現漫天飛雪的動畫效果動畫
- JavaScript簡單的動畫效果JavaScript動畫
- JavaScript字串動畫輪播效果JavaScript字串動畫
- css3實現動畫閃爍效果CSSS3動畫
- ul>li*3 實現翻書動畫效果動畫
- Fiori裡花瓣的動畫效果實現原理動畫
- svg實現矩形水平運動動畫效果SVG動畫
- 用js實現動畫效果核心方式JS動畫
- activity切換無動畫效果的實現動畫
- Flutter實戰動畫番外篇-翻頁效果實現Flutter動畫
- JavaScript實現選項卡效果JavaScript
- JavaScript實現文字豎排效果JavaScript
- 前端動畫效果實現的簡單比較前端動畫
- css3實現的簡單動畫效果CSSS3動畫
- canvas實現簡答動畫張閉嘴效果Canvas動畫
- 自定義RecyclerView動畫——實現remove飛出效果View動畫REM
- JavaScript教程全套影片合集:DOM動畫效果JavaScript動畫
- JavaScript實現隨機抽獎效果JavaScript隨機
- javascript實現的放大效果程式碼JavaScript
- javascript實現延遲載入效果JavaScript
- PPT中如何實現川流不息的動畫效果動畫
- jQuery實現的元素淡入淡出動畫效果jQuery動畫
- css3和js實現的大白動畫效果CSSS3JS動畫