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>
相關文章
- js小球重力和碰撞效果JS
- jQuery tab選項卡效果程式碼例項jQuery
- canvas載入效果程式碼例項Canvas
- CSS橢圓效果程式碼例項CSS
- 美化滾動條效果程式碼例項
- canvas原型鐘錶效果程式碼例項Canvas原型
- css3水滴效果程式碼例項CSSS3
- css背景虛化效果程式碼例項CSS
- canvas氣泡上浮效果程式碼例項Canvas
- jQuery點選滑出層效果程式碼例項jQuery
- css3晃動效果程式碼例項CSSS3
- CSS3心形效果程式碼例項CSSS3
- div前後翻轉效果程式碼例項
- 當前文字框高亮效果程式碼例項
- CSS3旋轉效果程式碼例項CSSS3
- 淡入淡出效果簡單程式碼例項
- canvas繪製箭頭效果程式碼例項Canvas
- JS 預編譯程式碼例項分析JS編譯
- CSS3滑過光束效果程式碼例項CSSS3
- CSS3小黃人效果程式碼例項CSSS3
- css3折角效果程式碼例項CSSS3
- CSS3梯形效果程式碼例項CSSS3
- CSS3背景漸變效果程式碼例項CSSS3
- CSS3星系運動效果程式碼例項CSSS3
- jquery.idTabs.min.js選項卡程式碼例項jQueryJS
- 商品搶購倒數計時效果程式碼例項
- CSS3文字凹凸效果程式碼例項CSSS3
- html實現簡單ListViews效果的例項程式碼HTMLView
- CSS3文字陰影效果程式碼例項CSSS3
- jQuery記住使用者名稱和密碼效果程式碼例項jQuery密碼
- dom操作程式碼例項
- css梯形程式碼例項CSS
- js 實現程式碼雨效果JS
- JavaScript in運算子程式碼例項JavaScript
- 設計模式例項程式碼設計模式
- table表格美化程式碼例項
- 純css tab選項卡程式碼例項CSS
- canvas刮刮樂程式碼例項Canvas
- CSS空心箭頭程式碼例項CSS