html5实现刮刮卡效果,HTML5实现类似刮刮卡的功能

HTML5实现类似刮刮卡的功能

有这样一个功能,当我们使用微信公众号,发送图片时......此处省略300字!

注意要点设置:

1.设置用户缩放:user-scalable=no|yes

2.禁止拖动:document.ontouchmove = function(e){ e.preventDefault(); }; //文档禁止 touchmove事件

3.禁止弹出选择菜单:document.documentElement.style.webkitTouchCallout = "none";

具体实现代码:

志玲传说

body {

width: 320px;

min-height: 568px;

overflow: hidden;

margin: 0;

}

#canvas {

background: url(img/lzl.jpg);

/*奖品图片*/

fixed center center no-repeat;

background-size: cover;

width: 320px;

min-height: 480px;

overflow: hidden;

position: relative;

}

.before {

background: none !important;

}

#canvas canvas {

cursor: url("img/bird.png") 0 0, auto;

/*PC端的手势图片*/

}

(function() {

window.onload = function() {

/**禁止拖动设置*/

document.ontouchmove = function(e) {

e.preventDefault();

};

/**判断浏览器是否支持canvas**/

try {

document.createElement('canvas').getContext('2d');

} catch (e) {

var addDiv = document.createElement('div');

alert('您的手机不支持刮刮卡效果哦~!');

}

};

var u = navigator.userAgent,

mobile = 'PC';

if (u.indexOf('iPhone') > -1) mobile = 'iphone';

if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) mobile = 'Android';

function createCanvas(parent, width, height) {

var canvas = {};

canvas.node = document.createElement('canvas');

canvas.context = canvas.node.getContext('2d');

//此处可以自己给标签添加

canvas.node.width = width || 320;

canvas.node.height = height || 480;

//给canvas标签添加Id

canvas.node.id = 'canvasTag';

parent.appendChild(canvas.node);

return canvas;

}

function init(container, width, height, fillColor, type) {

var canvas = createCanvas(container, width, height);

var ctx = canvas.context;

// define a custom fillCircle method

ctx.fillCircle = function(x, y, radius, fillColor) {

this.fillStyle = fillColor;

this.beginPath();

this.moveTo(x, y);

this.arc(x, y, radius, 0, Math.PI * 2, false);

this.fill();

};

ctx.clearTo = function(fillColor) {

ctx.fillStyle = fillColor;

ctx.fillRect(0, 0, width, height);

};

ctx.clearTo(fillColor || "#ddd");

canvas.node.addEventListener(mobile == "PC" ? "mousedown" : "touchstart", function(e) {

canvas.isDrawing = true;

}, false);

canvas.node.addEventListener(mobile == "PC" ? "mouseup" : "touchend", function(e) {

canvas.isDrawing = false;

}, false);

canvas.node.addEventListener(mobile == "PC" ? "mousemove" : "touchmove", function(e) {

if (!canvas.isDrawing) {

return;

}

if (type == 'Android') {

var x = e.changedTouches[0].pageX - this.offsetLeft;

var y = e.changedTouches[0].pageY - this.offsetTop;

} else {

var x = e.pageX - this.offsetLeft;

var y = e.pageY - this.offsetTop;

}

var radius = 20;

var fillColor = '#ff0000';

ctx.globalCompositeOperation = 'destination-out';

ctx.fillCircle(x, y, radius, fillColor);

}, false);

}

var container = document.getElementById('canvas');

init(container, 320, 568, '#696868', mobile);

})();

预览效果图:

5db1f650d1a98cce3a7fa6508f81bdd2.png

0a41103363acafe20b6c4550b9aabbf3.png

643436f76eee084334cf6bb1f3403ce3.png

图片素材:

ed36c8323e19c2b7515426e2d985b2a7.png

ce0f52e4c5a10b3cc0f718049fa6f982.png

本文来源于网络:查看 >https://blog.csdn.net/rzg813/article/details/39181361

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值