Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Использование события event.clientX , Y
 
 автор: Dr Lines   (09.04.2008 в 05:18)   письмо автору
 
 

<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);"> &nbsp; </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 запускает выполнение функции поновой. В чем тут проблема и как ее решить, помогите пожалуйста.

   
 
 автор: ONYX   (09.04.2008 в 07:04)   письмо автору
 
   для: Dr Lines   (09.04.2008 в 05:18)
 

Это что перетаскивание элемента?

   
 
 автор: Dr Lines   (09.04.2008 в 07:31)   письмо автору
 
   для: ONYX   (09.04.2008 в 07:04)
 

Да

   
 
 автор: ONYX   (09.04.2008 в 08: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;"> &nbsp; </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>

   
 
 автор: Dr Lines   (09.04.2008 в 08:13)   письмо автору
 
   для: ONYX   (09.04.2008 в 08:04)
 

Омг, интересное решение, но с setTimeout бы попроще получилось, Хотелось бы сделать тоже самое с помощью неё.

   
 
 автор: Dr Lines   (09.04.2008 в 08:46)   письмо автору
 
   для: 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   (11.07.2008 в 15:37)   письмо автору
 
   для: Dr Lines   (09.04.2008 в 08:46)
 

Ребят, подскажите, почему код, описанный выше, работает везде (Opera, Safari, IE) и не работает в FireFox 2 и 3. Что не правильно я написал.

Помогите пожалуйста.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования