Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Картинка в виде всплывающей подсказки (https://javascript.ru/forum/offtopic/9490-kartinka-v-vide-vsplyvayushhejj-podskazki.html)

abc_ua 20.05.2010 16:26

Картинка в виде всплывающей подсказки
 
Работает в Opera, в IE и FireFox не двигается, т.е. почему-то не меняются координаты в функции move(), помогите пожалуйста разобраться

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Картинка как всплывающая подсказка</title>
<script type="text/javascript">
function over(file_name)
{
	par = document.getElementsByTagName('div')[0];
	image = document.createElement('img');
	par.appendChild(image);
	image.style.position = 'absolute';
	move();
	image.src = file_name;
	image.style.background = '#FFFFFF';
	image.style.border = "solid 1px #346fdc";
	image.style.padding = "4px";
}
function move()
{
	image.style.left = window.event.x+window.pageXOffset+15;
	image.style.top = window.event.y+window.pageYOffset+15;
}
function out()
{
	par.removeChild(image);
}
</script>
</head>

<body>

	<div><a href="" onmouseover="over('file_name')" onmousemove="move()" onmouseout="out()">link</a></div>

</body>
</html>

Skipp 20.05.2010 16:32

image.style.left = window.event.x+window.pageXOffset+15 + "px";

и еще FF не знает что такое window.event

А так?

Совет, на будущее, почти не относится к вашему скрипту. Почитай И внимательнее.

abc_ua 20.05.2010 17:14

Цитата:

Сообщение от Skipp
и еще FF не знает что такое window.event

так как быть? есть альтернатива для всех браузеров?

Skipp 20.05.2010 17:18

Посмотри

abc_ua 20.05.2010 22:37

лиса по-прежнему отказывается работать, в опере и ие все ок

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function over(file_name)
{
	img = document.createElement('div');
	document.body.appendChild(img);
	img.innerHTML = '<img src='+file_name+' />';
	img.style.position = 'absolute';
	img.style.background = '#FFFFFF';
	img.style.border = 'solid 1px #346fdc';
	img.style.padding = '4px';
	move();
}
function move(e)
{
	e = e || window.event
	if (e.pageX == null && e.clientX != null )
		{
			var html = document.documentElement
			var body = document.body
			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
			e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
		}
	img.style.left = e.pageX + 15
	img.style.top = e.pageY + 15
}
function out()
{
	document.body.removeChild(img);
}
</script>
</head>

<body>
	<div><a href="" onmouseover="over('file_name')" onmousemove="move()" onmouseout="out()">link</a></div>
</body>
</html>

Skipp 21.05.2010 09:32

Почему не работает? У меня в ff всё работает. При наведении мыши появляется картинка, увожу исчезает. Так должно же работать?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function over(file_name)
{
	img = document.createElement('div');
	document.body.appendChild(img);
	img.innerHTML = '<img src='+file_name+' />';
	img.style.position = 'absolute';
	img.style.background = '#FFFFFF';
	img.style.border = 'solid 1px #346fdc';
	img.style.padding = '4px';
	move();
}
function move(e)
{
	e = e || window.event
	if (e.pageX == null && e.clientX != null )
		{
			var html = document.documentElement
			var body = document.body
			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
			e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
		}
	img.style.left = e.pageX + 15
	img.style.top = e.pageY + 15
}
function out()
{
	document.body.removeChild(img);
}
</script>
</head>

<body>
	<div><a href="" onmouseover="over('http://javascript.ru/forum/images/ca_serenity/misc/logo.gif')" onmousemove="move()" onmouseout="out()">link</a></div>
</body>
</html>

abc_ua 21.05.2010 15:43

она должна еще и двигаться за курсором как в опере

abc_ua 22.05.2010 18:53

народ, помогите пожалуйста

abc_ua 26.05.2010 15:43

все еще нужна помощь...

abc_ua 23.08.2010 16:09

ап, кто-нибудь помогите добить скрипт, в ff и Chrome не работает, координаты не фиксируются и картинка не двигается за курсором, в остальных браузерах все нормально


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