Javascript.RU

Создать новую тему Закрытая тема
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2012, 14:06
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

offsetX, offsetY и firefox
Как заставить firefox понимать эти свойства?

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>выпвып</title>
</head>

<body>
<div id="box" style="width: 100px; height: 100px; background: green;"></div>
<div id="valueX"></div>
<div id="valueY"></div>
<script>
    function func(e) {
        var x = document.getElementById("valueX");
        var y = document.getElementById("valueY");

        x.innerHTML = e.offsetX;
        y.innerHTML = e.offsetY;
    }
document.getElementById("box").addEventListener("mousemove", func);
</script>
</body>
</html>
  #2 (permalink)  
Старый 26.08.2012, 14:41
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

чем clientX/clientY не устроил?
http://javascript.ru/tutorial/events...entx-y-pagex-y
  #3 (permalink)  
Старый 26.08.2012, 14:52
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от bes Посмотреть сообщение
чем clientX/clientY не устроил?
http://javascript.ru/tutorial/events...entx-y-pagex-y
Они показывают значения относительно окна браузера. И если элемент находится в центре окна и не равен размерам окна, то вывод значений этих свойств некорректен
  #4 (permalink)  
Старый 26.08.2012, 14:57
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

чем pageX/pageY не устроил?
http://javascript.ru/tutorial/events...entx-y-pagex-y
  #5 (permalink)  
Старый 26.08.2012, 15:18
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823



Мне необходимо получить значения элемента, желательно без "костылей"
Никак нельзя?
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>выпвып</title>
</head>

<body>
<div id="box" style="width: 100px; height: 100px; background: green; position: absolute; left: 200px;"></div>
<div id="clientX" style="position: absolute; top: 120px; left: 50px;"></div>
<div id="clientY" style="position: absolute; top: 150px; left: 50px;"></div>
<div id="pageX" style="position: absolute; top: 120px; left: 100px;"></div>
<div id="pageY" style="position: absolute; top: 150px; left: 100px;"></div>
<div id="offsetX" style="position: absolute; top: 120px; left: 150px;"></div>
<div id="offsetY" style="position: absolute; top: 150px; left: 150px;"></div>
<script>
    function func(e) {
        var clientX = document.getElementById("clientX");
        var clientY = document.getElementById("clientY");
        var pageX = document.getElementById("pageX");
        var pageY = document.getElementById("pageY");
        var offsetX = document.getElementById("offsetX");
        var offsetY = document.getElementById("offsetY");


        clientX.innerHTML = "cX" + e.clientX;
        clientY.innerHTML = "cY" + e.clientY;

        pageX.innerHTML = "pX" + e.pageX;
        pageY.innerHTML = "pY" + e.pageY;

        offsetX.innerHTML = "oX" + e.offsetX;
        offsetY.innerHTML = "oY" + e.offsetY;

    }
    document.getElementById("box").addEventListener("mousemove", func);
</script>
</body>
</html>
  #6 (permalink)  
Старый 26.08.2012, 15:20
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

FF вроде никогда его не поддерживал http://www.quirksmode.org/dom/w3c_cssom.html
Похожее от devote jquery отличие ClientX от PageX и offsetX ?
  #7 (permalink)  
Старый 26.08.2012, 15:22
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Правильные значения показывают только oX (offsetX), oY (offsetY) , но они не работают в firefox почему-то
  #8 (permalink)  
Старый 26.08.2012, 15:25
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

bes,
спасибо за ссылку

Угу, не поддерживает
  #9 (permalink)  
Старый 26.08.2012, 17:21
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Ну, предложит кто-нибудь как заставить работать clientX/clientY или pageX/pageY с позиционируемыми элементами?

Есть несколько идей решения этой задачи (например создать функцию, которая будет вычислять расстояние top/left до границ нужного элемента)
Но хотелось бы услышать/увидеть версии более авторитетных разработчиков, дабы не изобретать самому велосипеды
  #10 (permalink)  
Старый 26.08.2012, 18:01
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

так пойдёт?
<style>
	div {
		position: absolute;
		left: 40%;
		top: 40%;
		width: 50px;
		height: 50px;
		background: lightgreen;
		padding: 20px;
	}
</style>


<div>div</div><span></span>

<script>
window.onload = function () {

	document.body.children[0].onmousemove = function (e) {
		e = e || event;
		var coords = this.getBoundingClientRect();
		var x = parseInt(e.clientX - coords.left);
		var y = parseInt(e.clientY - coords.top);
		this.nextSibling.innerHTML = x + '<br>' + y;
	}
}
</script>
Закрытая тема



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX + Firefox некорректное отображение checkbox shu7 Firefox/Mozilla 2 26.06.2015 14: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
Peppy и Firefox Cr@ZyBoY Библиотеки/Тулкиты/Фреймворки 13 14.02.2010 20:38
Проблемы с MouseMove в FireFox slim-v Events/DOM/Window 5 05.06.2009 02:44