canvas繪製滑鼠懸浮可以變大的立體小球
分享一段程式碼例項,它利用canvas繪製了立體小球效果。
當滑鼠懸浮的時候,小球救護變大,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin: 0; padding: 0; } body, html { width: 100%; height: 100%; overflow: hidden; } </style> <script type="text/javascript"> var CW = document.documentElement.clientWidth; var CH = document.documentElement.clientHeight; window.onload = function() { var oC = document.getElementById('cvs'); oC.width = CW; oC.height = CH; var ctx = oC.getContext('2d'); function Circle(cx, cy, radius) { this.cx = cx; this.cy = cy; this.radius = radius; }; Function.prototype.bindMethod = function(k, v) { return this.prototype[k] = v, this; }; Circle.bindMethod('draw', function(ctx) { //設定畫圖透明度0.7 ctx.globalAlpha = 0.7; //開啟路徑 ctx.beginPath(); //畫0到2*PI的圓弧,也就是一個圓 ctx.arc(this.cx, this.cy, this.radius, 0, 2 * Math.PI); //設定陰影 ctx.shadowOffsetX = 1; ctx.shadowOffsetY = 5; ctx.shadowBlur = 10; ctx.shadowColor = 'rgba(0,0,0,0.5)'; //填充漸變設定 var rgd = ctx.createRadialGradient(85, 85, 5, 100, 100, 70); rgd.addColorStop(0, 'rgb(125,255,229)'); rgd.addColorStop(1, 'rgb(78,180,215)'); ctx.fillStyle = rgd; //這裡陰影和漸變就先用靜態值,之後是準備變成物件屬性控制。 //填充 ctx.fill(); //關閉路徑 ctx.closePath(); }); //畫一個圓 var circle1 = new Circle(100, 100, 50); circle1.draw(ctx); //滑鼠移動事件 oC.onmousemove = function(ev) { // 如果點和圓心距離小於或等於半徑則認為發生碰撞 if (Math.sqrt(Math.pow(ev.pageX - 100, 2) + Math.pow(ev.pageY - 100, 2)) <= 50) { clearInterval(timer); var timer = setInterval(function() { ctx.clearRect(0, 0, oC.width, oC.height); //清除整個畫布上所有的圖形 if (circle1.radius >= 60) { clearInterval(timer); } else { circle1.radius += 1; }; circle1.draw(ctx); }, 16); } else { clearInterval(timer); var timer = setInterval(function() { ctx.clearRect(0, 0, oC.width, oC.height); if (circle1.radius <= 50) { clearInterval(timer); } else { circle1.radius -= 1; }; circle1.draw(ctx); }, 16); } }; }; </script> </head> <body> <canvas id="cvs"></canvas> </body> </html>
相關文章
- canvas 繪製立體圓環Canvas
- css3滑鼠懸浮小球彈性效果CSSS3
- canvas繪製小球漸隱漸現Canvas
- 滑鼠懸浮可以實現圓角矩形明亮變化效果
- CSS3 滑鼠懸浮立體翻滾的導航選單CSSS3
- css3實現的滑鼠懸浮立體動態按鈕效果CSSS3
- 滑鼠懸浮表格行變色程式碼
- CSS滑鼠懸浮行背景變色效果CSS
- css滑鼠懸浮div背景變色效果CSS
- 滑鼠懸浮背景變色導航選單
- 滑鼠懸浮三形選單變叉號
- canvas 按住滑鼠拖動 繪製文字Canvas
- 滑鼠懸浮可以上下伸縮的導航選單
- 滑鼠懸浮實現連結背景變色效果
- javascript滑鼠懸浮行變色程式碼例項JavaScript
- css 滑鼠懸浮連結背景變色程式碼CSS
- 滑鼠懸浮可以伸縮的搜尋框程式碼例項
- CSS實現的滑鼠懸浮整行背景變色程式碼CSS
- css滑鼠懸浮小圖彈出大圖效果CSS
- [譯] CSS 變數實現炫酷滑鼠懸浮效果CSS變數
- 實現滑鼠懸浮table表格行背景變色效果
- js滑鼠懸浮連結背景動畫方式漸變效果JS動畫
- js實現的表格隔行變色和滑鼠懸浮變色程式碼JS
- Gridview的資料列中實現滑鼠懸浮變色View
- 滑鼠懸浮小圖彈出大圖效果詳解
- 滑鼠懸浮按鈕背景變色效果程式碼例項
- 滑鼠懸浮改變連結樣式程式碼例項
- 滑鼠懸浮改變元素的樣式離開樣式還原
- jQuery實現的滑鼠在連結懸浮背景變色程式碼jQuery
- 基於canvas繪製的一個跟隨滑鼠變幻的動態背景線條Canvas
- CSS 滑鼠懸浮動畫暫停效果CSS動畫
- css滑鼠懸浮下拉選單效果CSS
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- jQuery滑鼠懸浮聚焦效果詳解jQuery
- javascript實現的滑鼠懸浮當前td單元格變色效果JavaScript
- canvas繪製帶有漸變效果的直線Canvas
- 滑鼠懸浮div實現旋轉效果
- CSS3滑鼠懸浮元素放大效果CSSS3