cari
Rumahhujung hadapan webtutorial csscss3实现把图片画到画布上(代码实例)

css3实现把图片画到画布上(代码实例)

Oct 10, 2018 pm 04:30 PM
canvascss3html5kanvas

本文给大家介绍把图片画到画布上的方法,适应PC和移动端 使用。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

画一张图片到画布上

<canvas id="myCanvas" width="1000px" height="200px" >您的浏览器不支持canvas标签。</canvas>
var canvas = document.getElementById("myCanvas");
//获取画笔
var ctx=canvas.getContext(&#39;2d&#39;);
//声明Image对象
var img=new Image();
//获取img路径
img.src="img/num.png";
//把图片画到画布上
img.onload=function(){
	ctx.drawImage(img,57,0,57,64);
}

如果要把几张不同的图片放画到画布上,有几张图片就需要声明几次对象,获取几次路径,在画布上画几次。

下面是我在画布上画来 6张图片,

var canvas = document.getElementById("myCanvas");
//获取画笔
			var ctx=canvas.getContext(&#39;2d&#39;);
			//声明Image对象
			var img=new Image();
			var img1=new Image();
			var img2=new Image();
			var img3=new Image();
			var img4=new Image();
			var img5=new Image();
			//获取img路径
			img.src="img/num.png";
			img1.src="img/num/1.png"
			img2.src="img/num/4.png"
			img3.src="img/num/2.png"
			img4.src="img/num/5.png"
			img5.src="img/num/7.png"
			//把图片画到画布上
			img.onload=function(){
				ctx.drawImage(img,57,0,57,64);
			}
			img1.onload=function(){
				ctx.drawImage(img1,114,0,57,64);
			}
			img2.onload=function(){
				ctx.drawImage(img2,171,0,57,64);
			}
			img3.onload=function(){
				ctx.drawImage(img3,228,0,57,64);
			}
			img4.onload=function(){
				ctx.drawImage(img4,285,0,57,64);
			}
			img5.onload=function(){
				ctx.drawImage(img5,342,0,57,64);
			}
ctx.drawImage(img5,342,0,57,64)里面的参数分别为,图片,x坐标,y坐标,图片宽度,图片高度

效果图:

现在呢,我要让画布画的图片能在pc和移动端都能适应,那么,我就要对这些代码进行再加工,我现在只要改 把图片画到画布上的代码

 //把图片画到画布上
        function getCurrentImg() {
            var docW = $(document.body).width(); //获取页面宽度
              if (docW == 640) {//640是PC端的宽度
                 img.onload = function () {
                    ctx.drawImage(img, 22, 58, 55, 66);
                }
                img1.onload = function () {
                    ctx.drawImage(img1, 77, 58, 55, 66);
                }
                img2.onload = function () {
                    ctx.drawImage(img2, 132, 58, 55, 66);
                }
                img3.onload = function () {
                    ctx.drawImage(img3, 187, 58, 55, 66);
                }
                img4.onload = function () {
                    ctx.drawImage(img4, 242, 58, 55, 66);
                }
                img5.onload = function () {
                    ctx.drawImage(img5, 297, 58, 55, 66);
                }
              } else if (docW < 640) {//移动端的时候
                     img.onload = function () {
                        ctx.drawImage(img, 19, 51, 40, 45);
                    }
                    img1.onload = function () {
                        ctx.drawImage(img1, 59, 51, 40, 45);
                    }
                    img2.onload = function () {
                        ctx.drawImage(img2, 99, 51, 40, 45);
                    }
                    img3.onload = function () {
                        ctx.drawImage(img3, 139, 51, 40, 45);
                    }
                    img4.onload = function () {
                        ctx.drawImage(img4, 179, 51, 40, 45);
                    }
                    img5.onload = function () {
                        ctx.drawImage(img5, 219, 51, 40, 45);
                    }
              }
        }
        getCurrentImg();
        $(window).resize(function () {//页面大小发生改变的时候自动刷新页面
            var docW = $(document.body).width();
            var canvas = document.getElementById("myCanvas");
             //var ctx = canvas.getContext(&#39;2d&#39;);
             if (docW == 640) {
                canvas.height=canvas.height;//页面改变时清除画布
                 ctx.drawImage(img, 22, 58, 55, 66);
                    ctx.drawImage(img1, 77, 58, 55, 66);
                    ctx.drawImage(img2, 132, 58, 55, 66);
                    ctx.drawImage(img3, 187, 58, 55, 66);
                    ctx.drawImage(img4, 242, 58, 55, 66);
                    ctx.drawImage(img5, 297, 58, 55, 66);
                      
             } else if (docW < 640) {
                 canvas.height=canvas.height;//页面改变时清除画布
                    ctx.drawImage(img, 19, 51, 40, 45);
                   ctx.drawImage(img1, 59, 51, 40, 45);
                    ctx.drawImage(img2, 99, 51, 40, 45);
                    ctx.drawImage(img3, 139, 51, 40, 45);
                    ctx.drawImage(img4, 179, 51, 40, 45);
                    ctx.drawImage(img5, 219, 51, 40, 45);
                      
            }
        })

resize()方法是一定要用的,我也是经过摸索之后才发现的,如果不用的话,你每次切换PC端和移动端的时候都要手动刷新页面,虽然说功能还是可以实现,但是用户体验不是很好。

一定要注意,页面大小改变的时候先要清除画布,否则会有不同页面大小的画布叠加

我这里只是简单的区分了一下移动端和PC端,如果要是在移动端不同屏幕大小的设备上自适应的话,还需要更多的if(){}else{}的判断。

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问 CSS3视频教程Html5视频教程

相关推荐:

php公益培训视频教程

CSS3在线手册

div/css图文教程

HTML5图文教程

HTML5在线手册

html5特效代码大全

Atas ialah kandungan terperinci css3实现把图片画到画布上(代码实例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:博客园. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Widget sepuluh tanWidget sepuluh tanApr 15, 2025 am 09:43 AM

Pada ceramah persidangan baru-baru ini (maaf, saya lupa mana yang satu), terdapat contoh cepat prestasi web yang lemah dalam bentuk widget pihak ketiga. Contohnya

Resipi untuk ujian prestasi aplikasi tunggal di webpageTestResipi untuk ujian prestasi aplikasi tunggal di webpageTestApr 15, 2025 am 09:42 AM

WebpageTest adalah alat dalam talian dan projek sumber terbuka untuk membantu pemaju mengaudit prestasi laman web mereka. Sebagai penginjil prestasi web di

Hentikan animasi semasa saiz semula tetingkapHentikan animasi semasa saiz semula tetingkapApr 15, 2025 am 09:40 AM

Katakan anda mempunyai halaman yang mempunyai banyak peralihan dan animasi pada pelbagai elemen. Sebilangan daripada mereka dapat dicetuskan apabila tingkap diubahsuai kerana mereka

Menenun satu elemen di atas dan di bawah elemen lainMenenun satu elemen di atas dan di bawah elemen lainApr 15, 2025 am 09:38 AM

Dalam jawatan ini, kami akan menggunakan kuasa besar CSS untuk mewujudkan kesan visual di mana dua elemen bertindih dan menenun bersama. Epiphany untuk reka bentuk ini datang

Adakah terdapat nombor rawak dalam CSS?Adakah terdapat nombor rawak dalam CSS?Apr 15, 2025 am 09:37 AM

CSS membolehkan anda membuat susun atur dan antara muka yang dinamik di web, tetapi sebagai bahasa, ia adalah statik: sekali nilai ditetapkan, ia tidak dapat diubah. Idea

Elemen terapung di tengah -tengah perengganElemen terapung di tengah -tengah perengganApr 15, 2025 am 09:36 AM

Katakan anda ingin mempunyai imej (atau mana -mana elemen lain) secara visual terapung ke dalam perenggan teks. Tetapi seperti ... di tengah -tengah perenggan, tidak betul

Biarkan ' s membuat loader halaman mewah, tetapi tidak rumitBiarkan ' s membuat loader halaman mewah, tetapi tidak rumitApr 15, 2025 am 09:33 AM

Adalah biasa untuk melihat keadaan pemuatan di laman web hari ini, terutamanya sebagai aplikasi web progresif dan tapak reaktif semakin meningkat. Ini satu cara untuk

Landskap pembangunan aplikasi silang platformLandskap pembangunan aplikasi silang platformApr 15, 2025 am 09:29 AM

Saya tidak mengesan perkara ini dengan baik, tetapi saya dapat. Sekiranya anda mahukan aplikasi asli untuk Android dan iOS, pasti akan hanya perlu menulisnya

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna