jQuery实现拖动剪裁图片作为头像


Posted in Javascript onDecember 28, 2016

图片上传是许多网站的一个常用的功能,有时需要对上传的图片做初步的选择裁剪,比如上传头像。下面就是一个使用HTML5+jQuery实现的图片上传裁剪特效,可以对选择要上传的图片做缩小、放大、拖动和裁剪,由何问起调试改进,有需要的朋友可以参考一下。在文后附有源码下载。

效果图:

jQuery实现拖动剪裁图片作为头像

需要引用的css文件为style.css,需要引用的js文件为jquery文件,可以到http://hovertree.com/h/bjaf/ati6k7yk.htm选择合适的版本下载,还需引用cropbox.js文件,这些文件在源码里面都有。

代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery拖动剪裁图片作为头像代码 - 何问起</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div class="hovertreecontainer">
 <div class="imageBox">
 <div class="thumbBox"></div>
 <div class="spinner" style="display: none">Loading...</div>
 </div>
 <div class="action"> 
 <div class="new-contentarea tc"> 
 <a href="javascript:void(0)" class="upload-img">
 <label for="upload-file">上传图像</label>
 </a>
 <input type="file" class="" name="upload-file" id="upload-file" />
 </div>
 <input type="button" id="btnCrop" class="Btnsty_peyton" value="裁切">
 <input type="button" id="btnZoomIn" class="Btnsty_peyton" value="+" >
 <input type="button" id="btnZoomOut" class="Btnsty_peyton" value="-" >
 </div>
 <div class="cropped"></div>
</div>
<script src="http://down.hovertree.com/jquery/jquery-1.11.0.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/cropbox.js"></script>
<script type="text/javascript">
$(window).load(function() {
 var options =
 {
 thumbBox: '.thumbBox',
 spinner: '.spinner',
 imgSrc: 'img/rgevo2ea.jpg'
 }
 var cropper = $('.imageBox').cropbox(options);
 $('#upload-file').on('change', function(){
 var reader = new FileReader();
 reader.onload = function(e) {
 options.imgSrc = e.target.result;
 cropper = $('.imageBox').cropbox(options);
 }
 reader.readAsDataURL(this.files[0]);
 this.files = [];
 })
 $('#btnCrop').on('click', function(){
 var img = cropper.getDataURL();
 $('.cropped').html('');
 $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:64px;margin-top:4px;border-radius:64px;box-shadow:0px 0px 12px #7E7E7E;" ><p>64px*64px</p>');
 $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:128px;margin-top:4px;border-radius:128px;box-shadow:0px 0px 12px #7E7E7E;"><p>128px*128px</p>');
 $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:180px;margin-top:4px;border-radius:180px;box-shadow:0px 0px 12px #7E7E7E;"><p>180px*180px</p>');
 })
 $('#btnZoomIn').on('click', function(){
 cropper.zoomIn();
 })
 $('#btnZoomOut').on('click', function(){
 cropper.zoomOut();
 })
});
</script>
<div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<p>适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。</p>
<p>来源:<a href="http://hovertree.com/" target="_blank">何问起</a> <a href="http://hovertree.com/h/bjaf/7x8ev3fh.htm" target="_blank">说明</a></p>
</div>
</body>
</html>

源码下载:
http://wd.3water.com:81//201612/yuanma/hovertreejqimg8_3water.rar

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript对象之间的转换 jQuery对象和原声DOM
Mar 07 Javascript
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
关于JS中二维数组的声明方法
Sep 24 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
详解webpack之scss和postcss-loader的配置
Jan 09 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
如何能分清npm cnpm npx nvm
Jan 17 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 #Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
Dec 28 #Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 #Javascript
AngularJS实现网站换肤实例
Feb 19 #Javascript
详解js树形控件—zTree使用总结
Dec 28 #Javascript
js 轮播效果实例分享
Dec 28 #Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 #Javascript
You might like
提问的智慧
2006/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
很可爱的输入框
2008/08/03 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python PyTorch预训练示例
2018/02/11 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
python 从list中随机取值的方法
2020/11/16 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
公务员的自我鉴定
2013/10/26 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
搞笑老公保证书
2015/02/26 职场文书
务工证明怎么写
2015/06/18 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
mysql的数据压缩性能对比详情
2021/11/07 MySQL