javascript截图 jQuery插件imgAreaSelect使用详解


Posted in Javascript onMay 04, 2016

为了使用户能自定义个人头像,需要提供一个对上传图片的截图功能,当前很多网站特别是SNS类网站都提供这样的功能,非常实用。主要实现的形式有两种,一种是flash截图,另一种就是javascript截图,两种方法各有秋千,关于Flash截图可以参考一下UcHome程序中头像上传功能,但这不是我要讨论的话题,我这里主要是如何实现javascript截图,利用jQuery的imgAreaSelect插件,轻松实现自定义头像[avatar]javascript截图功能。

一,准备:
两个JS文件
1,jquery.js 下载:jquery.js
2,jquery.imgareaselect.js 下载:jquery.imgareaselect.js[imgareaselect-0.6.2.zip]

二,使用

function preview(img, selection){ 
var scaleX = 100 / selection.width; 
var scaleY = 100 / selection.height;

//动态小头像 获取当前选中框的宽度,高度,左边框,右边框

$('#biuuu + div > img').css({ 
width: Math.round(scaleX * 400) + 'px', 
height: Math.round(scaleY * 300) + 'px', 
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px' 
}); 
}


//加载小头像

$(document).ready(function () { 
$('<div><img src="biuuu.jpg" style="position: relative;" /></div>') 
.css({ 
float: 'left', 
position: 'relative', 
overflow: 'hidden', 
width: '100px', 
height: '100px' 
}) 
.insertAfter($('#biuuu')); 
});

//初始化加载

$(window).load(function () { 
$('#biuuu').imgAreaSelect({ aspectRatio: '1:1', onSelectChange: preview }); 
});

三,调用

<div class="container"> 
<p> 
<img id="biuuu" src="biuuu.jpg" title="biuuu" style="float: left; margin-right: 10px;" /> 
</p> 
</div>

使用上面的javascript截图进行扩展可以实现很多的动态功能,jQuery提供的imgAreaSelect插件调用非常简单,其它相关应用可参考:imgAreaSelect Examples

使用jQuery插件imgAreaSelect实现javascript截图还是非常简单的,基本上就是一个动态的图像显示,获取源图片的位置和选取框的大小[宽度和高度],轻松实现javascript截图功能。

Javascript 相关文章推荐
JavaScript获取网页支持表单字符集的方法
Apr 02 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
canvas红包照片实例分享
Feb 28 Javascript
详解Vue 事件驱动和依赖追踪
Apr 22 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
Angular4 Select选择改变事件的方法
Oct 09 Javascript
ES6基础之默认参数值
Feb 21 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
js编写当天简单日历效果【实现代码】
May 03 #Javascript
javascript实现下雪效果【实例代码】
May 03 #Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
May 03 #Javascript
javascript的列表切换【实现代码】
May 03 #Javascript
jQuery中队列queue()函数的实例教程
May 03 #Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 #Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 #Javascript
You might like
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
什么是数据抽象
2016/11/26 面试题
会计岗位描述
2014/02/22 职场文书
高一学生评语大全
2014/04/25 职场文书
毕业生党员个人总结
2015/02/14 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
交通安全温馨提示语
2015/07/14 职场文书
三好学生竞选稿
2015/11/21 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技