利用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 相关文章推荐
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
jquery对dom的操作常用方法整理
Jun 25 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
jquery处理json对象
Nov 03 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
基于javascript实现全屏漂浮广告
Mar 31 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
详解element-ui中表单验证的三种方式
Sep 18 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
Dec 25 Javascript
vant picker+popup 自定义三级联动案例
Nov 04 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
Python日期时间Time模块实例详解
2019/04/15 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
Python如何实现FTP功能
2020/05/28 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
大一自我鉴定范文
2013/12/27 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
利用Python实现模拟登录知乎
2022/05/25 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang