错误的位置imgAreaSelect插件在bootstrap模式窗口中

时间:2013-12-01 16:38:35

标签: javascript jquery html css twitter-bootstrap

我在Bootstrap中遇到了imgAreaSelect插件的问题。 我在初始化imgAreaSelect时设置父级以防止滚动移动区域:

 thumb.imgAreaSelect({
 handles: true,
 aspectRatio: '1:1',
 fadeSpeed: 300,
 parent: "#thumbBox"
 })

这是我的HTML:

<div class="modal-body">
            <div class="row">
                <div class="col-xs-12" style="font-weight:bold;">
                    Upload your picture and crop it.
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                    <div id="thumbBox">
                        <img id="thumb" class="img-responsive" />
                    </div>
                </div>
            </div>

当我尝试选择一个区域时,ImgAreaSelect选择图片外的区域但是点(我的意思是x1,x2等)正是我想要的(功能正常但在界面中存在问题)。 在较小的设备中,ImgAreaSelect接口是尼特,但在某些情况下它会搞砸! 我曾经搜索过很多,但我找不到任何有用的东西。 我该如何解决这个问题?

更新: 我解决了这个我的自我...... 请参考此链接: github

我们必须从代码中删除这些行:

/* Also check if any of the ancestor elements has fixed position */ 
        if ($p.css('position') == 'fixed')
           position = 'fixed';

我们必须相对于我们自己初始化的父框(父母:“#thumbBox”)。

6 个答案:

答案 0 :(得分:8)

有同样的问题。 解决方案是:

parent:$('.modal-content')

您需要将模态内容设置为父级而不是图像容器。

答案 1 :(得分:3)

我的意思是想要在其上使用图像区域选择的Image的父div,必须是位置相对的。

 <div id="thumbBox" style="position:relative;">
     <img id="thumb" class="img-responsive" />
   </div>

我们必须从jquery.imageareaselect.js中删除这些行:

/* Also check if any of the ancestor elements has fixed position */ 
        if ($p.css('position') == 'fixed')
           position = 'fixed';

答案 2 :(得分:3)

有几种情况,bootstrap.css会影响你的imgareaselect。对我来说,设置框大小:图像上的内容框修复了我的问题。

<img id="cartPhoto" class="cartImageThumb" style="box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;">

我更喜欢覆盖css内联vs修改bootstrap.css文件,因为它们会影响整个系统。

如果遇到影响代码的bootstrap.css问题,请注释掉bootstrap.css的各个部分,直到找到影响你的样式为止。

答案 3 :(得分:2)

<强> HTML:

<div><img id="cropimage" /></div>

<强> JQUERY:

$(function () {
 $('#cropimage').imgAreaSelect({ handles: true, parent: "cropimage", maxWidth: 200, maxHeight: 200, aspectRatio: '4:3' });
});

<强> SOLUTION:

使用&#34; parent&#34;用于将imgAreaSelect修复为父div /窗口的选项。

答案 4 :(得分:1)

Bootstrap 2

组合使用时遇到问题的人

转到bootstrap.css并注释掉以下行

img {
    width: auto\9;
    height: auto;
    /* max-width: 100%; DISABLE FOR IMGAREASELECT */
    vertical-align: middle;
    border: 0;
    -ms-interpolation-mode: bicubic;
}

答案 5 :(得分:1)

我有同样的问题。我在这个线程上寻找解决方案,尝试所有选项。 但是,当我阅读文档时,我发现了这两个属性:

http://odyniec.net/projects/imgareaselect/usage.html

var image = $("#image");

image.imgAreaSelect({
    imageHeight: image[0].naturalHeight,
    imageWidth: image[0].naturalWidth
});

因此,无需更改任何js或css代码。 唯一要做的就是使用图像的实际大小设置这两个属性。

这样的事情:

foo