<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!-- 这里定义原始图片,设置鼠标移动到图片上触发的函数,已经离开图片触发的函数 -->
<img id="eagle" onmousemove="maxpicture(event)" onmouseleave="quitPicture(event)"/>
<!-- 这里设置画板,展示图片放大后的效果图 -->
<div id="mydiv"><canvas id="mcanvas" width="800" height="600"></canvas></div>
<script type="text/javascript">
var image=document.getElementById("eagle");
var divi=document.getElementById("mydiv");
image.src="eagle.jpg";  //原图片地址
var sizefactor=0.3;
//原始图片装载完成后触发的事件,将原图进行了缩放显示
image.onload=function()
{ //获取原始图片的长宽var originX=image.width;var originY=image.height;image.width=originX*sizefactor;image.height=originY*sizefactor;}
//鼠标离开原图触发的事件
image.quitPicture=function(event)
{//原图所在的位置是div元素内,因此将canvas元素进行了删除if(divi.hasChildNodes()){ divi.removeChild(divi.lastChild);}
}
//放大图片触发的时间事件
function maxpicture(event)
{var mouseX=event.offsetX; //定位鼠标所在的坐标(图片上坐标)var mouseY=event.offsetY;if(divi.hasChildNodes())   //这个事件是一个反复触发的过程,因此删除上一次绘制的画板重新绘制{ divi.removeChild(divi.lastChild);}//设置新创建的画板的属性var newCanvas=document.createElement("canvas");newCanvas.width=500;newCanvas.height=500;newCanvas.style.border="0.2px solid black";//向div中添加新的画板divi.appendChild(newCanvas);var newCtx=newCanvas.getContext('2d');//画板的区域是500*500,新绘制的大图是1000*1000,所有有一部分被忽略绘制//因为绘制所开始的区域是从画板左上方开始绘制,如果想让鼠标所在的点成为画板中心区域,对应原图坐标需要减去250,250//又因为原图和画板图片的比例尺为1:2,因此对应原图减去125,125newCtx.drawImage(image,(mouseX)/sizefactor-125,(mouseY)/sizefactor-125,500,500,0,0,1000,1000);}</script></body></html>

利用html5中canvas实现类似淘宝的放大图片效果相关推荐

  1. 仿淘宝商品放大展示效果制作(放大镜效果)

    如果您觉得这篇文章有用,欢迎点赞收藏或有什么建议请在评论区留言,我看到后会第一时间回复的,谢谢! (分享时刻) mac上取色比较好用的小工具:啜色: 好用的截屏小工具:Snipaste (常用的一个功 ...

  2. React实现类似淘宝tab居中切换效果

    效果 DOM布局 const label = {lettersort: false,paramname: "label",paramid: 0,title: "车源列表筛 ...

  3. H5类似淘宝头条垂直滚动效果

    不同样式的垂直滚动: 无缝垂直滚动: 间歇性垂直滚动(一次滚动一条): 间歇性垂直滚动(一次滚动两条): 变量解释: speed:滚动的速度: delay:暂停的时长: scrollTop :滚动的高 ...

  4. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码

    这篇文章主要介绍了利用HTML5中的Canvas绘制一张笑脸的教程,使用Canvas进行绘图是HTML5中的基本功能,需要的朋友可以参考下 今天,你将学习一项称为Canvas(画布)的web技术,以及 ...

  5. html页面画虚线,HTML5中canvas怎么画虚线

    HTML5中canvas如何画虚线 虚线也可以看成是一段段的实线组成的,而实线是利用context.moveTo(x,y);context.lineTo(x2,y2);context.stroke() ...

  6. 关于中国大学mooc嵩天老师课程中定向爬取淘宝产品信息

    关于中国大学mooc嵩天老师课程中定向爬取淘宝产品信息 python小白最近看老师课程,发现淘宝网页升级了,用以前的代码爬不了,查找了很多资料后发现了一些缺陷,在此分享给大家 老师的代码大体上没问题, ...

  7. VUE类似淘宝选择商品多规格(库存判断)

    1.组件效果展示 也可访问链接查看网页效果... 后面又用uni-app写过一次,比这次稍微清晰一些 uni-app类似淘宝选择商品多规格(库存判断) 瞎封装组件系列: VUE简单提示框 VUE树形图 ...

  8. App 金刚区导航菜单,类似淘宝、QQ 音乐等 APP 导航,方格布局横向滑动翻页带滚动条

    TransformersLayout 项目地址:zaaach/TransformersLayout  简介: :fire: App 金刚区导航菜单,类似淘宝.QQ 音乐等 APP 导航,方格布局横向滑 ...

  9. vue 实现类似淘宝的商品详情页的商品展示

    vue 实现类似淘宝的商品详情页的商品展示 利用vue和swiper实现缩略图控制 / Swiper互相控制 具体需求描述: 图片大图自动轮播展示,下面的缩略图跟着变化,点击小图切换到对应的大图,大图 ...

最新文章

  1. MinkowskiEngine Miscellaneous Classes杂类
  2. win7下计划任务schtasks使用详解及错误:无法加载列资源的解决方法1
  3. 数学建模python教材推荐_数模竞赛专攻python应该准备什么?
  4. linux下编译安装MySQL5.6新版本
  5. c语言if语句怎么表达字符,C语言if语句的基本用法
  6. centos mysql proxy_在Centos 5.2下安装最新的MySQL Proxy
  7. 【手势识别】基于matlab GUI石头剪刀布【含Matlab源码 774期】
  8. Spring Cloud Eureka服务注册中心 多节点搭建(学习总结)
  9. 如何用php代码实现人脸识别,PHP实现人脸识别技术
  10. oppok3如何刷机_OPPO K3 PCGM00刷机教程,卡刷升级更新官方固件系统包
  11. 阿里云Maven仓库pom文件配置
  12. warning:4005 DXGI_STATUS_OCCLUDED,宏重定义
  13. CoolEdit导出片段文件
  14. 郑州网站建设讲解企业做网络营销的准则?
  15. xp支持python最高版本是多少_PYQT5-开发向下兼容到xp系统的windows软件
  16. [NOIP模拟题]钓鱼
  17. C# PDF添加骑缝章
  18. dedecms xss oday通杀所有版本 可getshell
  19. 解决前端css3使用transition刷新页面取消过渡显示
  20. linux make 编译时出现没有curl/curl.h文件

热门文章

  1. OrCad原理图封装绘制任意形状
  2. 清理本地maven仓库
  3. 客户细分那点事_理论篇
  4. PowerPoint2007文本框无法输入中文处理措施
  5. 蝉知 index.php,蝉知CMS建站系统如何设置伪静态
  6. SQL递归查询上级部门树
  7. python共轭复数_python print出共轭复数的方法详解
  8. 变革的腾讯:一个游戏之外的帝国
  9. halcon10求周长
  10. zip版nodejs安装与配置