整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          javascript自學記錄:canvas繪圖

          于學習js是為爬蟲服務,所以canvas繪圖學習并不完整。

          第15章 使用Canvas繪圖



          15.1 基本用法

          HTML文件中需要有canvas元素,兩標簽之間的文字是瀏覽器不支持時顯示的。

          <canvas id="drawing" width="200" height="200">A drawing of something.</canvas>

          要在網頁中顯示canvas繪制的圖像,只需要在畫布上繪制圖形即可:

          var drawing = document.getElementById("drawing");
          
          if (drawing.getContext){
              var context = drawing.getContext("2d");
          
              context.fillStyle = "#0000ff";
              context.fillRect(10,10,50,50);
          
              context.fillStyle = "rgba(0,0,255,0.5)";
              context.fillRect(30,30,50,50);
          }
          

          也可以通過toDataURL輸出到圖像,并創建新的img:

          var drawing = document.getElementById("drawing");
          
          // 取得圖像的數據URI
          var imgURI = drawing.toDataURL("image/png");
          // 顯示圖像
          
          var image = document.createElement("img");
          image.src = imgURI;
          document.body.appendChild(image);

          15.2 2D上下文

          15.2.1 填充和描邊

          可通過strokeStyle和fillStyle屬性進行設置

          var context = drawing.getContext("2d");
          context.strokeStyle = "red";
          context.fillStyle = "#0000ff";

          設置屬性有以下幾種:

          "red"
          "#0000ff"
          "rgba(0,0,255,0.5)"
          context.strokeStyle = "red";

          15.2.2 繪制矩形

          繪制矩形有fillRect(帶有填充)、strokeRect(無填充)、clearRect(除清矩形區域)三個方法,單位為像素:

          var drawing = document.getElementById("drawing");
          
          if (drawing.getContext){
              var context = drawing.getContext("2d");
              // 紅色的矩形
          
              context.fillStyle = "#ff0000";
              context.fillRect(10,10,50,50);
              // 半透明的矩形
          
              context.fillStyle = "rgba(0,0,255,0.5)";
              context.fillRect(30,30,50,50);
          }

          15.2.3 繪制路徑

          以beginPath()方法開始,然后接著繪制以下線條:

          • arc(x, y, radius, startAngle, endAngle, counterclockwise):以(x,y)為圓心繪制一條弧線,弧線半徑為radius,起始和結束角度(用弧度表示)分別為startAngle 和endAngle。最后一個參數表示
          • startAngle 和endAngle 是否按逆時針方向計算,值為false表示按順時針方向計算。
          • arcTo(x1, y1, x2, y2, radius):從上一點開始繪制一條弧線,到(x2,y2)為止,并且以給定的半徑radius 穿過(x1,y1)。
          • bezierCurveTo(c1x, c1y, c2x, c2y, x, y):從上一點開始繪制一條曲線,到(x,y)為止,并且以(c1x,c1y)和(c2x,c2y)為控制點。
          • lineTo(x, y):從上一點開始繪制一條直線,到(x,y)為止。
          • moveTo(x, y):將繪圖游標移動到(x,y),不畫線。
          • quadraticCurveTo(cx, cy, x, y):從上一點開始繪制一條二次曲線,到(x,y)為止,并且以(cx,cy)作為控制點。
          • rect(x, y, width, height):從點(x,y)開始繪制一個矩形,寬度和高度分別由width 和height 指定。這個方法繪制的是矩形路徑,而不是strokeRect()和fillRect()所繪制的獨立的形狀。

          路徑創建完以后,有多種結尾方式:

          • closePath()會自動與起點連接;
          • fill()會自動以fillStyle填充區域;
          • stroke()會對線條描邊;
          • clip()創建一個剪切區域。

          15.2.4 繪制文本

          方法:

          fillText()
          strokeText()

          屬性:

          font
          textAlign start、end、left、right、center
          textBaseline top、hanging、middle、alphabetic、ideographic、bottom

          前沒有使用過前端java Script插件,所以一直認為很難來著,今天突然在網上搜尋了一波,21種前端java Script插件,我選擇的是Echarts。點擊打開鏈接

          ECharts,縮寫來自Enterprise Charts,商業級數據圖表,一個純Javascript的圖表庫,可以流暢的運行在PC和移動設備上,兼容當前絕大部分瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級的Canvas類庫ZRender,提供直觀,生動,可交互,可高度個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。

          支持折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、K線圖、餅圖(環形圖)、雷達圖(填充雷達圖)、和弦圖、力導向布局圖、地圖、儀表盤、漏斗圖、事件河流圖等12類圖表,同時提供標題,詳情氣泡、圖例、值域、數據區域、時間軸、工具箱等7個可交互組件,支持多圖表、組件的聯動和混搭展現。

          1.創建一個index.html,如下:

          [html] view plain copy

          1. <!DOCTYPE html>

          2. <html>

          3. <head>

          4. <metacharset="utf-8">

          5. <title>ECharts</title>

          6. <!-- 引入 echarts.js -->

          7. <scriptsrc="echarts.js"></script>

          8. </head>

          9. <body>

          10. <!-- 為ECharts準備一個具備大小(寬高)的Dom -->

          11. <divid="main"style="width: 600px;height:400px;"></div>

          12. <scripttype="text/javascript">

          13. // 基于準備好的dom,初始化echarts實例

          14. var myChart = echarts.init(document.getElementById('main'));

          15. // 指定圖表的配置項和數據

          16. var option = {

          17. title: {

          18. text: 'ECharts 入門示例'

          19. },

          20. tooltip: {},

          21. legend: {

          22. data:['銷量']

          23. },

          24. xAxis: {

          25. data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]

          26. },

          27. yAxis: {},

          28. series: [{

          29. name: '銷量',

          30. type: 'bar',

          31. data: [5, 20, 36, 10, 10, 20]

          32. }]

          33. };

          34. // 使用剛指定的配置項和數據顯示圖表。

          35. myChart.setOption(option);

          36. </script>

          37. </body>

          38. </html>

          其中需要導入echarts,這個從官網上下,尋找適合的,鏈接在上面。

          2.然后通過修改上面一列的屬性,構建圖標,上述圖表如下:

          擊查看瀑布特效

          HTML5+javascript打造瀑布特效,canvas繪圖!


          實話說,這不像是一個瀑布,倒像是天上下石頭,但是咱們寫代碼的,不要在意這些細節,重點是思路,邏輯,以及具體實現效果的方法。在布局方面,因為是用HTML5/canvas,所以只需要一個canvas畫布即可,也就是一行代碼:

          <canvas id="canvas" width="400" height="500"></canvas>

          CSS樣式也只需要大概的設置下,代碼量不多,這次的效果重點是javascript的代碼,因為都是用的原生javascript,沒有調用插件,看過我以前寫的特效的朋友就知道,我一般都強調的就是基礎的原生javascript的重要性,特別是現在各種插件以及框架流行,初學者一旦盲目的去學框架,而忽略原生javascript的話其實是很難找工作的,因為每個公司使用的插件以及框架都未必是一樣的,也未必會一直使用。但是如果你原生javascript的基礎很扎實,那么不管是什么框架或者插件,你都能在很短時間內掌握,使用,迅速創造價值,這也是很多公司喜歡的人才!萬丈高樓平地起!不多說,直接上源碼!

          如果想要更多的企業求職加分項目,案例,學習方法可以來一下我的前端群570946165,每天都會精挑細選一個特效,項目出來詳細講解,分享!包括答疑解惑!


          HTML5+javascript打造瀑布特效源碼:

          代碼過長需要文檔版源碼來我的前端群570946165,已上傳到群文件

          頭條號里有許多web前端學習視頻/源碼,企業常用特效/案例/項目,敬請關注!

          這是哪?


          主站蜘蛛池模板: 亚洲爆乳精品无码一区二区三区| 亚洲一区二区三区无码中文字幕| 怡红院一区二区三区| 成人乱码一区二区三区av| 蜜桃传媒一区二区亚洲AV| 一区二区三区日韩| 国模吧一区二区三区| 精品一区二区三区在线观看l| 无码囯产精品一区二区免费 | 精品国产一区二区三区久 | 手机看片福利一区二区三区| 精品国产一区二区三区久久蜜臀| 日亚毛片免费乱码不卡一区| asmr国产一区在线| 台湾无码AV一区二区三区| 久久99精品一区二区三区| 人妻AV中文字幕一区二区三区| 亚洲一区二区三区在线网站 | 国产精品一区二区久久不卡 | 日韩有码一区二区| 在线视频一区二区三区三区不卡| 精品国产一区二区三区在线观看| 国精产品一区二区三区糖心| 亚洲av一综合av一区| 亚洲视频一区在线观看| 精品国产亚洲第一区二区三区| 无码人妻一区二区三区免费视频 | 国模大尺度视频一区二区| 精品国产一区二区三区免费| 一区二区精品在线| 无码视频一区二区三区| 国产精品一区二区三区99 | 日本一区二区三区在线视频| 国产美女露脸口爆吞精一区二区| 国产AV午夜精品一区二区三区| 精品一区二区视频在线观看| 日本一区视频在线播放| 国产精品一区二区久久国产| 午夜影院一区二区| 亚洲日本中文字幕一区二区三区| 人妻AV一区二区三区精品|