国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

    有趣的Canvas,你值得擁有!

    2020-5-3    seo達人

    Canvas 是 HTML5 提供的一個用于展示繪圖效果的標簽. Canvas 原意為畫布, 在 HTML 頁面中用于展示繪圖效果. 最早 Canvas 是蘋果提出的一個方案, 今天已經在大多數瀏覽器中實現。


    canvas 的使用領域


    游戲

    大數據可視化數據

    banner 廣告

    多媒體

    模擬仿真

    遠程操作

    圖形編輯

    判斷瀏覽器是否支持 canvas 標簽


    var canvas = document.getElementById('canvas')

    if (canvas.getContext) {

    console.log('你的瀏覽器支持Canvas!')

    } else {

    console.log('你的瀏覽器不支持Canvas!')

    }

    canvas 的基本用法

    1、使用 canvas 標簽, 即可在頁面中開辟一格區域,可以設置其寬高,寬高為 300 和 150


    <canvas></canvas>

    2、獲取 dom 元素 canvas


    canvas 本身不能繪圖. 是使用 JavaScript 來完成繪圖. canvas 對象提供了各種繪圖用的 api。


    var cas = document.querySelector('canvas')

    3、通過 cas 獲取上下文對象(畫布對象!)


    var ctx = cas.getContext('2d')

    4、通過 ctx 開始畫畫(設置起點 設置終點 連線-描邊 )


    ctx.moveTo(10, 10)

    ctx.lineTo(100, 100)

    ctx.stroke()

    繪制線條

    設置開始位置: context.moveTo( x, y )

    設置終點位置: context.lineTo( x, y )

    描邊繪制: context.stroke()

    填充繪制: context.fill()

    閉合路徑: context.closePath()

    canvas 還可以設置線條的相關屬性,如下:


    CanvasRenderingContext2D.lineWidth 設置線寬.

    CanvasRenderingContext2D.strokeStyle 設置線條顏色.

    CanvasRenderingContext2D.lineCap 設置線末端類型,'butt'( 默認 ), 'round', 'square'.

    CanvasRenderingContext2D.lineJoin 設置相交線的拐點, 'miter'(默認),'round', 'bevel',

    CanvasRenderingContext2D.getLineDash() 獲得線段樣式數組.

    CanvasRenderingContext2D.setLineDash() 設置線段樣式.

    CanvasRenderingContext2D.lineDashOffset 繪制線段偏移量.

    封裝一個畫矩形的方法


    function myRect(ctxTmp, x, y, w, h) {

    ctxTmp.moveTo(x, y)

    ctxTmp.lineTo(x + w, y)

    ctxTmp.lineTo(x + w, y + h)

    ctxTmp.lineTo(x, y + h)

    ctxTmp.lineTo(x, y)

    ctxTmp.stroke()

    }


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')

    myRect(ctx, 50, 50, 200, 200)

    繪制矩形

    fillRect( x , y , width , height) 填充以(x,y)為起點寬高分別為 width、height 的矩形 默認為黑色

    stokeRect( x , y , width , height) 繪制一個空心以(x,y)為起點寬高分別為 width、height 的矩形

    clearRect( x, y , width , height ) 清除以(x,y)為起點寬高分別為 width、height 的矩形 為透明

    繪制圓弧

    繪制圓弧的方法有


    CanvasRenderingContext2D.arc()

    CanvasRenderingContext2D.arcTo()

    6 個參數: x,y(圓心的坐標),半徑,起始的弧度(不是角度 deg),結束的弧度,(bool 設置方向 ! )


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')


    ctx.arc(100, 100, 100, 0, degToArc(360))

    ctx.stroke()


    // 角度轉弧度

    function degToArc(num) {

    return (Math.PI / 180) * num

    }

    繪制扇形


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')


    ctx.arc(300, 300, 200, degToArc(125), degToArc(300))


    // 自動連回原點

    ctx.closePath()

    ctx.stroke()


    function degToArc(num) {

    return (Math.PI / 180) * num

    }

    制作畫筆

    聲明一個變量作為標識

    鼠標按下的時候,記錄起點位置

    鼠標移動的時候,開始描繪并連線

    鼠標抬起的時候,關閉開關

    點擊查看效果圖


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')


    var isDraw = false

    // 鼠標按下事件

    cas.addEventListener('mousedown', function () {

    isDraw = true

    ctx.beginPath()

    })


    // 鼠標移動事件

    cas.addEventListener('mousemove', function (e) {

    if (!isDraw) {

    // 沒有按下

    return

    }

    // 獲取相對于容器內的坐標

    var x = e.offsetX

    var y = e.offsetY

    ctx.lineTo(x, y)

    ctx.stroke()

    })


    cas.addEventListener('mouseup', function () {

    // 關閉開關了!

    isDraw = false

    })

    手動涂擦

    原理和畫布相似,只不過用的是clearRect()方法。


    點擊查看效果圖


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')


    ctx.fillRect(0, 0, 600, 600)


    // 開關

    var isClear = false


    cas.addEventListener('mousedown', function () {

    isClear = true

    })


    cas.addEventListener('mousemove', function (e) {

    if (!isClear) {

    return

    }

    var x = e.offsetX

    var y = e.offsetY

    var w = 20

    var h = 20

    ctx.clearRect(x, y, w, h)

    })


    cas.addEventListener('mouseup', function () {

    isClear = false

    })

    刮刮樂

    首先需要設置獎品和畫布,將畫布置于圖片上方蓋住,

    隨機設置生成獎品。

    當手觸摸移動的時候,可以擦除部分畫布,露出獎品區。

    點擊查看效果圖


    <div>

    <img src="./images/2.jpg" alt="" />

    <canvas width="600" height="600"></canvas>

    </div>

    css


    img {

    width: 600px;

    height: 600px;

    position: absolute;

    top: 10%;

    left: 30%;

    }


    canvas {

    width: 600px;

    height: 600px;

    position: absolute;

    top: 10%;

    left: 30%;

    border: 1px solid #000;

    }

    js


    var cas = document.querySelector('canvas')

    var ctx = cas.getContext('2d')

    var img = document.querySelector('img')

    // 加一個遮罩層

    ctx.fillStyle = '#ccc'

    ctx.fillRect(0, 0, cas.width, cas.height)

    setImgUrl()

    // 開關

    var isClear = false

    cas.addEventListener('mousedown', function () {

    isClear = true

    })

    cas.addEventListener('mousemove', function (e) {

    if (!isClear) {

    return

    }

    var x = e.offsetX

    var y = e.offsetY

    ctx.clearRect(x, y, 30, 30)

    })

    cas.addEventListener('mouseup', function () {

    isClear = false

    })


    function setImgUrl() {

    var arr = ['./images/1.jpg', './images/2.jpg', './images/3.jpg', './images/4.jpg']

    // 0-3

    var random = Math.round(Math.random() * 3)

    img.src = arr[random]

    }

    更多demo,請查看 github.com/Michael-lzg…


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://m.dzxscac.cn

    存檔

    主站蜘蛛池模板: 波多野结衣1区| 久久亚洲精品无码gv| 亚洲色图 校园春色| 亚洲人成无码网www| 又色又爽又黄的视频女女| 成人精品国产免费网站| 精品乱码一区二区三四区视频| 卡1卡2卡3精品接入口| 久久无码精品丰满人妻| 无码视频一区二区三区 | 天堂久久久久| 亚洲AV无码专区亚洲AV桃| 国产成人综合久久精品推下载| 1024手机在线看片| 国产区精品在线| 久久天天躁狠狠躁夜夜躁2014 | 国产精品免费在线播放| 女同一区二区| 久久久久亚洲AV无码专| 亚洲一卡2卡三卡4卡国色天香| 美女扒开腿让男人捅| 欧洲xxxxx| www国产亚洲精品久久| 日韩精品一区二区三区| 日本精品三区| 免费一区二区无码东京热| 国产精品 中文字幕 亚洲 欧美| 999视频在线观看| 偷偷色噜狠狠狠狠的777米奇| 亚洲精品乱码8久久久久久日本| 日本男人的天堂| 美国爱爱视频| 免费无码成人片| 精品一区二区国产在线观看| 99久久久久久久久| 国产又色又爽又黄又免费| 秋霞鲁丝片av无码| 欧美xxxxxx片免费播放软件| 天堂综合网久久| 亂倫近親相姦中文字幕| 日韩精品无码综合福利网|