У меня есть изображение, отображаемое в div. Я хотел бы сделать это, нажав на кнопку в том же div. Мне нужна эта кнопка, потому что щелчок по изображению позволяет сделать это перемещение внутри div, и я хочу, чтобы что-то еще делало div.Перемещение div при нажатии на кнопку, javascript
Здесь в HTML части:
<div id="jsmolwindow1" style="display:none;">
<script type="text/javascript">
jmolApplet1 = Jmol.getApplet("jmolApplet1", Info);
</script>
<img class="smallButtonidle" id="move" src="ketcher/png/action/arrow.png" style="opacity: 0.8; width=20px height=10px bottom: 20px; right: 20px; float: right;"/>
</div>
А вот в яваскрипта части:
document.getElementById('move').addEventListener('mousedown', function(e) {
isDown = true;
offset = [div.offsetLeft - e.clientX,
div.offsetTop - e.clientY];
}, true);
document.getElementById('move').addEventListener('mouseup', function() {
isDown = false;
}, true);
document.getElementById('move').addEventListener('mousemove', function(event) {
event.preventDefault();
if (isDown) {
mousePosition = {
x : event.clientX,
y : event.clientY
};
div.style.left = (mousePosition.x + offset[0]) + 'px';
div.style.top = (mousePosition.y + offset[1]) + 'px';
}
}, true);
Это своего рода работает, но он ведет себя странно. Когда я нажимаю кнопку «Переместить», я могу переместить div, если моя мышь остается на изображении на кнопке, но это довольно сложно, и когда моя мышь выходит из этой кнопки, она ведет себя странно. Я бы хотел, чтобы изображение двигалось до тех пор, пока мышь нажата на кнопку «move». Когда пользователь освободит его, я бы хотел, чтобы он переставал быть активным.
Надеюсь, этот вопрос не слишком грязный, спасибо за вашу помощь!
Не могли бы вы ответить на этот вопрос jsfiddle.net? –
Попробуйте сделать «mousemove» на вашем «документе», это позволит избежать любых странных сбоев. – somethinghere
Это отлично работает! Спасибо – Laetis