canvas 实现滑动滑块改变图片大小

今天算是第一天学习canvas,学习了一个通过滑动滑块改变图片大小比例e

html部分

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .root {
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            background-color: black;
        }
    </style>
</head>

<body>
    <div class="root">
        <canvas id="dome1" width="800" height="500"></canvas>
        <div class="input">
            <input type="range" style="display: block; width: 800px;" id="scroll_range" min="0.5" max="3.0" step="0.01"
                value="1.0">
        </div>
    </div>
    // 引入js文件
    <script src="./canvas_1.js"></script>
</body>

</html>

js代码

class Img {
    constructor(cid, sid) {
        this.cid = cid
        this.sid = sid
        this.canvas = document.getElementById(cid)
        this.slider = document.getElementById(sid)
        this.ctx = this.canvas.getContext('2d')
        this._init_()
    }

    _init_() {
        const image = new Image()
        image.src = '../img/《Fate Grand Order》游戏美女4k壁纸_彼岸图网.jpg'
        window.onload = () => {
            this.drawImg(image)
        }
    }

    drawImg(image) {
        this.slider.onmousemove = () => {
            const imageWidth = this.canvas.width * this.slider.value
            const imageHeight = this.canvas.height * this.slider.value
            const dx = this.canvas.width / 2 - imageWidth / 2
            const dy = this.canvas.height / 2 - imageHeight / 2
            this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height)
            this.ctx.drawImage(image, dx, dy, imageWidth, imageHeight)
        }
        this.ctx.drawImage(image, 0, 0, this.canvas.width, this.canvas.height)
    }
}

const img = new Img('dome1', 'scroll_range')
posted @ 2020-09-06 19:30  boyyang  阅读(418)  评论(0编辑  收藏  举报
//黑猫咪:https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json //白猫咪:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json //萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json //狗狗:https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json //萌妹1号:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json //萌妹2号:https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json //萌妹3号:https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json //妹子4号:https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json //妹子5号:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json //6号:https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json //7号:https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json //8号:https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json //9号:https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json //10号:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json //11号:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json //帅哥1号:https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json //帅哥2号:https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json