Jcrop调整预览大小

Bar*_*rbs 3 jquery preview jcrop

我正在使用Jcrop和预览窗格,如http://net.tutsplus.com/articles/news/working-with-the-jcrop-plugin/中的教程所示.这显示了如何使用预览窗格创建一个简单的Jcrop界面,以在裁剪时显示结果.遗憾的是,在这种情况下,预览窗格具有固定的大小,只需在裁剪时缩放图像,生成相同固定大小的裁剪图像.

我想要做的是让预览窗格与裁剪工具一起调整大小以在用户裁剪时显示结果图像,允许用户决定结果图像的尺寸.然后,我可以在上传图像时应用最大或最小尺寸.

预览窗格CSS和代码如下.请注意,targ_h和t​​arg_w变量定义为我选择的任何内容.从原始图像中读取orig_w和orig_h.

    #preview
    {
        width: <?php echo $targ_w?>px;
        height: <?php echo $targ_h?>px;
        overflow:hidden;
    }



function updateCoords(c)
        {
            showPreview(c);
            $("#x").val(c.x);
            $("#y").val(c.y);
            $("#w").val(c.w);
            $("#h").val(c.h);
        }

        function showPreview(coords)
        {
            var rx = <?php echo $targ_w;?> / coords.w;
            var ry = <?php echo $targ_h;?> / coords.h;

            $("#preview img").css({
                width: Math.round(rx*<?php echo $orig_w;?>)+'px',
                height: Math.round(ry*<?php echo $orig_h;?>)+'px',
                marginLeft:'-'+  Math.round(rx*coords.x)+'px',
                marginTop: '-'+ Math.round(ry*coords.y)+'px'
            });
        }
Run Code Online (Sandbox Code Playgroud)

之前是否有人这样做过,并且预览窗格的宽度和高度随裁剪工具的宽度和高度而变化?

Rol*_*ruz 9

这就是我在我的做法:

function showPreview(photoDiv, coords, maxX, maxY)
{
    var rx = maxX / coords.w;
    var ry = maxY / coords.h;

    rx = (rx == 0) ? 1 : rx;
    ry = (ry == 0) ? 1 : ry;

    photoX = $("#" + photoDiv + " #photo").width();
    photoY = $("#" + photoDiv + " #photo").height();

    $("#" + photoDiv + " #preview").css({
        width: Math.round(rx * photoX) + 'px',
        height: Math.round(ry * photoY) + 'px',
        marginLeft: '-' + Math.round(rx * coords.x) + 'px',
        marginTop: '-' + Math.round(ry * coords.y) + 'px'
    });
}
Run Code Online (Sandbox Code Playgroud)

我想maxX会参考你的$targ_w.这是以这种方式设置的,因为我在一个页面中有多个jCrop实例.根据您的设置进行编辑.