• 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值的方式。

     

    三、移动公式

     

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

     

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

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

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

    即:

    margin-top = x;

    margin-left = Y;

     

     

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

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

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

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

    margin-top = scaleX*x;

    margin-left = scaleX*Y;

      

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

  • 相关阅读:
    day10servlet编程
    day9http协议
    day8 服务器
    day4 DOM,BOM
    k均值
    asp.net mvc 下拉列表
    asp.net mvc  Ajax.BeginForm 异步上传图片的问题
    sqlserver 存储过程 游标实例
    中篇: php 微信支付 基于Thinkphp3.2开发
    下篇: php 微商城 基于Thinkphp3.2框架开发
  • 原文地址:https://www.cnblogs.com/lufy/p/2517988.html
Copyright © 2020-2023  润新知