私は次のhtml構造を持っています:
HTML
<div id="outer">
<div id="inner">
<div id="bounds">
<div id="myimage">
</div>
</div>
</div>
</div>
CSS
#outer
{
border: solid 1px red;
padding: 50px 30px 50px 30px;
float: left;
}
#inner
{
width: 300px;
height: 300px;
border: solid 1px black;
overflow:hidden;
position:relative;
}
#myimage
{
background-image:url('http://upload.wikimedia.org/wikipedia/commons/9/9a/Sample_Floorplan.jpg');
background-position : 0,0;
background-repeat:no-repeat;
width: 648px; /*TODO : size will be dynamic*/
height: 438px; /*TODO : size will be dynamic*/
position:relative;
}
JS
$("#myimage").draggable(); //{ containment: "#bounds" }
//$("#bounds").width(); //? value
//$("#bounds").height(); //? value
//$("#bounds").css("left",""); //? value
//$("#bounds").height("top","");? value
でドラッグ可能な子 div を持つ「内部」 div background-image
。
内側の div にはoverflow:hidden
. 必要なのは、画像全体をスクロールできるように画像のドラッグを制限することですが、画像を「内側」の div から完全にドラッグしないようにする必要があります (画像の一部は常に表示されたままにする必要があります)。
bounds
それがdivを追加した理由です。bounds
画像の動きを制限できる divの寸法と位置を定義するにはどうすればよい
ですか。
私が書くことができるように
$("#myimage").draggable({ containment: "#bounds" });