Картинка в виде всплывающей подсказки
Работает в 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> |
|
Цитата:
|
|
лиса по-прежнему отказывается работать, в опере и ие все ок
<!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> |
Почему не работает? У меня в 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> |
она должна еще и двигаться за курсором как в опере
|
народ, помогите пожалуйста
|
все еще нужна помощь...
|
ап, кто-нибудь помогите добить скрипт, в ff и Chrome не работает, координаты не фиксируются и картинка не двигается за курсором, в остальных браузерах все нормально
|
<!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 + 'px'; img.style.top = e.pageY + 15 + 'px'; } 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(event)" onmouseout="out()">link</a></div> </body> </html> так правильнее, не забываем про пиксели + 'px';: img.style.left = e.pageX + 15 + 'px'; |
Gozar,
Огромнейшее спасибо!!!!! |
А не подскажите такое-же выражение только выполненое на Jquery ?
что-то тип такого: $(document).ready(function() { $("a").onmousemove(function() {......}) }) к сожалению незнаю как координаты на Jq узнать((((( |
ну почти так же.
$(function(){ $("a").mouseover(function(e){$(document.body).append('<div id="prev" style="position:absolute;background-color:#FFF;border:solid 1px #346fdc; padding:4px;top:'+e.pageY+15+';left:'+e.pageX+15+'"><img src="'+$(this).attr("href")+'"/></div>');}); $("a").mousemove(function(e){$("#prev").css({top:e.pageY+15,left:e.pageX+15});}); $("a").mouseout(function(){document.body.removeChild(document.getElementById("prev"));}); }); <div><a href="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif">link</a></div> <div><a href="http://img.yandex.net/i/www/logo.png">link</a></div> <div><a href="http://www.google.ru/images/logos/ps_logo2.png">link</a></div> |
Спасибище!
|
Очень удобно и кратко получилось, спасибо, но для этого способа придется пожертвовать валидностью(вводя новый атрибут) и вынести скрипт во внешний .js файл не получится, да?
если не сложно, дайте пожалуйста ссылки где почитать про $ и get |
|
На днях, подобная задача стояла, только подсказка по клику исчезала и на нее можно было переносить фокус:
<script src="http://code.jquery.com/jquery-latest.min.js"></script> <style type="text/css"> .block { position:absolute; top:20%; left: 40%; width: 200px; height: 50px; } .block img{ position: absolute; top: 20px; } </style> <script type="text/javascript"> $(function(){ $('.block').each(function(){ $(this).find('a').mouseover(function(){ $(this).next("img").length < 1 && $(this).after('<img src="'+$(this).attr('rel')+'" />'); }); $(document).click(function(e){ (e.target.nodeName != $('.block img').get(0).tagName) && $(this).find('img').remove(); }); }); }); </script> <div class="block"> <a href="#" rel="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif">link</a> </div> |
monolithed,
Вы бы ещё setTtimeout поставили. |
разобрался
|
отличная штука.
а кто знает , как выводить в уменьшенном виде картинку и не ниже , а выше ? заранее благодарен. JS изучать начал только сейчас, а результат нужен уже сейчас :thanks: |
Часовой пояс GMT +3, время: 02:49. |