Автор Тема: onmousedown?  (Прочитано 7319 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
onmousedown?
« : 11 Декабря 2001, 10:06:00 »
подскажите,пожалуйста...
как заставить скрипт выполняться >>>пока<<< на элементе формы нажата кнопка мыши, а не один раз после ее нажатия

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
onmousedown?
« Ответ #1 : 11 Декабря 2001, 14:51:26 »
Думаю здесь нужно два события отслеживать - onmousedown и onmouseup.

А алгоритм примерно такой:
1. Объявляешь переменную - например
var isUp="n" // кнопка не была отпущена

2. Делаешь такую функцию:
function doSomething()
{
while(isUp=="n")
{
// здесь пишешь текст скрипта
....

}
}

3. Кнопку выполняешь так:


Думаю так должно работать.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

  • Гость
onmousedown?
« Ответ #2 : 11 Декабря 2001, 20:49:40 »
Макс, спасибо за предложенную помощь
Идея, скорее всего, правильная. Но это решение не подходит, т.к. событие onmouseup не обрабатывается из-за зацикливания в while
:(
Пытаюсь найти работающий аналогичный скрипт, но безуспешно. Может есть еще к.-н. варианты

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
no threads...
« Ответ #3 : 11 Декабря 2001, 22:49:35 »
Так это всегда так и будет :)
Ты не можешь заставить скрипт выполнятся настолько долго!!!!!
Зато можешь его вызывать раз в секунду или чаще.

(IE, например вообще виснет, пока JS выполняется)

А чтобы запускать так, надо вместо while сделать

function doSomething()
                         {
/ здесь пишешь текст скрипта

if(isUp=="n") setTimeout("doSomething() ",1000); // eto 1na sekunda
}
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

  • Гость
onmousedown?
« Ответ #4 : 11 Декабря 2001, 23:18:27 »
Теперь - > Работает!!!
Спасибо :))

  • Гость
onmousedown?
« Ответ #5 : 14 Декабря 2001, 11:23:49 »
Работает, но не так, как хотелось бы (Чтобы кнопки работали, как у полосы прокрутки окна, только располагались отдельно).
Второе нажатие мыши не обрабатывается - setTimeout видимо виноват.
Вот мой "кривой" вариант скрипта:









Поможите, please :( --> :)

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
onmousedown?
« Ответ #6 : 14 Декабря 2001, 12:18:03 »
Не понял... Что же не так работает?
С наилучшими пожеланиями. LODEVAR

  • Гость
onmousedown?
« Ответ #7 : 14 Декабря 2001, 19:39:25 »
Цитировать
Не понял... Что же не так работает?


Это как DblClick, но только если после первого клика не отпускать кнопку мыши (быстро нажал-отпустил-нажал :) )  - не листает. А надо точь-в-точь (повторяюсь) как у кнопок полосы прокрутки, только на JavaScript

Мелочь, конечно. Но в скрипте все должно быть прекрасно, как и в человеке.  Эх, хорошо сказал...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
onmousedown?
« Ответ #8 : 14 Декабря 2001, 20:27:50 »
Наверное для ondblclick свой обработчик нужен.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

  • Гость
onmousedown?
« Ответ #9 : 14 Декабря 2001, 20:43:46 »
Цитировать
Наверное для ondblclick свой обработчик нужен.


Но так ведь событие ondblclick обратывать и не надо. Кнопка же не отжата

  • Гость
onmousedown?
« Ответ #10 : 14 Декабря 2001, 20:50:01 »
Цитировать
Но так ведь событие ondblclick обратывать и не надо. Кнопка же не отжата


Или с "не отжата" тоже считается "двойным кликом". Наверно, да (совсем плохой стал - сам с собой перепечатываюсь)

Пробовал уже - не ра-бо-та-ет

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
onmousedown?
« Ответ #11 : 15 Декабря 2001, 02:40:50 »







height="17" name="upButton" onmousedown="doUp()"
onmouseup="if(tmID) {clearTimout(tmID);tmID=null;}">

   
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

  • Гость
onmousedown?
« Ответ #12 : 15 Декабря 2001, 21:43:07 »
Цитировать
Это как DblClick, но только если после первого клика не отпускать кнопку мыши (быстро нажал-отпустил-нажал  ) - не листает. А надо точь-в-точь (повторяюсь) как у кнопок полосы прокрутки, только на JavaScript


Oak, спасибо. Но эффект тот же.
MISSION IMPOSSIBLE

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
onmousedown?
« Ответ #13 : 16 Декабря 2001, 02:17:45 »
http://www.DanStainman.com/dynduo/

 -> DynWindow - polnocennoe okno so skrollerami.

http://www.ozones.com/  - tozhe okno so skrollerami

 vse na JS for NN4+IE
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

  • Гость
onmousedown?
« Ответ #14 : 17 Декабря 2001, 21:58:38 »
в этих примерах скрипт, отвечающий за кнопки прокрутки окна ТОЧНО ТАКЖЕ НЕ ОБРАБАТЫВАЕТ НУЖНОЕ МНЕ СОБЫТИЕ, А ИМЕННО (устал уже повторять) onmousedown-onmouseup-onmousedown И НАЖИМАЕТСЯ ЭТО БЫСТРО КАК DBLCLICK НО НЕ ОТЖИМАЯ КНОПКУ МЫШИ !-!!-!!! если это не реализуется на JavaScript или никто из здесь присутствющих уважаемых программистов не знает КАК ЭТО СДЕЛАТЬ, пожалуйста, ТАК И СКАЖИТЕ

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28