首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HTML5画布的遮罩效果

问使用HTML5画布的遮罩效果
EN

Stack Overflow用户
提问于 2013-04-30 04:12:58
回答 1查看 823关注 0票数 0

我使用canvas和mousemove创建了一个遮罩效果。

示例:FIDDLE

掩蔽效果可以工作,但在快速滚动性能不是很理想。

如何提高帧率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 06:13:53

我简单地使用窗口鼠标坐标来修复它,而不是画布上的侦听器(假设您希望图片只是黑色)。

http://jsfiddle.net/gfZ5C/166/

我也改成了requestAnimationFrame,你会注意到圆圈的运动是完全不同的FPS,而不是随着听众的移动。

代码语言:javascript
复制
window.onmousemove = function (e) {
    circle.posX = e.pageX-can.offsetLeft;
    circle.posY = e.pageY-can.offsetTop;
    circle.hide = (circle.posX >= 550 || circle.posY >= 550) ? true : false;
}
if (!circle.hide) ctx.arc(circle.posX, circle.posY, 70, 0, Math.PI * 2, true);

我把它留在550,这样你就可以看到它实际上消失了,如果你想让圆从画布上拖出来,你可以把它改成一个大数字。

现在,在跟随鼠标的圆圈上也没有延迟。

更新:修复了小提琴,所以圆也可以根据窗口偏移进行调整。偏移量与其父元素相关,因此根据画布的深度,您必须减去它所在的每个元素的偏移量。

更新:切换到处理'onmouse‘事件,这在真实的站点上会工作得更好,因为鼠标悬停在iFrame上不能很好地工作,但它仍然可以工作。将100%的工作,如预期在一个真实的网站。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16288322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档