利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)


Posted in Javascript onDecember 02, 2016

 利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)

<body>
 <div class="container demo">
  <div class="big">
   <p class="instructions">大图预览</p>
   <div class="bigframe">
    <img width="300" height="300" src="images/resized_pic.jpg" alt="" />
   </div>
  </div>
  <div class="small">
   <p>小图缩放</p>
    <div class="smallframe" >
    <div class="pre" id="preview">
     <img src="images/resized_pic.jpg" alt="" />
    </div>
   </div>
  </div>
 </div>
</body>

先总结一下:

最近练手,写了一些小东西,都是网上已有的成熟的JQ或JS,但在练手的过程中,我发现,很多应用,其实最后,都是归根到元素的宽高变化,位置变化,通过事件或算法,最后形成了效果或应用。

如果大家看到一些很炫的东西效果,其实都可以往宽高,位置,显示隐藏,这些方面去分析。一步一步深入。是一点个人体会。好吧,进入正题。

如何让左边选择区域的图像信息和右边的同步显示出来?

一、右边显示和左边同步:

左边选择一块区域,那么右边要和这个区域的图像信息相同?其实质,也就是要移动右边的图像,让移动后的右边图片,在显示区域当中,显示的图像信息,正好和左边的选择区域一样。

二、如何移动右边图像

要移动图片,也就是移动一个元素,可以有改变TOP LEFT值,这是在有绝对或相对定位的情况下。而这里,没有。

所以用到改变margin-top margin-left值的方式。

三、移动公式

利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)

上图中:黑色:图片,白色:选择区,红色:起始点,绿色:起始点的横纵坐标值; 黄色为:右边图片的margin-top,margin-left

假设:左边图片和右边图片,一样大小,宽和高都一样。我要在右边显示出左边白色区域的图像信息,就需要把右边图片的

margin-top值设为:红点的Y坐标值

margin-left值设为:红点的X坐标值

即:

margin-top = x;
margin-left = Y;

但是现在假设不成立,因为右边图片的大小,是随时变化的(第一篇分析中有);

而变化是根据一个比例值来的。

所以这里不管是图片放大,还是缩小,原来

都应该乘以这个放大或缩小的比例值:

margin-top = scaleX*x;
margin-left = scaleX*Y;

好了,现在可以得到移动的位置值了。也就是说左边和右边可以同步显示图像信息了。

以上就是本文的全部内容,希望对大家有所帮助,有兴趣的朋友可以看下《利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)》,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
img的onload的另类用法
Jan 10 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
微信小程序 石头剪刀布实例代码
Jan 04 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
Angularjs Promise实例详解
Mar 15 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
小程序实现图片移动缩放效果
May 26 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 #Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 #Javascript
搭建Bootstrap离线文档的方法
Dec 02 #Javascript
巧用Javascript的逻辑运算符
Dec 02 #Javascript
Vue.js第四天学习笔记(组件)
Dec 02 #Javascript
Javascript之面向对象--接口
Dec 02 #Javascript
Javascript之面向对象--封装
Dec 02 #Javascript
You might like
fgetcvs在linux的问题
2012/01/15 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
java直接调用python脚本的例子
2014/02/16 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python yield 使用方法浅析
2017/05/20 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python中 * 的用法详解
2019/07/10 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
渗透攻击的测试步骤
2014/06/07 面试题
商业融资计划书
2014/04/29 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
大学生暑期实践报告
2015/07/13 职场文书
优质护理服务心得体会
2016/01/22 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers