`

js实现雷达扫描效果

阅读更多

etherdream的原理是使用borderWidth的动态改变,可兼容非HTML5浏览器,缺点是代码较多,需要新增DOM节点,而且只能用纯色遮罩,不能实现用图片做遮罩。

 

也可以用来做照片切换效果,点这里看DEMO

  1. <canvas id="canvas1" width="400" height="300"></canvas> 
  2. <script> 
  3. //MyCtx是我写的一个通用的类,我自己写些小小的canvas js都用这个当先锋。 
  4. //把canvas 2d context的一些常用方法封装了一下,以便像jQuery那样作链式调用。 
  5. //对于最常用的绘制路径的指令,采用了字母缩写。习惯了svg的简洁,也搬迁到canvas来。 
  6. function MyCtx(ctx){ 
  7. this.ctx = ctx; 
  8. (function (map){ 
  9. for(var k in map){ 
  10. MyCtx.prototype[k] = new Function('this.ctx.'+map[k]+'.apply(this.ctx,arguments); return this;'); 
  11. }({ 
  12. B:'beginPath', M:'moveTo', L:'lineTo', A:'arc', Z:'closePath', f:'fill', dI:'drawImage', cR:'clearRect', clip:'clip', save:'save', restore:'restore' 
  13. })); 
  14. function init(){ 
  15. var ctx = document.getElementById("canvas1").getContext('2d'); 
  16. var mtx = new MyCtx(ctx), i=-1; 
  17. function f(){ 
  18. //链式调用绘图指令,绘制一个扇形,扇形的角度随时间逐渐变化,这是实现动画效果的关键。 
  19. mtx.save().dI(img,0,0).B().A(200,150,250,Math.abs(++i%100)*Math.PI/50,Math.PI*2,(i/100|0)%2).L(200,150).Z().clip().dI(img,-400,0).restore(); 
  20. setTimeout(f,60); 
  21. f(); 
  22. var img = new Image(); 
  23. img.src = 'p1.jpg'; 
  24. img.onload = init; 
  25. </script>
复制代码

原理:先绘制一个底图,再绘制一个扇形的剪切区域,绘制上层的图到该剪切区域,剪切区内显示上层的图,剪切区外显示底图。
关键是arc()和clip()指令的使用。

分享到:
评论

相关推荐

    threejs+shader 雷达扫描.zip

    在本文中,我们将深入探讨如何使用Three.js库与着色器(Shader)技术来实现雷达扫描效果。Three.js是一个基于WebGL的JavaScript库,它使得在网页上创建3D图形变得更加简单。WebGL是一种在浏览器中运行的API,用于渲染...

    Three.js shader 城市 雷达 扫描 波动 扩散效果

    在本文中,我们将深入探讨如何使用Three.js库和WebGL技术来实现城市雷达扫描、波动和扩散效果。Three.js是一个基于JavaScript的3D图形库,它利用WebGL API为浏览器提供强大的3D渲染功能。 首先,让我们理解Shader的...

    雷达扫描效果三维地图GIS大数据可视化

    数据可视化,我们常见的有表格、图标、图表、柱状图、折线图、雷达图、漏斗图、等值面图、等值线图、GIS地图、蜂窝图、格点数据、热力图、柱状图、饼图、散点图、地理坐标/地图、K 线图、雷达图、盒须图、热力图、...

    js实现地图上雷达探测效果

    本文将深入探讨如何使用JavaScript实现地图上的雷达探测效果,以及涉及的相关技术点。 首先,我们需要一个地图API来展示地图。在JavaScript中,常见的地图API有Google Maps API、Bing Maps API和高德地图API等。...

    CSS3模拟雷达扫描动画效果

    本教程将详细解析如何利用CSS3来实现一个逼真的雷达扫描动画效果,就像标题所描述的那样——"CSS3模拟雷达扫描动画效果"。 首先,我们要了解雷达扫描动画的基本原理。雷达扫描通常表现为一个圆形或椭圆形的光束,自...

    HTML5 Canvas实现雷达扫描动画特效

    这是一款基于HTML5 Canvas...这款雷达扫描动画就是利用了canvas的灵活特性,利用js在canvas上绘制这些美丽的扫描线条。此外这款源码还提供了点击绘制的功能,用户可以根据自己的喜好绘制出新的类似雷达扫描特效的图形。

    纯CSS3雷达扫描模拟动画

    在实际的项目中,开发者需要结合HTML结构和CSS3的这些特性,编写合适的样式代码来实现雷达扫描动画。例如,可能创建一个圆形的元素作为雷达的主体,并利用`@keyframes`定义雷达波从中心点向外扩散并逐渐消失的过程。...

    CSS3雷达扫描动态图.zip

    3. **旋转(transform: rotate())**: 为了实现雷达扫描的效果,通常会使用`transform`属性的`rotate()`函数,让元素按照指定的角度进行旋转。 4. **透明度(opacity)**:可能还会结合使用`opacity`属性,使得雷达...

    minemap地图2d雷达扫描效果

    minemap结合threejs实现雷达扫描效果,使用webgl编写渲染效果

    CSS3实现的模仿雷达扫描效果动画源码.zip

    在CSS3中,实现雷达扫描效果的关键在于使用`@keyframes`规则创建动画。通过定义动画从开始到结束的不同状态,可以实现雷达扫射的圆周运动。例如,可以设置`transform: rotate()`来改变元素的角度,模拟雷达的旋转;`...

    QQ微信附近好友雷达扫描

    5. **雷达动画效果**:在UI设计上,雷达扫描效果的实现涉及到动画编程。在Android中,可以使用`ObjectAnimator`、`ValueAnimator`或者自定义View来创建动态效果;在iOS中,可以利用Core Animation或者SwiftUI来实现...

    HTML雷达扫描动画

    HTML雷达扫描动画是一种利用HTML5的Canvas元素和JavaScript技术实现的动态效果,它模拟了雷达扫描的过程,通常用于创建交互式或视觉上吸引人的网页元素。在这个项目中,开发者使用了JavaScript来控制Canvas画布上的...

    html5 canvas实现雷达扫描特效

    首先,要创建一个雷达扫描效果,我们需要在HTML文档中引入一个`&lt;canvas&gt;`元素,通过JavaScript来获取这个元素的2D渲染上下文。例如: ```html &lt;!DOCTYPE html&gt; &lt;canvas id="radar"&gt;&lt;/canvas&gt; &lt;script src="radar....

    QT--QML版本雷达扫描图

    QT--QML版本雷达扫描图是一种使用Qt框架的高级特性,特别是其QML语言来实现的动态图形技术。QML是一种声明式语言,专为构建用户界面而设计,它允许开发者以直观、简洁的方式描述UI元素及其交互行为,极大地简化了...

    HTML5 Canvas制作逼真的雷达扫描动画代码

    "HTML5 Canvas制作逼真的雷达扫描动画代码"是一个利用Canvas API实现的项目,它能够生成一种模拟雷达扫描效果的动画。这个动画效果可以用于各种场景,比如游戏、导航应用或者艺术展示等。 Canvas API是HTML5标准的...

    canvas监测扫描效果

    雷达扫描效果通常涉及到在一个圆形区域内进行连续的线性或旋转扫描,类似于现实世界中雷达的工作方式。在Canvas中,我们可以利用`arc()`和`lineTo()`等方法来绘制这样的效果。 1. **创建Canvas元素**: 首先,你...

    canvas雷达扫描模拟动画特效.zip

    8. **混合模式和透明度**: 雷达扫描动画可能涉及到混合模式(blending modes)和透明度(opacity),以实现雷达波信号的叠加效果,或者让雷达扫描线有渐隐渐现的过渡。 9. **性能优化**: 对于复杂的动画,性能优化...

    svg雷达图效果,js技术

    "雷达扫描"可能是指一种模拟雷达探测的过程,通过JavaScript实现动态的扫描效果。这可能涉及到以下技术: 1. **定时器**:使用`setInterval`或`requestAnimationFrame`创建循环,模拟雷达扫描过程。 2. **渐显渐隐**...

    超酷的HTML5 Canvas雷达扫描动画.rar

    雷达扫描的动态效果可能是通过定时器(setInterval或requestAnimationFrame)来实现,不断更新雷达的扫描角度,从而产生连续扫射的画面。 同时,描述提到了鼠标效果,这意味着当用户在雷达区域移动鼠标时,会触发特定...

    HTML5 canvas绚丽雷达扫描光环特效.zip

    通过这个压缩包,我们可以学习到如何使用HTML5 Canvas来创建复杂动画,以及如何结合数学和JavaScript编程技巧来实现真实感的雷达扫描效果。这是一个很好的实践项目,可以帮助开发者深入理解Canvas API和动画制作技巧...

Global site tag (gtag.js) - Google Analytics