IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用HTML5实现刮刮卡效果

    天外飞仙发表于 2015-09-27 06:18:20
    love 0

    使用HTML5实现刮刮卡效果
    20150922231834
    引入js代码

    <script type="text/javascript">
    var bodyStyle = document.body.style;
    
    bodyStyle.mozUserSelect = 'none';
    bodyStyle.webkitUserSelect = 'none';
    
    var img = new Image();
    var canvas = document.querySelector('canvas');
    canvas.style.backgroundColor='transparent';
    canvas.style.position = 'absolute';
    var imgs = ['p_0.jpg','p_1.jpg'];
    var num = Math.floor(Math.random()*2);
    img.src = imgs[num];
    
    img.addEventListener('load', function(e) {
    	var ctx;
        var w = img.width,
        	h = img.height;
        var offsetX = canvas.offsetLeft,
        	offsetY = canvas.offsetTop;
        var mousedown = false;
    
        function layer(ctx) {
            ctx.fillStyle = 'gray';
            ctx.fillRect(0, 0, w, h);
        }
    
        function eventDown(e){
            e.preventDefault();
            mousedown=true;
        }
    
        function eventUp(e){
            e.preventDefault();
            mousedown=false;
        }
    
        function eventMove(e){
            e.preventDefault();
            if(mousedown) {
                 if(e.changedTouches){
                     e=e.changedTouches[e.changedTouches.length-1];
                 }
                 var x = (e.clientX + document.body.scrollLeft || e.pageX) - offsetX || 0,
                     y = (e.clientY + document.body.scrollTop || e.pageY) - offsetY || 0;
                 with(ctx) {
                     beginPath()
                     arc(x, y, 10, 0, Math.PI * 2);
                     fill();
                 }
            }
        }
    
        canvas.width=w;
        canvas.height=h;
        canvas.style.backgroundImage='url('+img.src+')';
        ctx=canvas.getContext('2d');
        ctx.fillStyle='transparent';
        ctx.fillRect(0, 0, w, h);
        layer(ctx);
    
        ctx.globalCompositeOperation = 'destination-out';
    
        canvas.addEventListener('touchstart', eventDown);
        canvas.addEventListener('touchend', eventUp);
        canvas.addEventListener('touchmove', eventMove);
        canvas.addEventListener('mousedown', eventDown);
        canvas.addEventListener('mouseup', eventUp);
        canvas.addEventListener('mousemove', eventMove);
    });
    </script>
    

    下载地址
    预览地址



沪ICP备19023445号-2号
友情链接