6

我正在尝试使用 box-sizing:border-box; 调整 DIV 的大小。尽管我只允许调整宽度,但每次调整大小事件停止(高度变化)时,DIV 都会缩小。

我的 CSS

.test{
    width: 200px;
    height: 100px;
    border: 1px solid red;
    box-sizing: border-box;

}

Javascript

$(document).ready(function() {
    $('.test').resizable({handles: 'e', stop: function(event, ui){
        $('.wdt').text(ui.size.height);
    }});
});

HTML

<div class="test">
    Test
</div>
<br/>
<br/>
<span>Height =</span>
<span class='wdt'></span>

调整它的大小,你会看到。

有谁能够帮我?JSFiddle:http: //jsfiddle.net/WuQtw/4/

我试过 jquery 1.8.x .. 1.9.x ......没有任何变化。我不能使用 box-sizing: content-box。

4

4 回答 4

10

我不知道为什么会这样,但似乎你的border财产是问题所在。

如果您希望它具有相同的功能,则可以outline改用。

http://jsfiddle.net/WuQtw/10/

.test{
    width:200px;
    height: 100px;
    outline:1px solid red;
    box-sizing: border-box;
}
于 2013-08-20T20:30:15.457 回答
3

我刚刚发现了同样的问题并构建了这个片段 - 它可能对某人有所帮助。

// initiate correction
var iHeightCorrection = 0;

var oElement = $('#elementToResize');

// init resize
oElement.resizable({
        handles: 's',
        minHeight: 30,
        // on start of resize
        start: function(event, ui) {
            // calculate correction
            iHeightCorrection = $(oElement).outerHeight() - $(oElement).height();
        },
        // on resize
        resize: function(event, ui) {
            // manual correction
            ui.size.height += iHeightCorrection;
        },
        // on stop of resize
        stop: function(event, ui) {
            // reset correction
            iHeightCorrection = 0;
        }
    });

小提琴

于 2016-11-16T13:59:19.293 回答
0

这是你要找的宝贝吗?

只需等待一年将 jquery 更新到 2.0.2

然后它工作

http://jsfiddle.net/WuQtw/37/

//it worked on jsfiddle using  jQuery UI 1.10.3
$(document).ready(function() {
  
    $('.test').resizable({ 
      
      stop: function(event, ui){
        
        $('.wdt').text(ui.size.height);
        
    }});
});
.test{
    width: 200px;
    height: 100px;
    border: 1px solid red;
    box-sizing: border-box;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div class="test">
      Test
</div>
<br/>
<br/>
<span>Height =</span>
<span class='wdt'></span>

于 2014-11-24T12:30:22.537 回答
0

我通过包装元素解决了类似问题。使用边框为 0 的 div 来包装原始元素。

.wrapperDiv {
    position:absolute; 
    height:100px; 
    width:100px; 
    border: 0px;
}

.innerDiv{
    height:100%; 
    width:100%;
    background-color:rgba(0,0,0,0);
    border: 3px solid gold;
    border-radius: 5px;
    box-sizing: border-box
}
...
var tSelectionDiv = $('<div class="wrapperDiv"><div class="innerDiv"></div></div>');
...
tSelectionDiv.resizable({
    handles: 'e, w', 
    containment:someContainerElement
});
于 2017-01-03T20:19:29.810 回答