#javascript #html #mouse
#javascript #HTML #мышь
Вопрос:
Это, вероятно, очень легко сделать, но я нахожу это разочаровывающим, как я могу переместить весь div, удерживая курсор мыши на кнопке?
var m = document.getElementById('aboutpanel');
m.addEventListener('mousedown', mouseDown, false);
window.addEventListener('mouseup', mouseUp, false);
function mouseUp() {
window.removeEventListener('mousemove', move, true);
}
function mouseDown(e) {
window.addEventListener('mousemove', move, true);
}
function move(e) {
m.style.top = e.clientY 'px';
m.style.left = e.clientX 'px';
};
#aboutpanel{
width: 200px;
height: 150px;
position: fixed;
}
<div id="aboutpanel">
<input id="exit_about" type="button" onclick="ignore_about()" value="X">
<input id="mini_about" type="button" onclick="shrink_about()" value="_">
<input id="title_about" type="button" onclick="" value="About">
<p>Desklogger OS</p>
<p>Version: v3.0a</p>
<p>Credits: Lèla Null</p>
</div>
Я хочу иметь возможность перемещать div только при нажатии кнопки About.
Комментарии:
1. —> jsfiddle.net/p1h7ejvz Это работает. В чем проблема?
2. Это очень близко к тому, что мне нужно, да, но оно также перемещается независимо от того, где я нажимаю на div. В конце я хочу иметь пару форм, которые можно перемещать, но только с помощью кнопки для перемещения.
Ответ №1:
function about() {
document.getElementById('aboutpanel').style.display = 'block';
document.getElementById('settings').style.display = 'none';
document.getElementById('about_appstatus').src = 'data/green-dot.png';
start2();
}
function ignore_about() {
document.getElementById('aboutpanel').style.display = 'none';
document.getElementById('about_appstatus').src = 'data/red-dot.png';
}
var m = document.getElementById('title_about'); // Changed
m.addEventListener('mousedown', mouseDown, false);
window.addEventListener('mouseup', mouseUp, false);
function mouseUp() {
window.removeEventListener('mousemove', move, true);
}
function mouseDown(e) {
window.addEventListener('mousemove', move, true);
}
function move(e) {
document.getElementById('aboutpanel').style.top = e.clientY 'px'; // Changed
document.getElementById('aboutpanel').style.left = e.clientX 'px'; // Changed
}
#aboutpanel
{
width: 200px;
height: 150px;
position: fixed;
}
<div id="aboutpanel">
<input id="exit_about" type="button" onclick="ignore_about()" value="X">
<input id="mini_about" type="button" onclick="shrink_about()" value="_">
<input id="title_about" type="button" onclick="" value="About">
<p>Desklogger OS</p>
<p>Version: v3.0a</p>
<p>Credits: Lèla Null</p>
</div>
Вот рабочее решение. Я прокомментировал строки, которые я изменил.
Комментарии:
1. Хм, это работает здесь, но не в основном проекте. Странно, но я боюсь, что это может быть моей проблемой сейчас. Спасибо за помощь.
2. что-то в этой строке
m.addEventListener('mousedown', mouseDown, false);
несовместимо. Есть быстрые идеи?