js重力球效果程式碼例項
分享一段程式碼例項,它利用js實現了重力球效果。
本例子中,用滑鼠向下拖動小球,然後鬆開即可檢視演示。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { margin: 0px; padding: 0px; } #div1 { width: 50px; height: 50px; background: pink; position: absolute; cursor: pointer; border-radius: 50px; } div { width: 3px; height: 3px; background: black; position: absolute; } </style> <script> window.onload = function() { var oDiv = document.getElementById('div1'); //拖曳 var lastX = 0; var lastY = 0; oDiv.onmousedown = function(ev) { var ev = ev || event; var disX = ev.pageX - oDiv.offsetLeft; var disY = ev.pageY - oDiv.offsetTop; document.onmousemove = function(ev) { var ev = ev || event; var l = ev.pageX - disX; var t = ev.pageY - disY; oDiv.style.left = l + 'px'; oDiv.style.top = t + 'px'; iSpeedX = l - lastX; iSpeedY = t - lastY; lastX = l; lastY = t; } document.onmouseup = function() { document.onmousemove = null; document.onmouseup = null; startMove(); } clearInterval(timer); } var timer = null; function startMove() { var nowX = oDiv.offsetLeft; var nowY = oDiv.offsetTop; clearInterval(timer); timer = setInterval(function() { iSpeedY += 3 nowX += iSpeedX; if (nowX > document.documentElement.clientWidth - oDiv.offsetWidth) { iSpeedX *= -0.8; nowX = document.documentElement.clientWidth - oDiv.offsetWidth; } else if (nowX < 0) { iSpeedX *= -0.8; nowX = 0; } nowY += iSpeedY; if (nowY > document.documentElement.clientHeight - oDiv.offsetHeight) { iSpeedY *= -0.8; iSpeedX *= 0.8 nowY = document.documentElement.clientHeight - oDiv.offsetHeight; } else if (nowY < 0) { iSpeedY *= -1; iSpeedX *= 0.8; nowY = 0; } if (Math.abs(iSpeedX) < 1) { iSpeedX = 0; } if (Math.abs(iSpeedY) < 1) { iSpeedY = 0; } if (iSpeedX == 0 && iSpeedY == 0 && nowY == document.documentElement.clientHeight - oDiv.offsetHeight) { clearInterval(timer); } oDiv.style.left = nowX + 'px'; oDiv.style.top = nowY + 'px'; }, 30) } } </script> </head> <body> <div id='div1'></div> </body> </html>
相關文章
- CSS3彈球效果程式碼例項CSSS3
- css3漂浮氣球效果程式碼例項CSSS3
- js煙花效果程式碼例項JS
- js鐘錶效果程式碼例項JS
- js秒錶效果程式碼例項JS
- js淡入淡出效果例項程式碼JS
- css3實現網狀球體效果程式碼例項CSSS3
- js不重複抽獎效果程式碼例項JS
- js元素上下移動效果程式碼例項JS
- js table隔行變色效果程式碼例項JS
- js簡單日曆效果程式碼例項JS
- js小球拋物線效果程式碼例項JS
- js簡單摺紙效果程式碼例項JS
- js圖片碎片化效果程式碼例項JS
- js元素的震動效果程式碼例項JS
- js左右滑動選項卡效果程式碼例項JS
- js小球重力和碰撞效果JS
- js實現的垂直選項卡效果程式碼例項JS
- js圖片淡入淡出效果程式碼例項JS
- js實現刮刮樂抽獎效果程式碼例項JS
- js實現的留言本效果程式碼例項JS
- js實現的div拖動效果例項程式碼JS
- js模擬實現多型效果程式碼例項JS多型
- js實現的元素抖動效果程式碼例項JS
- jQuery 動畫效果程式碼例項jQuery動畫
- css切角效果程式碼例項CSS
- css模糊效果程式碼例項CSS
- canvas火焰效果程式碼例項Canvas
- jquery 驗證碼效果程式碼例項jQuery
- js點選div實現閃爍效果程式碼例項JS
- angularjs實現的購物車效果程式碼例項AngularJS
- js物件導向封裝拖動效果程式碼例項JS物件封裝
- js簡單富文字編輯器效果程式碼例項JS
- js字型顏色隨機變化效果程式碼例項JS隨機
- js獲取字串指定位置字元效果程式碼例項JS字串字元
- three.js 3D立方體效果程式碼例項JS3D
- CSS橢圓效果程式碼例項CSS
- css立體效果程式碼例項CSS