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 相关文章推荐
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
json格式数据的添加,删除及排序方法
Jan 21 Javascript
javascript每日必学之循环
Feb 19 Javascript
require.js+vue开发微信上传图片组件
Oct 27 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
微信小程序使用蓝牙小插件
Sep 23 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
js实现随机抽奖
Mar 19 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 Javascript
如何将Node.js中的回调转换为Promise
Nov 10 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
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Django之模板层的实现代码
2019/09/09 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
keras中的backend.clip用法
2020/05/22 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
详解python程序中的多任务
2020/09/16 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
大学生开西餐厅创业计划书
2014/02/01 职场文书
军训教官感言
2014/03/02 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis