iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JS如何实现canvas仿ps橡皮擦刮卡效果
  • 736
分享到

JS如何实现canvas仿ps橡皮擦刮卡效果

2023-06-25 17:06:23 736人浏览 独家记忆
摘要

这篇文章主要介绍了js如何实现canvas仿ps橡皮擦刮卡效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果演示:主要JS代码实现 <div c

这篇文章主要介绍了js如何实现canvas仿ps橡皮擦刮卡效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    效果演示:

    JS如何实现canvas仿ps橡皮擦刮卡效果

    主要JS代码实现

     <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)                });                            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++                                }                            }                        }                     }, totimes)                 });                     }    </script>    <script type="text/javascript">        window.setTimeout('CountDown()', 100);        // End    </script>

    感谢你能够认真阅读完这篇文章,希望小编分享的“JS如何实现canvas仿ps橡皮擦刮卡效果”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

    --结束END--

    本文标题: JS如何实现canvas仿ps橡皮擦刮卡效果

    本文链接: https://www.lsjlt.com/news/306141.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • JS如何实现canvas仿ps橡皮擦刮卡效果
      这篇文章主要介绍了JS如何实现canvas仿ps橡皮擦刮卡效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果演示:主要JS代码实现 <div c...
      99+
      2023-06-25
    • JS实现canvas仿ps橡皮擦刮卡效果详解
      目录效果演示: 主要JS代码实现 <div class="box" id="bb"> <canvas id="cas" width="136...
      99+
      2024-04-02
    • 怎么用HTML5实现橡皮擦的涂抹效果
      这篇文章主要讲解了“怎么用HTML5实现橡皮擦的涂抹效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用HTML5实现橡皮擦的涂抹效果”吧!最近项目刚好...
      99+
      2024-04-02
    • JS如何实现网页刮刮乐效果
      小编给大家分享一下JS如何实现网页刮刮乐效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果如下盖伦.jpg刮刮乐.gifHT...
      99+
      2024-04-02
    • HTML5 中怎么利用canvas标签实现刮刮卡效果
      本篇文章为大家展示了HTML5 中怎么利用canvas标签实现刮刮卡效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML我们只需要在页面中加入canvas标签...
      99+
      2024-04-02
    • html5中怎么利用canvas实现一个刮刮卡效果
      这篇文章给大家介绍html5中怎么利用canvas实现一个刮刮卡效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:<!DOCTYPE html><...
      99+
      2024-04-02
    • Html5如何实现移动端、PC端的刮刮卡效果
      这篇文章将为大家详细讲解有关 Html5如何实现移动端、PC端的刮刮卡效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先给大家展示下效果图:刮刮卡需求:每一位用户有三次...
      99+
      2024-04-02
    • JS如何实现模仿QQ头像资料卡显示与隐藏效果
      这篇文章主要介绍JS如何实现模仿QQ头像资料卡显示与隐藏效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例讲述了JS实现的模仿QQ头像资料卡显示与隐藏效果。分享给大家供大家参...
      99+
      2024-04-02
    • 如何实现js选项卡切换效果
      这篇文章主要介绍如何实现js选项卡切换效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果如图:具体代码:<!DOCTYPE html> <html&g...
      99+
      2024-04-02
    • js如何实现简单的选项卡效果
      这篇文章主要介绍了js如何实现简单的选项卡效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果如下: 代码如下:<!DOC...
      99+
      2024-04-02
    • canvas如何实现弹幕效果
      这篇文章主要介绍canvas如何实现弹幕效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下<!DOCTYPE html> <html l...
      99+
      2024-04-02
    • canvas如何实现滤镜效果
      这篇文章给大家分享的是有关canvas如何实现滤镜效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<!DOCTYPE html>  ...
      99+
      2024-04-02
    • AJAX如何实现仿Google Suggest效果
      这篇文章主要为大家展示了“AJAX如何实现仿Google Suggest效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AJAX如何实现仿Google Sug...
      99+
      2024-04-02
    • js+CSS3如何实现卡牌旋转切换效果
      这篇文章主要为大家展示了“js+CSS3如何实现卡牌旋转切换效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js+CSS3如何实现卡牌旋转切换效果”这篇文章吧...
      99+
      2024-04-02
    • ps文字阴影效果如何实现
      这篇文章主要介绍了ps文字阴影效果如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在文字的展现形式上,为了突出效果,我们可以给文字加上阴影的效果。下面我们就来一起看看,...
      99+
      2023-06-14
    • Canvas如何实现倒计时效果
      这篇文章主要介绍了Canvas如何实现倒计时效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTML:<canvas id...
      99+
      2024-04-02
    • canvas之如何实现万花筒效果
      这篇文章将为大家详细讲解有关canvas之如何实现万花筒效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。canvas也有css3里transform的变换功能,tran...
      99+
      2024-04-02
    • javascript中canvas如何实现雨滴效果
      这篇文章将为大家详细讲解有关javascript中canvas如何实现雨滴效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了javascript canvas实现雨滴效果的具体代码,供...
      99+
      2023-06-15
    • js如何实现抽奖效果
      小编给大家分享一下js如何实现抽奖效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:代码如下:<!DOCTYPE&...
      99+
      2024-04-02
    • 如何实现layui选项卡效果
      这篇文章将为大家详细讲解有关如何实现layui选项卡效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下<!DOCTYPE html> &...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作