Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Общие вопросы > WEB-Программирование
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.06.2011, 17:44
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию JS: не изменяется положение элементов

вбиваю в адресной строке что-то типа:

javascript: дальше код создания div'ов.

стиль такой:

Код:
  for (i = 0; i < 10; i++) {
   var d = document.createElement('div');   
   d.style.position = 'absolute';
   d.style.top = 0;
   d.style.left = i * 50;
   d.id = 'div'+ i;
   d.style.height = 20;
   d.style.width = 20;
   d.style.textAlign = 'center'; 
   d.innerHTML = blabla + mas[i];  
   document.body.appendChild(d);
 }

И далее уже хочу управлять положением созданных элементов, но почему то они не хотят изменять свои координаты.

d.top = бла-бла - не работает.

Но если перед кодом создания элементов написать document.write(''), то все работает.
Ответить с цитированием
  #2  
Старый 23.06.2011, 19:46
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну сам же в начале писал:
d.style.top = 0;
либо:
document.getElementById('div5').style.top = 100;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 23.06.2011, 20:28
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Потом я, в обработчике события mousemove пытаюсь изменить их style.top в зависимости от координат мыши, но их положение не меняется. Или надо как то по-другому менять, например, не через style.top?
Ответить с цитированием
  #4  
Старый 23.06.2011, 20:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PHP код:
document.getElementById('div5').style.top = 100; 
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 23.06.2011, 21:10
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Обижаешь )) я не настолько туп. ))) Я именно таким способом и пытаюсь менять
Ответить с цитированием
  #6  
Старый 24.06.2011, 08:36
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

честное слово - не хотел обидеть) не увидел у тебя такого.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 24.06.2011, 10:45
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PHP код:
<html>
  <
body>
    <
script type="text/javascript" language="JScript">

      var 
dragObject = null
      
var x = -1;
      var 
y = -1;

      function 
onMouseDown(event) {
        
event = event || window.event;
        
dragObject = event.target || event.srcElement;
        
x = event.clientX;
        
y = event.clientY;
      }

      function 
onMouseMove(event) {
        if(
dragObject != null) {
            
event = event || window.event;
            
dragObject = event.target || event.srcElement;
            
document.getElementById(dragObject.id).style.posLeft = document.getElementById(dragObject.id).style.posLeft + (event.clientX - x);
            
document.getElementById(dragObject.id).style.posTop = document.getElementById(dragObject.id).style.posTop + (event.clientY - y);
            
x = event.clientX;
            
y = event.clientY;
        }
      }

      function 
onMouseUp(event) {
        
dragObject = null;
      }

      for(
i = 0; i < 10; i++) {
        var 
newDiv = document.createElement("div");
        
newDiv.style.position = "absolute";
        
newDiv.style.width = 100;
        
newDiv.style.height = 100;
        
newDiv.style.left = i * newDiv.style.posWidth;
        
newDiv.style.top = 0;
        
newDiv.id = "div" + i;
        
newDiv.innerHTML = "Перетащи меня " + i;
        
document.body.appendChild(newDiv);
        
newDiv.onmousedown = onMouseDown;
        
newDiv.onmousemove = onMouseMove;
        
newDiv.onmouseup = onMouseUp;
      }
      
document.body.onmouseup = onMouseUp;
    
</script>
  </body>
</html> 

только в IE
http://j2me.webservis.ru/divmove.htm
так надо?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 24.06.2011, 13:49
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Спасибище. Все соль была в posTop и posLeft. Через них координаты меняются.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2026