|
|
|
|
<div id="d" style="position:absolute; width:300px; height:50px; border:black 1px solid;">
<div style="height:16px; background:gray;" onMouseDown="m_replace(1);" onMouseUp="m_replace(0);"> </div>
<script type="text/javascript"><!--
var activate=0;
function m_replace(activate)
{
var x = event.clientX;
var y = event.clientY;
if(activate==1)
{
var obj = document.getElementById("d");
obj.style.left = x-10;
obj.style.top = y-10;
setTimeout("m_replace(1);", 100);
}
}
//--></script>
|
Почему-то не срабатывает event.client, когда setTimeout запускает выполнение функции поновой. В чем тут проблема и как ее решить, помогите пожалуйста. | |
|
|
|
|
|
|
|
для: Dr Lines
(09.04.2008 в 05:18)
| | Это что перетаскивание элемента? | |
|
|
|
|
|
|
|
для: ONYX
(09.04.2008 в 07:04)
| | Да | |
|
|
|
|
|
|
|
для: Dr Lines
(09.04.2008 в 07:31)
| | <body onmousemove="Drag()">
<div id="d" onMouseDown="startDrag()" onMouseUp="endDrag()" style="position:absolute; width:300px; height:50px; border:black 1px solid;">
<div style="height:16px; background:gray;"> </div>
</div>
</body>
<script type="text/javascript"><!--
var drag = false;
var x = 0;
var y = 0;
function startDrag(){
drag = true;
x = event.clientX;
y = event.clientY;
}
function endDrag(){
drag = false;
alert()
}
function Drag(){
if(drag == true){
var d = document.getElementById('d').style;
d.top = event.clientY - y;
d.left = event.clientX - x;
}
}
</script> | |
|
|
|
|
|
|
|
для: ONYX
(09.04.2008 в 08:04)
| | Омг, интересное решение, но с setTimeout бы попроще получилось, Хотелось бы сделать тоже самое с помощью неё. | |
|
|
|
|
|
|
|
для: ONYX
(09.04.2008 в 08:04)
| | Вот так вот нормально работает
<div id="editframe" style="position:absolute; left:10px; top:10px; border:rgb(100,100,100) 1px solid; background:rgb(200,200,200); padding:0px; width:350px; height:60px;">
<div style="background:rgb(185,185,185); height:16px; cursor:move;" onMouseDown="on_m_down(true);" onMouseUp="on_m_down(false);" onMouseMove="drag_on();">
</div>
<script type="text/javascript"><!--
var activate=false,x_w=0,y_w=0,mode=0;
function on_m_down(mode)
{
var eframe = document.getElementById("editframe");
x_w = event.clientX-eframe.offsetLeft;
y_w = event.clientY-eframe.offsetTop;
activate = mode;
}
function drag_on()
{
if(activate)
{
var eframe = document.getElementById("editframe");
eframe.style.left = event.clientX - x_w;
eframe.style.top = event.clientY - y_w;
}
}
//--></script>
|
| |
|
|
|
|
|
|
|
для: Dr Lines
(09.04.2008 в 08:46)
| | Ребят, подскажите, почему код, описанный выше, работает везде (Opera, Safari, IE) и не работает в FireFox 2 и 3. Что не правильно я написал.
Помогите пожалуйста. | |
|
|
|