Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2013, 16:08
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

event.clientX в firefox
Всем привет!)
консоль ошибок в firefox:
TypeError: event is undefined

а в хроме работает
В коде в обработчике для события mouseover не получается получить точки курсора мыши с помощью event.clientX. что делать?
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2013, 16:21
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

http://javascript.ru/tutorial/events/properties#demo
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2013, 16:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,052

BaVa,
Кроссбраузерное решение

Универсальное решение для получения объекта события
Ответить с цитированием
  #4 (permalink)  
Старый 30.01.2013, 16:34
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

рони,
ошибка исчезла, но попробовал
alert(event.clientX); // не отрабатывает


Deff,
буду пробовать
Ответить с цитированием
  #5 (permalink)  
Старый 30.01.2013, 16:35
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

div.onmouseover = function(event) { // забыл параметр event передать, всем спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2013, 16:34
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

Как узнать отпустил ли пользователь левую кнопку мыши для события onmousedown?
Есть ли какое-нибудь свойство, которое проверяет зажата ли еще кнопка?
Ответить с цитированием
  #7 (permalink)  
Старый 31.01.2013, 16:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,052

BaVa,
а чем вас onmouseup неустраивает?
Ответить с цитированием
  #8 (permalink)  
Старый 31.01.2013, 16:51
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

рони,
я делаю скрипт, с помощью которого при наведении на угол элемента и клике можно было изменять размер div, пока не отпустишь кнопку. не пойму как сделать обработчик, работающий во время зажатия кнопки

Сначала я думал, что mousedown работает все время работает при зажатии левой кнопке, но размер div изменялся по 2px и останавливался
Сейчас делаю заново и вот кое какие наброски
var doc = document;
onload = function() {
	var t, r, b, l;
	var div = doc.getElementsByTagName("div")[0];
	div.onmousemove = function(event) {
		var e = event || window.event;
		var x = e.clientX;
		var y = e.clientY;
		t = div.getBoundingClientRect().top;
		r = div.getBoundingClientRect().right;
		b = div.getBoundingClientRect().bottom;
		l = div.getBoundingClientRect().left;
		div.innerHTML = "top: " + t + "<br>right: " + r + "<br>bottom: " + b + "<br>left: "+ l; // смотрю как изменяется
		if((e.clientX+1 == r) && (e.clientY+1 == b))
			div.style.cursor = "se-resize";
		else
			div.style.cursor = "default";
	}
	div.onmousedown = function(event) {
		var e = event || window.event;
		var x = e.clientX;
		var y = e.clientY;
		t = div.getBoundingClientRect().top;
		r = div.getBoundingClientRect().right;
		b = div.getBoundingClientRect().bottom;
		l = div.getBoundingClientRect().left;
	}
}
Ответить с цитированием
  #9 (permalink)  
Старый 31.01.2013, 18:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,052

BaVa,
Ну вот как-то так в первом приближении ... тянуть за правый нижний
<!DOCTYPE HTML>

<html>

<head>
  <title></title>
  <style type="text/css">
  div{
    border:  #3366FF 2px solid;
    height: 200px;
    width:  200px;
    background-color: #CCFFFF;
  }
  </style>
</head>

<body>
<div></div>
 <script type="text/javascript">
 var doc = document;
window.onload = function() {
	var t, r, b, l;
    var xx,yy,rr,bb,f=!1;
	var div = doc.getElementsByTagName("div")[0];
    t = div.getBoundingClientRect().top;
		r = div.getBoundingClientRect().right;
		b = div.getBoundingClientRect().bottom;
		l = div.getBoundingClientRect().left;


	div.onmousemove = function(event) {
		var e = event || window.event;
		var x = e.clientX;
		var y = e.clientY;
        t = div.getBoundingClientRect().top;
		r = div.getBoundingClientRect().right;
		b = div.getBoundingClientRect().bottom;
		l = div.getBoundingClientRect().left;
		div.innerHTML = "top: " + t + "<br>right: " + r + "<br>bottom: " + b + "<br>left: "+ l; // смотрю как изменяется
		if((e.clientX >  r-15) && (e.clientY> b-15))
		   {div.style.cursor = "se-resize";div.style.backgroundColor="#FFFF66"




           }
		else
			{div.style.cursor = "default";div.style.backgroundColor="#CCFFFF"};
         if(f){
           div.style.width=rr - (xx - x) + "px"
           div.style.height=bb - (yy -y) + "px"
        }

    }
	div.onmousedown = function(event) {
		var e = event || window.event;
		xx = e.clientX;
		yy = e.clientY;

		rr = div.getBoundingClientRect().right;
		bb = div.getBoundingClientRect().bottom;

        if((e.clientX >  r-15) && (e.clientY> b-15))f = !0;


	}
   div.onmouseup  = function(event) {

        f=!1
  	}
  div.onmouseover =  function(event) {
      div.style.backgroundColor="#CCFFFF"};
}

</script>
</body>
</html>

Последний раз редактировалось рони, 31.01.2013 в 18:46.
Ответить с цитированием
  #10 (permalink)  
Старый 31.01.2013, 20:35
Аватар для BaVa
Аспирант
Отправить личное сообщение для BaVa Посмотреть профиль Найти все сообщения от BaVa
 
Регистрация: 16.11.2011
Сообщений: 60

рони,
спасибо, буду разбираться)
а что значит f=!1? то есть все, но только не один? или как
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX + Firefox некорректное отображение checkbox shu7 Firefox/Mozilla 2 26.06.2015 15:23
Как стереть содержимое поля INPUT по клавише Esc? bug FireFox? Маэстро Firefox/Mozilla 4 20.06.2011 15:55
тег <audio> в Opera, Chrome, Firefox Magneto Javascript под браузер 12 25.11.2010 15:12
Проблемы с MouseMove в FireFox slim-v Events/DOM/Window 5 05.06.2009 02:44
В Mozilla Firefox 3.0 проблемма с Javascript меню artmedia Элементы интерфейса 1 07.09.2008 10:43