サイズ変更可能な画像の上限値を設定して、含まれている div 内に保持しようとしています。私は mootools を使用して、画像を移動可能かつサイズ変更可能にしています (実装Drag.Move
しmakeResizable
、そうするために)。
私の一時的な解決策はoverflow:hidden;
、サイズ変更された画像がコンテナーを超えてサイズ変更されたときにページの残りの部分を追い越さないようにすることですが、コンテナーの外で画像のサイズを変更できないようにする方法が必要です。
limit
が on に設定されている'domready'
ため、画像のサイズが変更されると値が変化する変数 (つまり: onDrag
) に設定しようとすると、 limit パラメータはその場で更新されないことがわかっています。同じパラメーターを持っていないように見えるので、Drag.Move
container
パラメーターと同様の効果を達成する方法について誰かが洞察を持っているかどうか疑問に思っています。makeResizable
HTML:
<div id="pImageArea">
<div id="pLogo" class="displayNone">
<div id="moveHandleName">
<img src="uploadedlogo.jpg" id="imgName" />
</div>
<div id="resizeHandleName"></div>
</div>
</div>
CSS:
#imageArea {
float: left;
width: 630px;
height: 400px;
border: 1px solid #333;
position: relative;
overflow: hidden;
}
#imgContainer {
width: 50px;
height: 50px;
border: 1px dashed #333;
position: absolute;
}
#imgName {
width: 100%;
}
#moveHandleName {
width: 100%;
height: 100%;
}
#resizeHandleName {
width: 8px;
height: 8px;
border: 1px solid #000;
position: absolute;
left: 100%;
top: 100%;
margin: -5px 0 0 -5px;
background-color: #fff;
z-index: 100;
}
JS:
window.addEvent('domready', function(){
var xLim = 50;
var yLim = 50;
// Make image moveable
new Drag.Move($('imgContainer'), {
container: $('imageArea'),
handle: $('imgHandleName')
});
// Make image resizable
$('imgContainer').makeResizable({
handle:$('handleName'),
limit: {x: [50, xLim], y: [50, yLim]},
onDrag: function(el) {
// Set imgContainer height
el.setStyle('height', $('imgName').getSize().y + 'px');
// Set upper limits
xLim = $('imageArea').getSize().x - el.getSize().x;
yLim = $('imageArea').getSize().y - el.getSize().y;
},
});
});
前もって感謝します、
マット