日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML+CSS+JS实现美女canvas仿ps橡皮擦刮刮卡

發布時間:2025/3/12 HTML 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML+CSS+JS实现美女canvas仿ps橡皮擦刮刮卡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?🍅 作者主頁:Java李楊勇?

🍅 簡介:Java領域優質創作者🏆、Java李楊勇公號作者? ?簡歷模板、學習資料、面試題庫、技術互助【關注我,都給你】

🍅 歡迎點贊 👍 收藏 ?留言 📝 ??

效果演示:?文末獲取源碼?

代碼目錄:

主要代碼實現:

CSS樣式:

body {margin: 0;padding: 0;}.box {position: absolute;left: 0;top: 0;bottom: 0;right: 0;background: url("girl1.jpg") no-repeat;background-size: 100% 100%;backface-visibility: hidden;overflow: hidden;}#cas {width: 100%;height: 100%;opacity: 1;-webkit-transition: opacity .5s;-ms-transition: opacity .5s;-moz-transition: opacity .5s;}.noOp {opacity: 0 !important;}

HTML代碼 :

<div class="box" id="bb"><canvas id="cas" width="1366" height="651"></canvas></div><script type="text/javascript" charset="utf-8">var canvas = document.getElementById("cas"),ctx = canvas.getContext("2d");var x1, y1, a = 30,timeout, totimes = 100,jiange = 30;canvas.width = document.getElementById("bb").clientWidth;canvas.height = document.getElementById("bb").clientHeight;var img = new Image();img.src = "sha.jpg";img.onload = function() {ctx.drawImage(img, 0, 0, canvas.width, canvas.height)//ctx.fillRect(0,0,canvas.width,canvas)tapClip()}//通過修改globalCompositeOperation來達到擦除的效果function tapClip() {var hastouch = "ontouchstart" in window ? true : false,tapstart = hastouch ? "touchstart" : "mousedown",tapmove = hastouch ? "touchmove" : "mousemove",tapend = hastouch ? "touchend" : "mouseup";ctx.lineCap = "round";ctx.lineJoin = "round";ctx.lineWidth = a * 2;ctx.globalCompositeOperation = "destination-out";canvas.addEventListener(tapstart, function(e) {clearTimeout(timeout)e.preventDefault();x1 = hastouch ? e.targetTouches[0].pageX : e.clientX - canvas.offsetLeft;y1 = hastouch ? e.targetTouches[0].pageY : e.clientY - canvas.offsetTop;ctx.save();ctx.beginPath()ctx.arc(x1, y1, 1, 0, 2 * Math.PI);ctx.fill();ctx.restore();canvas.addEventListener(tapmove, tapmoveHandler);canvas.addEventListener(tapend, function() {canvas.removeEventListener(tapmove, tapmoveHandler);timeout = setTimeout(function() {var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);var dd = 0;for (var x = 0; x < imgData.width; x += jiange) {for (var y = 0; y < imgData.height; y += jiange) {var i = (y * imgData.width + x) * 4;if (imgData.data[i + 3] > 0) {dd++}}}if (dd / (imgData.width * imgData.height / (jiange * jiange)) < 0.4) {canvas.className = "noOp";}}, totimes)});function tapmoveHandler(e) {clearTimeout(timeout)e.preventDefault()x2 = hastouch ? e.targetTouches[0].pageX : e.clientX - canvas.offsetLeft;y2 = hastouch ? e.targetTouches[0].pageY : e.clientY - canvas.offsetTop;ctx.save();ctx.moveTo(x1, y1);ctx.lineTo(x2, y2);ctx.stroke();ctx.restore()x1 = x2;y1 = y2;}})}//使用clip來達到擦除效果function otherClip() {var hastouch = "ontouchstart" in window ? true : false,tapstart = hastouch ? "touchstart" : "mousedown",tapmove = hastouch ? "touchmove" : "mousemove",tapend = hastouch ? "touchend" : "mouseup";canvas.addEventListener(tapstart, function(e) {clearTimeout(timeout)e.preventDefault();x1 = hastouch ? e.targetTouches[0].pageX : e.clientX - canvas.offsetLeft;y1 = hastouch ? e.targetTouches[0].pageY : e.clientY - canvas.offsetTop;ctx.save()ctx.beginPath()ctx.arc(x1, y1, a, 0, 2 * Math.PI);ctx.clip()ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.restore();canvas.addEventListener(tapmove, tapmoveHandler);canvas.addEventListener(tapend, function() {canvas.removeEventListener(tapmove, tapmoveHandler);timeout = setTimeout(function() {var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);var dd = 0;for (var x = 0; x < imgData.width; x += jiange) {for (var y = 0; y < imgData.height; y += jiange) {var i = (y * imgData.width + x) * 4;if (imgData.data[i + 3] > 0) {dd++}}}if (dd / (imgData.width * imgData.height / (jiange * jiange)) < 0.4) {canvas.className = "noOp";}}, totimes)});function tapmoveHandler(e) {e.preventDefault()x2 = hastouch ? e.targetTouches[0].pageX : e.clientX - canvas.offsetLeft;y2 = hastouch ? e.targetTouches[0].pageY : e.clientY - canvas.offsetTop;var asin = a * Math.sin(Math.atan((y2 - y1) / (x2 - x1)));var acos = a * Math.cos(Math.atan((y2 - y1) / (x2 - x1)));var x3 = x1 + asin;var y3 = y1 - acos;var x4 = x1 - asin;var y4 = y1 + acos;var x5 = x2 + asin;var y5 = y2 - acos;var x6 = x2 - asin;var y6 = y2 + acos;ctx.save()ctx.beginPath()ctx.arc(x2, y2, a, 0, 2 * Math.PI);ctx.clip()ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.restore();ctx.save()ctx.beginPath()ctx.moveTo(x3, y3);ctx.lineTo(x5, y5);ctx.lineTo(x6, y6);ctx.lineTo(x4, y4);ctx.closePath();ctx.clip()ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.restore();x1 = x2;y1 = y2;}})}</script><script type="text/javascript">window.setTimeout('CountDown()', 100);// End</script>

上面的圖片文件需要引入

源碼獲取

大家點贊、收藏、關注、評論我啦 、查看下方微信公眾號獲取~!

打卡 文章 更新?53??/? 100天

精彩推薦更新中:

HTML5大作業實戰案例《100套》

Java畢設項目精品實戰案例《100套》

總結

以上是生活随笔為你收集整理的HTML+CSS+JS实现美女canvas仿ps橡皮擦刮刮卡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 有码中文字幕 | 日韩一页 | 99精品区| 射区导航 | 精品久久久无码中文字幕 | 日韩欧美国产一区二区三区 | 91小视频在线| 日本成人社区 | 国产嫩草影院久久久久 | 都市激情亚洲一区 | 国产免费播放 | 亚洲成av人片 | 国产美女网站视频 | 中文字幕亚洲日本 | 波多野吉衣一区二区三区 | 武林美妇肉伦娇喘呻吟 | 亚洲色成人一区二区三区小说 | 国产精品制服诱惑 | av中文字幕av | 午夜av电影在线观看 | 久草精品视频 | kk视频在线观看 | 青青草视频免费观看 | 日韩精品电影一区二区 | 黄色日韩视频 | 男人天堂怡红院 | 亚洲免费高清 | 成年人在线免费观看 | 亚洲国产aⅴ精品一区二区的游戏 | 91夫妻视频 | 成年人爱爱视频 | 精品久久久久久久久久久国产字幕 | 欧美成人精品一区二区免费看片 | 美女插插视频 | 精品99在线观看 | 亚洲在线| 三年中文免费观看大全动漫 | 免费毛片视频网站 | 日韩欧美一区二区视频 | 亚洲国产日韩一区二区 | 久久成年 | 17c在线观看视频 | 梦梦电影免费高清在线观看 | 伊人中文在线 | 日韩av影片在线观看 | 成人免费视频国产在线观看 | 国产精品日韩欧美大师 | 亚洲视频在线一区 | 电影寂寞少女免费观看 | 精品国产一区二区三区在线 | 国产精品手机视频 | 日韩精品第二页 | 日本人性爱视频 | 已婚少妇美妙人妻系列 | 国产h片在线观看 | 久操影视 | 亚洲激情二区 | 黄色录像一级大片 | 女生扒开腿让男生操 | 91尤物在线 | 国产伦精品一区三区精东 | 欧洲日韩一区二区三区 | 色婷婷av一区二区三区四区 | 天天色婷婷 | 人与动物黄色片 | 99色图| 在线中文天堂 | 巨乳动漫美女 | 国产免费一区二区三区 | 丰满人妻一区二区三区无码av | 国产aa视频 | 美日毛片 | 中文字幕电影一区二区 | 国产毛片基地 | 一级毛片黄色 | 韩国三级hd中文字幕有哪些 | 亚洲国产免费视频 | 杂技xxx裸体xxxx欧美 | 4hu最新网址 | 国产网址 | 亚洲av综合色区无码另类小说 | 欧美午夜精品久久久久久孕妇 | 狠狠躁狠狠躁视频专区 | 亚洲一区二区电影网 | 日韩中文字幕在线观看 | 激情图片在线观看 | 亚洲黄色免费观看 | 91久久久久久久久久久久久 | 亚洲人一区二区三区 | 日本做爰高潮又黄又爽 | 无码人妻精品一区二区三 | 亚洲天堂网在线观看 | 日韩激情影院 | 亚洲成人免费视频 | 96人xxxxxxxxx69 | 日韩资源网 | 欧美xxxx性xxxxx高清 | 成人在线黄色 | 99精品久久久久久久 |