canvas实现“探照灯”共能

简单的样式:

body{    margin: 0;    padding: 0;}#canvas{    display: block;    position: relative;    margin: auto;}

创建绘图标签:

<canvas id="canvas">    您的浏览器不支持,请用升级浏览器或下载chrome浏览器体验</canvas>

具体实现:
var ball={    x:200,    y:200,    r:150,    vx:7+Math.random()*5,    vy:3+Math.random()*5};var B = true;window.onload= function () {    var canvas=document.getElementById("canvas");    var context=canvas.getContext(‘2d‘);    canvas.width=window.innerWidth;    canvas.height=window.innerHeight;    if (context){//判断是否支持canvas        setInterval(function () {            Draw (context,canvas.width,canvas.height);            ballMove(canvas.width,canvas.height);        },50);

canvas.addEventListener("click", function () {            var x = event.clientX - canvas.getBoundingClientRect().left;            var y = event.clientY - canvas.getBoundingClientRect().top;            var click_this=context.isPointInPath(x,y);            if ( click_this ){                B = false;            }else {                B = true;            }        });    }else {        alert("您的浏览器不支持,请用升级浏览器或下载chrome浏览器体验");    }};function ballMove(canvasW,canvasH){    if ( B ){        ball.x += ball.vx;        ball.y += ball.vy;    }    if( ball.y >= canvasH-ball.r || ball.y <= ball.r ){        ball.vy = - ball.vy;    }    if( ball.x >= canvasW-ball.r || ball.x <= ball.r ){        ball.vx = -ball.vx;    }    return ball}

function Draw (context,W,H){    console.log("还在进行");    context.clearRect(0,0,W, H);    context.save();

context.beginPath();    context.fillStyle = "black";    context.fillRect(0,0,W, H);    context.closePath();

context.beginPath();    context.arc(ball.x,ball.y,ball.r,0,Math.PI*2);    context.fillStyle = "#fff";    context.fill();    context.clip();

var imgs=new Image();    imgs.src="../imgs/c1.jpg";    context.fillStyle = context.createPattern(imgs,"repeat");    context.fill();

context.restore();}
时间: 2024-10-29 15:51:08

canvas实现“探照灯”共能的相关文章

2017年最权威的1000集大型web前端视频教程(爱创课堂出品)文后附录视频下载链接

2017年最新爱创课堂前端开发课程介绍爱创课堂Web前端开发工程师培训-价值1万8课程 资料持续更新中,第一时间领取请加QQ2079576908 Web前端开发工程师,主要职责是利用HTML.XHTML.CSS.JAVAScript.FLASH等各种Web前端技术进行客户端产品的开发.完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web前端开发,致力于通过技术改善用户体验. 第一阶段:页面制作基础 从这一基础

2016年最权威的1000集大型web前端视频教程(爱创课堂出品)

标题:2016年最权威的1000集大型web前端视频教程(爱创课堂出品): 爱创课堂Web前端开发工程师培训-价值1万8课程Web前端开发工程师,主要职责是利用HTML.XHTML.CSS.JAVAScript.FLASH等各种Web前端技术进行客户端产品的开发.完成客户端程序( 也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web前端开发,致力于 通过技术改善用户体验. 需要联系下载视频请加QQ:2079576908 第一

canvas粒子系统的构建

前面的话 本文将从最基本的imageData对象的理论知识说开去,详细介绍canvas粒子系统的构建 效果演示 下面是实例效果演示,博文结尾有全部源码 imageData 关于图像数据imageData共有3个方法,包括getImageData().putImageData().createImageData() [getImageData()] 2D上下文可以通过getImageData()取得原始图像数据.这个方法接收4个参数:画面区域的x和y坐标以及该区域的像素宽度和高度 例如,要取得左上

HTML5 画布canvas元素

HTML5 画布canvas元素 HTML5的canvas元素以及随其而来的编程接口Canvas API应用前景极为广泛.简单地说,canvas元素能够在网页中创建一块矩形区域,这块矩形区域可以成为画布,这其中可以绘制各种图形.可别小看了这个画布,它能实现无限的可能性.接下来我们从最简单的部分开始,逐步认识Canvas的强大功能. 1.在页面中添加canvas元素: 默认情况下,Canvas所创建的矩形区域大小为宽300像素,高150像素,不过我们可以使用width和height属性来自定义画布

赠书:HTML5 Canvas 2d 编程必读的两本经典

赠书:HTML5 Canvas 2d 编程必读的两本经典 这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide(斧子演示,www.axeslide.com).在这个领域也积累了一些 经验,希望有机会和大家分享.今天是要给大家推荐两本这方面的书,同时会送一本书给大家. 要介绍的第一本书是我学习Canvas开发的入门书——<HTML5 Canvas核心技术:图形.动画与游戏开发>. 此书作者David Gear

HTML5 Canvas绘图系列之一:圆弧等基础图形的实现

之前的一个微信项目已经要结项了,最近整理一下项目中使用较多的canvas画图方面的知识吧,打算写个3,4篇的样子.本篇主要介绍基础操作和弧线画法. 之后再写一下趋势图,直方图,文本图像处理的. 言归正传,canvas元素本身是一个容器元素,提供一块画布,用脚本来实现想要画什么.为了演示使用,我们新增一个空的aspx页. 首先,我们新增一个canvas元素: <canvas id="myConvas" style="display:block; margin: 0 aut

转载爱哥自定义View系列--Canvas详解

上面所罗列出来的各种drawXXX方法就是Canvas中定义好的能画什么的方法(drawPaint除外),除了各种基本型比如矩形圆形椭圆直曲线外Canvas也能直接让我们绘制各种图片以及颜色等等,但是Canvas真正屌的我觉得不是它能画些什么,而是对画布的各种活用,上一节最后的一个例子大家已经粗略见识了变换Canvas配合save和restore方法给我们绘制图形带来的极大便利,事实上Canvas的活用远不止此,在讲Canvas之前,我想先给大家说说Canvas中非常屌毛而且很有个性的一个方法:

canvas基础学习(一)

一.概述 canvas它和其它的HTML5标签的使用基本一致,但是它相当于在浏览器中建立一个画布,可以再这个画布上画图.创建动画甚至是3D游戏.由于canvas要适配不同终端的分辨率,所以尽可能的在标签内设置高度和宽度,这个也符合W3C的标准.代码格式如下,当浏览器不支持canvas标签的时候,会显示其中的文字. <canvas id="main" width="800" height="600" > 亲,您的浏览器不支持canvas

HTML5中canvas元素,绘制圆形

HTML5中canvas元素,绘制圆形需要使用路径,开始时要取得图形上下文,首先使用路径来勾勒图形的轮廓,然后设置颜色,进行绘制. <!DOCTYPE html> <head> <meta charset="UTF-8" /> <script>     function draw(id) {         var canvas = document.getElementById(id);         if (canvas == nu