jquery - jCrop 在移动设备上无法正常工作

标签 jquery jcrop

我有一个网站,可以选择上传图像然后裁剪。我使用过 jCrop 库。它在桌面浏览器上工作正常,但在移动设备上,选择图像后不会在弹出窗口中显示要裁剪的图像。

// show_popup_crop : show the crop popup
function show_popup_crop(url) {
    // change the photo source
    $('#cropbox').attr('src', url);
    // destroy the Jcrop object to create a new one
    try {
        jcrop_api.destroy();
    } catch (e) {
        // object not defined
    }
    // Initialize the Jcrop using the TARGET_W and TARGET_H that initialized before
    $('#cropbox').Jcrop({
      aspectRatio: TARGET_W / TARGET_H,
      setSelect:   [ 100, 100, TARGET_W, TARGET_H ],
      allowResize: false,
      trueSize: [200,300],      
      onSelect: updateCoords
    },function(){
        jcrop_api = this;
    });

    // store the current uploaded photo url in a hidden input to use it later
    $('#photo_url').val(url);
    // hide and reset the upload popup
    $('#popup_upload').hide();
    $('#loading_progress').html('');
    $('#photo').val('');

    // show the crop popup
    $('#popup_crop').show();
}


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

请查看下面的屏幕截图第1步和第2步(这是桌面屏幕截图)

第 1 步: Step1 When uploading

第 2 步: Step2

但在移动设备上,步骤2显示空图像。为什么会发生这种情况,我需要做出哪些改变?

最佳答案

我认为这在移动设备上不可能,您可以选择在移动设备上打开媒体弹出窗口

以下是图像捕获的 HTML:

<input type="file" accept="image/*" capture>

捕获视频非常相似;您只需相应地设置接受属性即可。

<input type="file" accept="video/*" capture>

捕获音频的情况是一样的:

<input type="file" accept="audio/*" capture>

例如,如果您想使用设备相机拍照并使用 HTML 表单上传图像,这就是您需要的全部代码。

<form action="upload.htm" method="post" enctype="multipart/form-data">
    <input type="file" accept="image/*" capture>
    <input type="submit" value="Upload">
</form>

了解更多read thisthis

更新

您应该使用客户端尺寸裁剪,在上传之前使用 Canvas 进行裁剪,尝试 DarkroomJS plug in

这是一个使用 jCrop 的实验和用于客户端裁剪的 HTML 5 Canvas

关于jquery - jCrop 在移动设备上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28809026/

相关文章:

javascript - 如何在切换 HTML 选择框值时隐藏/显示 HTML 输入框?

javascript - 使用 Jcrop 和 Pixastic 进行裁剪

javascript - 如何设置 JQuery JCrop 预览以在文件上传后进行裁剪?

javascript - 客户端图像处理(裁剪)

jquery - 滚动到底部太快时路径点不起作用

javascript - 我设置ajax异步: false but not working

jquery - 将 Turbolinks 与 Rails select 和 jQuery 一起使用

javascript - 这只会删除我表中的第一行。我希望它使用 jQuery 和 html 删除我点击的任何一行

javascript - 获取原始图像进行裁剪,忽略宽度属性?

javascript - 是否可以在选择框更改时设置/更新 jCrop 纵横比?