이 기본 개념은 Linus Gudn Jokela 님이 올리신 후 답변을 삭제하고 요청에 따라 복원하지 않았습니다.
내용에 회전 된 내부 래퍼를 사용한 다음 회전하지 않은 외부 요소에 크기 조정 핸들을 첨부 할 수 있습니다.
일부 JS 코드는 높이와 너비가 관련된 한 콘텐트와 동기화 된 상태로 유지해야합니다. http://jsfiddle.net/fXthv/
JS :
$('#widget').resizable({
handles: 'n, e, s, w',
resize: function(){
correct(this);
}
});
function correct(el) {
var widget = $('#widget_content'),
deg = widget.data("rotate");
if (typeof deg == "number") {
widget.css({
width: (function() {
if (deg % 180 == 0) return $(el).outerWidth()
else return $(el).outerHeight()
})(),
height: (function() {
if (deg % 180 == 0) return $(el).outerHeight()
else return $(el).outerWidth()
})(),
marginLeft: (function() {
if (deg % 360 == 90) return $(el).outerWidth();
else if (deg % 360 == 180) return $(el).outerWidth();
else return 0;
//else if (deg % 360 == 270) return $(el).outerWidth();
})(),
marginTop: (function() {
if (deg % 360 == 270) return $(el).outerHeight();
else if (deg % 360 == 180) return $(el).outerHeight();
else return 0;
//else if (deg % 360 == 270) return $(el).outerWidth();
})()
});
}
}
CSS :
#widget {
width: 100px;
height: 100px;
background-color: #cecece;
}
#widget_content {
margin-left:100px;
width: 100px;
height: 100px;
background-image: url(http://aux.iconpedia.net/uploads/2106003206.png);
background-size: 100% 100%;
/* removing the styles below will make the image appear as expected */
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-ms-transform-origin: 0 0;
-o-transform-origin: 0 0;
transform:rotate(90deg);
-ms-transform:rotate(90deg);
/* IE 9 */
-moz-transform:rotate(90deg);
/* Firefox */
-webkit-transform:rotate(90deg);
/* Safari and Chrome */
-o-transform:rotate(90deg);
/* Opera */
}
HTML :
<div id="widget">
<div id="widget_content"></div>
</div>
T 여기에 완전한 데모입니다 모자는 아주 멋진 솔루션입니다. 작은 버그는 div의 크기를 조정할 때마다 상위 요소의 가장자리에 맞지 않는 한 조금씩 올라가고 왼쪽으로 이동한다는 점입니다. div의 위/왼쪽을 축소 한 다음 어느쪽으로부터 크기를 조정하면이 값을 볼 수 있습니다. – ajp15243
@ ajp15243이 브라우저에서 어떤 브라우저를 사용하고 있습니까? FF로 복제 할 수 없습니다 (문제를 재현하는 방법을 오해하고있을 수도 있음) –
최신 안정된 Chrome (v25.0.1364.97)이어야합니다. 나는 또한 Linux를 사용하고 있으며 Gnome3 때문에 의심스러운 작은 레이아웃 문제가 종종 발생하지만 jsFiddle에서는이를 볼 수 없습니다. 그것을 재현하는 것을 더 잘 설명하려면, 위쪽 핸들을 잡고 아래로 드래그 한 다음 왼쪽 핸들을 잡고 오른쪽으로 드래그하십시오. 그런 다음 너무 많이 드래그하지 않고 상자의 위치를 보면서 오른쪽 또는 아래쪽 핸들을 잡고 잡아 당깁니다 (가장 왼쪽 상단 모서리를 볼 수 있는지 확인하는 것이 가장 쉽습니다). – ajp15243