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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюк скрипта, помогите разобраться, плз 
V
    Опции темы
AtaL
Дата 18.7.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



http://a-fibermate.narod.ru/movediv.html - страничка со скриптом.

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

Для упрощения задачи опускаю ограничения на движение по вертикали.
Скрипт работает, но с ограничением: если нажать клавишу мышки, поперетаскивать див, и отпустить клавишу в пределах дива (где курсор двигался, не играет роли) -  все нормально.

Глюк в следующем:  если отпустить клавишу, когда курсор находится за пределами дива, в самом начале движения возникает глюк: див перестает двигаться.

НО. В теле функций два закомменченых алерта. Если алерты раскомментировать и убирать их энтером, то скрипт работает нормально.
Второе но Если после того, как скрипт начнет глючить, щелкнуть мышкой в любом месте страницы, все снова начинает работать.

Часа два уже голову ломаю: где ошибка?

На всякий случай привожу код страницы тут:

Код

<html>

<head>
    <script language="JavaScript1.2">
        var flag=0, y_nach=window.event.y, y_memory=0;
        
        
        function chflag_1() {
            flag=1;
            //alert('1: сработало chflag_1');
            }
            
        
        
        
        function chflag_0() {
            flag=0;
            //alert('0: сработало chflag_0');
        }
        
        function bodymousemove(){
            var obj, razn;
            
            if(window.event.button==0) flag=0;
            
            if(flag==1){
            razn=window.event.clientY-y_nach;
            y_nach=window.event.clientY;
            window.status= "X: " + window.event.clientX + " Y: " + window.event.clientY+" razn: "+razn+" y_nach: "+y_nach;
            obj=window.event.srcElement;
            
                    scrollimg.style.pixelTop +=razn;
                    y_memory=scrollimg.style.pixelTop;
                    
                
            }
            else 
            
                scrollimg.style.pixelTop =y_memory;
            }

</script>
</head>

<body onmousemove="bodymousemove();" id="b"  onmouseup="chflag_0()">

<table id="scrolltable" onmousemove="bodymousemove();" cellspacing='0' cellpadding='0' width="300px" height="100px" border="1px" style="position: relative; top: 300px; left: 300px;">
    <tr>
        <td width="100%">    
        </td>
            
        <td>
        </td>
            
            
        <td  valign="top"  id="scrolltd">
            <div style="width: 8px; height: 8px; background: url('pipka.gif'); position: relative;" 
                 id="scrollimg"  
                 onmousedown="chflag_1()"   
                 onmouseup="chflag_0()" 
                 onmousemove="bodymousemove();" >
                </div></td>
    </tr>
</table>

</body>
</html>
  

Это сообщение отредактировал(а) AtaL - 18.7.2006, 16:49
PM   Вверх
12345c
Дата 19.7.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

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



Можно код отсюда взять. Не двигать по горизонтали - получится ползунок по вертикали. (Просто закомментируйте строки 16 и 22.) На неглючность при кликах не над ползунком проверил - работает.

http://js2.ru/example/JsPrimeryCode-56.htm 

Это сообщение отредактировал(а) 12345c - 3.3.2008, 14:40


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
AtaL
Дата 20.7.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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