您现在的位置是:网站首页> 编程资料编程资料
HTML5 canvas实现移动端上传头像拖拽裁剪效果html5拖拽排序多图片上传插件特效源码HTML5 拖拽批量上传文件的示例代码html5实现多图片预览上传及点击可拖拽控件html5使用Drag事件编辑器拖拽上传图片的示例代码HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)结合html5+nodejs+express实现拖拽上传的功能HTML5拖拽文件到浏览器并实现文件上传下载功能代码html5 拖拽上传图片实例演示HTML5拖拽文件上传的示例代码
2021-08-31
1110人已围观
简介 这篇文章主要为大家详细介绍了HTML5 canvas实现移动端上传头像拖拽裁剪效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本示例使用HTML5 canvas,简单的编写了上传头像的裁剪效果,移动端支持拖拽后裁剪, 虽然样式不好看,但是功能还算全:
下图为裁剪后的效果:

html部分:
XML/HTML Code复制内容到剪贴板
- >
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>上传头像title>
- <meta name="renderer" content="webkit">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- head>
- <body>
- <div id="imgCrop" style="width:200px;height:200px;border:1px solid #ccc;overflow:hidden;">
- <img src="img/test.jpg" alt="">
- div>
- <input type="file" accept="image/*" />
- <button id="save">保存button>
- <p>下面为剪切的图片:p>
- <div id="imgShow">div>
- body>
- html>
JavaScript部分:
JavaScript Code复制内容到剪贴板
- var $imgCrop = $("#imgCrop");
- var $img = $imgCrop.find("img");
- var img = $img[0];
- var width = parseInt($imgCrop.css("width"));
- var height = parseInt($imgCrop.css("height"));
- var startX,startY,scale = 1;
- var x = 0,y = 0;
- $("input").on("change",function(){
- var fr = new FileReader();
- var file = this.files[0]
- //console.log(file);
- if(!/image\/\w+/.test(file.type)){
- alert(file.name + "不是图片文件!");
- return;
- }
- console.log(file);
- $img.removeAttr("height width");
- fr.readAsDataURL(file);
- fr.onload = function(){
- img.src = fr.result;
- var widthInit = img.width;
- if(img.width>img.height){
- img.height = height;
- x = (width - img.width)/2;
- y = 0;
- }else{
- img.width = width;
- x = 0;
- y = (height - img.height)/2;
- }
- scale = widthInit/img.width;
- move($img, x, y);
- };
- });
- img.addEventListener("touchstart",function(e){
- startX = e.targetTouches[0].pageX;
- startY = e.targetTouches[0].pageY;
- return;
- });
- img.addEventListener("touchmove",function(e){
- e.preventDefault();
- e.stopPropagation();
- var changeX = e.changedTouches[0].pageX - startX + x;
- var changeY = e.changedTouches[0].pageY - startY + y;
- move($(this), changeX, changeY);
- return;
- });
- img.addEventListener("touchend",function(e){
- var changeX = e.changedTouches[0].pageX - startX + x;
- var changeY = e.changedTouches[0].pageY - startY + y;
- x = x + e.changedTouches[0].pageX - startX;
- y = y + e.changedTouches[0].pageY - startY;
- move($(this), changeX, changeY);
- return;
- });
- //确定目标图片的样式
- function move(ele, x, y){
- ele.css({
- '-webkit-transform' : 'translate3d(' + x + 'px, ' + y + 'px, 0)',
- 'transform' : 'translate3d(' + x + 'px, ' + y + 'px, 0)'
- });
- }
- $("#save").on("click",function(){
- var url = imageData($img);
- console.log(url);
- $("#imgShow").html("
+url+" />");;
- });
- //裁剪图片
- function imageData($img) {
- var canvas = document.createElement('canvas');
相关内容
- html5 canvas移动浏览器上实现图片压缩上传使用canvas压缩图片上传的方法示例浅析图片上传及canvas压缩的流程
- html5+css3进度条倒计时动画特效代码【推荐】html5带音乐背景的圣诞节倒计时页面代码基于HTML5 time元素的倒计时jquery插件HTML5 Canvas 3D倒计时爆炸特效源码基于Html5+Canvas实现2016年七夕情人节倒计时特效源码基于HTML5 canvas圆形倒计时器jQuery插件源码 多款效果基于HTML5实现2021雪花飘新年倒计时源码
- 多视角3D逼真HTML5水波动画 HTML5 canvas实现雪花飘落特效HTML5实现波浪滚动起伏动画特效源码HTML5+SVG实现盒子爆炸动画特效源码 HTML5+Canvas实现日期圆形时钟特效源码HTML5实现多视角3D逼真水波动画 HTML5的新特性(1) HTML5 Canvas实现烟花绽放特效HTML5实现Notification API桌面通知功能 多视角3D可旋转的HTML5 Logo动画html5+css3进度条倒计时动画特效代码【推荐】
- HTML5的新特性(1) HTML5表单新特征简介与举例 WORD版HTML5新特性之用SVG绘制微信logo HTML5有哪些新特征HTML中文件上传时使用的<input type="file">元素的样式自定义文件上传input file简便美化方案(css)upfile asp文件上传 又一奇迹般的突破用Jquery实现大文件上传 Jquery Large File Upload v10.31.0ASP.NET FileUpload 文件上传控件HTML5新特性之type=file文件上传功能
- HTML5 Canvas实现烟花绽放特效实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码canvas烟花特效锦集
- 多视角3D可旋转的HTML5 Logo动画HTML5 canvas实现雪花飘落特效HTML5实现波浪滚动起伏动画特效源码HTML5+SVG实现盒子爆炸动画特效源码 HTML5+Canvas实现日期圆形时钟特效源码HTML5实现多视角3D逼真水波动画 多视角3D逼真HTML5水波动画 HTML5的新特性(1) HTML5 Canvas实现烟花绽放特效HTML5实现Notification API桌面通知功能 html5+css3进度条倒计时动画特效代码【推荐】
- 逼真的HTML5树叶飘落动画html5结合Canvas实现的树叶飘落动画特效源码HTML5实现的树叶飘落动画特效源码基于HTML5+Webkit实现树叶飘落动画
- HTML5+CSS3绘制锯齿状的矩形纯css3绘制的小黄人头像动画特效源码纯css3绘制的QQ企鹅动画特效源码纯css3绘制的精美购物优惠券样式效果源码纯css3绘制的哆啦a梦机器猫头像效果源码CSS3绘制不规则图形的一些方法示例使用HTML和CSS3绘制基本卡通图案的示例分享CSS3绘制圆角矩形的简单示例使用CSS3来绘制一个月食图案用CSS3绘制三角形的简单方法纯CSS3绘制打火机动画火焰效果
- 使用HTML5中的contentEditable来将多行文本自动增高contenteditable元素的placeholder输入提示语设置方法设置contenteditable属性可编辑HTML标签的内容(可代替textarea)当div设置contentEditable=true时,重置其内容后无法光标定位
- 解析HTML5中的新功能本地存储localStorageHTML5 LocalStorage 本地存储详细概括(多图)html5 localStorage本地存储_动力节点Java学院整理localstorage和sessionstorage使用记录(推荐)详解HTML5 LocalStorage 本地存储 html5本地存储 localStorage操作使用详解HTML5 本地存储 LocalStorage详解HTML5中Localstorage的使用教程localStorage的过期时间设置的方法详解
点击排行
本栏推荐
