Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение объекта с определенной скоростью 
:(
    Опции темы
php5
  Дата 27.8.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Имеется скрипт который позволяет перемещать обьеты 
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Drag-and-Drop</title>
<link rel="stylesheet" type="text/css" href="Drag-and-Drop_files/style000.css">
<link rel="shortcut icon" href="Drag-and-Drop_files/favicon0.ico">
<meta http-equiv="Content-Type" content="text/html;" >
<meta name="author" content="Зыков Олег Email:[email protected]">
<meta name="keywords" content=" JavaScript ">
<meta name="description" content=" JavaScript - примеры с комментариями. Drag-and-Drop ">
<style>
body { background-color:99ccff; font-family:"Verdana","Arial","Times New Roman"; }
#obj1 { position:absolute; top:120px; left:300px; color:"333399"; cursor:move; }
#obj2 { position:absolute; top:150px; left:50px; background-image:url("Drag-and-Drop_files/oblako00.gif"); width:190px; height=115px; cursor:move; }
#obj3 { position:absolute; top:200px; left:300px; background-image:url("Drag-and-Drop_files/solnze00.gif"); width:140px; height:150px; cursor:move; }
#obj4 { position:absolute; top:120px; left:550px; background-image:url("Drag-and-Drop_files/oblako00.gif"); width:190px; height=115px; cursor:move; }
#obj5 { position:absolute; top:400px; left:450px; background-image:url("Drag-and-Drop_files/oblako00.gif"); width:190px; height=115px; cursor:move; }
#obj6 { position:absolute; top:450px; left:100px; color:"333399"; font-size:80%; cursor:move; }
#obj7 { position:absolute; top:20px; left:25px; text-align:left; font-family:'Arial','Verdana','Times New Roman'; font-size:24pt; font-weight:bold; margin-top:10px; margin-right:20px; margin-bottom:10px; margin-left:20px; padding-top:5px; padding-right:100px; padding-left:50px; padding-bottom:5px; background-color:'336699'; cursor:move; }

</style>

<script language="javascript">
/******************************************************************************
Применение - перемещение Drag-and-Drop выбраного объекта.
Комментарий - картинки задаются как фоновое изображение, 
если задавать явно, -  работает некорректно.
******************************************************************************/
var obj ;                                                            //объявляем переменную 
function start(n)                                                    //функция вызывается при помещении курсора на объект
{                 
obj = n ;                                                            //переменной obj присваивается фактический параметр функции start()
document.onmousedown = move;                                         //вызываем функцию move() событием onmousedown
}


function move()                                                      //эта функция была вызвана из функции start()
{
switch (event.type)                                                  //при помощи переключателя switch определенному событию от мыши назначается действие
{
case "mousedown":                                                    //событие  onmousedown определяет координаты контейнера 
     a = event.offsetX + 3 ;                                         //к получившимся координатам прибавляем 3 ( коррекция, относительно края окна, почему появляется эта разница, - не знаю, но так уж оно есть... )
     b = event.offsetY + 3 ;
     document.onmousemove = move ;                                   //и передает работу с функцией событию onmousemove  
case "mousemove":    
     document.all(obj).style.pixelLeft = event.x - a ;               //расстяние от левого края окна до курсора будет равно координатам курсора относительно окна, минус координаты курсора, относительно контейнера, на момент предыдущего события мыши
     document.all(obj).style.pixelTop = event.y - b ;    
     document.onmouseup = move ;                                     //передача работы с функцией событию onmouseup
     break; 
case "mouseup":                                                      
     document.onmousemove = null ;                                   //при событии мыши onmouseup, - событие onmousemove отменяется
     break;     
}
}
</script>
</head>
<body>





<div id="obj1" onMouseOver="start('obj1')";><h2>Солнце и облака</h2></div>
<div id="obj2" onMouseOver="start('obj2')";></div>
<div id="obj3" onMouseOver="start('obj3')";></div>
<div id="obj4" onMouseOver="start('obj4')";></div>
<div id="obj5" onMouseOver="start('obj5')";></div>
<div id="obj6" onMouseOver="start('obj6')";><p>Все, что находится на этой странице, <br>можно перемещать по всему экрану, <br>используя “Drag-and-Drop”.   </p></div>
<div id="obj7" onMouseOver="start('obj7')";><a class="headLink" href="http://www.legal.web.ur.ru/index.html" title="Вернутся на главную страницу">legal.web.ur.ru</a></div>



</body>
</html>
<!-- This document saved from http://www.legal.web.ur.ru/drag_and_drop.html -->



Как его можно модифицировать что бы можно было перемешать объект с  определенной скоростью т.е что бы происходила небольшая задержка 

PM MAIL   Вверх
Ghirik
Дата 28.8.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Обьясните понятнее. Что значит перемещать с определенной скоростью? Скорость определяется скоростью ведения мышки. Или вам нужно чтобы они сами ездили с определенной скоростью?



--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
php5
Дата 28.8.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Цитата

Скорость определяется скоростью ведения мышки.


именно это я имел в виду  smile 
PM MAIL   Вверх
Ghirik
Дата 28.8.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Ну объекты перемещаются ведь.... со скоростью мыши... Глючит всё, но скорость то причем?
И вы вопрос задаете, дак портянку то обрежьте, лишнее всё удалите, оставьте один-два объекта. 
Задержка выполнения задается функцией setTimeout(выполняемая функция, время задержки миллисекунды)


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 28.8.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



php5, Вы хотите инерцию изобразить, что ли, чтоб объекты тягались за курсором мыши, как игрушечная машинка на веревочке?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 28.8.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



SelenIT, раз уж вы про замедление движения заговорили, может подскажете.
Какой множитель используют для значения времени, чтобы объект двигался вначале быстро, а по мере приближения к заданой позиции замедлял движение?

Это сообщение отредактировал(а) Ghirik - 28.8.2007, 17:49


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 28.8.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Ghirik, классический вариант, насколько мне известно - делать шаг смещения пропорциональным оставшемуся расстоянию до цели.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 28.8.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Спасибо smile , я где-то уже такой прием встречал, но не касаемо программирования.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
php5
Дата 29.8.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



SelenIT ? а как сделать эту инерцию при движении , в каком месте в моем коде нужно вызывать функцию setTimeout() 
 smile 
PM MAIL   Вверх
Ghirik
Дата 29.8.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Вы поймите, чтобы что-то советывать или делать, нужно понимать, что делаешь. Вы просите сделать задержку. Зачем? Вам ненравится как работает скрипт? Что конкретно ненравится? Ненравится его глюкавость? Задержки не помогут. Там какая то несогласованность событий, разбираться в этой несогласованности ни кто не станет, потому, как это неблагодарное занятие. А делать примочки к глюкавому скрипту... вообще...

Вы бы хоть маленький кусочек скрипта сами написали, подтверждающий, что Вы что-то делаете сами. Хоть какие то попытки написать....


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
php5
Дата 29.8.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Та все глюки  в своем  скрипте я исправил, выложил скрипт  с глюком потому что он меньший по общему и понятней, в моем скрипте    принцип перемещении  остался тот же,  меня  интересует конкретный вопрос как сделать инерцию при движении при использовании выше приведенного кода , а не то как сделать что бы он не глючил 
PM MAIL   Вверх
Ghirik
Дата 29.8.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Цитата

setTimeout(выполняемая функция, время задержки миллисекунды)
классический вариант, насколько мне известно - делать шаг смещения пропорциональным оставшемуся расстоянию до цели. 


Вы себе исправили, а нам и так сойдет. Извините, это хамство.
Вы станете к ржавому ведру приделывать лакированную ручку?
Выложили чужой скрипт, 
http://www.legal.web.ur.ru/drag_and_drop.html
и ждете пока Вам готовенькое выдадут. Думаю, здесь уже не выдадут.
Если Вы смогли разобраться в очередности событий, чтобы исправить глюки, то написать зажержку - плевое дело!


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
php5
Дата 29.8.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Ghirik, я что говорил что это мой скрипт ? я даже в исходнике который здесь выложил не убрал ссылки и информацию откуда я его взял , что касается   
Цитата

Вы себе исправили, а нам и так сойдет. Извините, это хамство.

Я уже говорил почему я его выложил таким,  для вас еще раз повторюсь  

выложил скрипт  с глюком потому что он меньший по общему и понятней


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3814 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.