如何更改,以便将y设置为零?
FIDDLE
http://jsfiddle.net/DGbT3/2672/
HTML
<div id="parent" style="width: 300px; height: 300px; border: 1px solid black; margin-top: 50px;">
<div id="dragThis">
<ul>
<li id="posX"></li>
<li id="posY"></li>
</ul>
</div>
</div>
JS
$('#dragThis').draggable({
drag: function() {
var position = $(this).position();
var xPos = position.left;
var yPos = position.top;
$('#posX').text('x: ' + xPos);
$('#posY').text('y: ' + yPos);
}
});
CSS
#dragThis {
width: 6em;
height: 6em;
padding: 0.5em;
border: 3px solid #ccc;
border-radius: 0 1em 1em 1em;
position: relative;
top: 0px;
}
我一直在将“位置”改为“偏移”,我试图改变CSS的位置。但我无法弄明白,如何得到y,从其父母那里算上数。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以将offset()用于父级,并将其从子级中删除,如下所示:
$('#dragThis').draggable({
drag: function() {
var position = $(this).position();
var xPos = position.left;
var yPos = position.top;
var xPosParent = $('#parent').offset().left;
var yPosParent = $('#parent').offset().top;
$('#posX').text('x: ' + (xPos - xPosParent));
$('#posY').text('y: ' + (yPos - yPosParent));
}
});
#dragThis {
width: 6em;
height: 6em;
padding: 0.5em;
border: 3px solid #ccc;
border-radius: 0 1em 1em 1em;
position: relative;
top: 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script>
<div id="parent" style="width: 300px; height: 300px; border: 1px solid black; margin-top: 50px;">
<div id="dragThis">
<ul>
<li id="posX"></li>
<li id="posY"></li>
</ul>
</div>
</div>