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数组定义方法
Sep 10 Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
js对象浅拷贝和深拷贝详解
Sep 05 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
数组Array的一些方法(总结)
Feb 17 Javascript
canvas 实现中国象棋
Feb 17 Javascript
webpack组织模块打包Library的原理及实现
Mar 10 Javascript
Vue 实现列表动态添加和删除的两种方法小结
Sep 07 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php预定义常量
2006/12/25 PHP
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
tornado框架blog模块分析与使用
2013/11/21 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python编写一个优美的下载器
2018/04/15 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
企业治理工作自我评价
2013/09/26 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
音乐教师求职信
2014/06/28 职场文书
防暑降温通知书
2015/04/27 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript
MySQL 计算连续登录天数
2022/05/11 MySQL