Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2012, 21:45
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Перетаскивание элемента
Решил попробовать работать с drag and drop, взяв за основу пример с этой страницы http://learn.javascript.ru/drag-and-drop:

var ball = document.getElementById('ball2');
 
ball.onmousedown = function() {
  this.style.position = 'absolute';
  this.style.zIndex = 1000; // над другими элементами
 
  var self = this;
 
  document.onmousemove = function(e) {
    e = fixEvent(e);
    
    self.style.left = e.pageX - 25 + 'px';
    self.style.top = e.pageY - 25 + 'px'; 
  };
 
  this.onmouseup = function() {
    document.onmousemove = self.onmouseup = null;
  };
 
}
 
ball.ondragstart = function() { 
  return false; 
};


Запускаю и .. ничего не работает. Файрбаг кричит: fixEvent is not defined.
Подскажите, что это за функция? Почему о ней не говорится в примере?
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2012, 23:49
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

судя по всему, данная функция делает объект событий кроссбраузерным, вот тут можно почитать: http://javascript.ru/tutorial/events/properties
__________________
kobezzza
code monkey
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2012, 04:29
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

kobezzza,
спасибо. Жаль, что в статье сразу об этом не написали.
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2012, 19:55
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" id="id" alt="" />

<script type="text/javascript">
!function(id, x, y, drag) {
	var scroll = {
		left: function(event) {
			return event.clientX + document.body.scrollLeft;
		},
		top: function(event) {
			return event.clientY + document.body.scrollTop;
		}
	};

	id.style.cssText = "cursor: move; position: absolute; left: 0px; top: 0px";

	id.onmousedown = function(event){
		event = event || window.event;
		x = scroll.left(event) - parseInt(id.style.left);
		y = scroll.top(event) - parseInt(id.style.top);
		drag = 1;
	};

	document.onmouseup = function() {
		drag = 0;
	};

	document.onmousemove = function(event) {
		event = event || window.event;
		if(drag) {
			id.style.left = scroll.left(event) - x;
			id.style.top = scroll.top(event) - y;
		}
	};
}(document.getElementById('id'), 0, 0, 0);
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как то можно узнать ID HTML элемента вызвавшего JavaScript функцию? Opusel Events/DOM/Window 1 18.12.2011 18:36
Тип элемента формы MCTrane Общие вопросы Javascript 6 15.12.2011 08:08
Расстояние от элемента до элемента (Sandr) Общие вопросы Javascript 4 24.11.2011 17:20
Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента Lockpickup AJAX и COMET 17 25.04.2011 17:58
помогите "уловить" момент появления элемента Bebarr Swallow Events/DOM/Window 4 18.03.2011 08:16