Установите позицию Div в положение мыши с помощью jQuery
Я пытаюсь расположить свой Div везде, где пользователь нажимает на мое изображение.
test - мое Div, а myimg - мое изображение.
Вот мой JS:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$("#myimg").click(function(e){
$("#test").show(2000);
$("#test").offset({left:e.pageX,top:e.pageY});
})
})
</script>
Однако это не работает. Может ли кто-нибудь сказать мне, что я делаю неправильно?
Изменить: Извините, я забыл упомянуть, что Div не будет отображаться, если я включу линию смещения, если я не буду показывать, но не в правильном положении.
Вот полный код:
<!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>xSky Software - Most likely the only software on Clickbank that exists.</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type='text/javascript' src='video/jwplayer.js'></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#myimg").click(function(e){
$("#test").show(2000);
$("#test").offset({left:e.pageX,top:e.pageY});
})
})
</script>
</head>
<body>
<!--Header and Logo-->
<div id="header">
<div id='mainvid'>This text will be replaced</div>
<script type='text/javascript'>
jwplayer('mainvid').setup({
'flashplayer': 'video/player.swf',
'file': 'video/Untitled1.mp4',
'controlbar': 'none',
'frontcolor': 'FFFFFF',
'lightcolor': 'FFFFFF',
'screencolor': 'FFFFFF',
'autostart': 'true',
'width': '709',
'height': '422'
});
</script>
</div>
</div>
<div id="test" style="width:100px; position:absolute; display:none; height:100px; border:#093 solid 2px; background:#0C6;">
Teeest
</div>
<!--Content-->
<div id="content">
<center><img src="Images/downloadbutton.png" id="myimg" /></center>
<br />
<div class="text">
OH YEAH!
</div>
</div>
<!--Footer-->
<div id="footer">
</div>
</body>
</html>
Ответы
Ответ 1
Кажется, все нормально. Я создал для вас JSFiddle:
http://jsfiddle.net/JPvya/
Нажмите на изображение, и тестовый div перемещается. Единственное изменение заключается в использовании короткой нотации $JQuery вместо ввода "JQuery", которая, кстати, вероятно, чувствительна к случаю и вызывает проблему!
Ответ 2
Я думаю, вы, вероятно, захотите
$("#test").css({position:"absolute", left:e.pageX,top:e.pageY});
вместо
$("#test").offset({left:e.pageX,top:e.pageY});
Ответ 3
Это достаточно хорошо для меня, поэтому ваша проблема, скорее всего, в другом месте.
HTML
<img id="myimg" src="http://placekitten.com/200/300"/>
<span id="test">This is a test</span>
CSS
#test {
display: none;
color: white;
}
JavaScript
$(function() {
$("#myimg").click(function(e) {
var o = {
left: e.pageX,
top: e.pageY
};
$("#test").show(2000).offset(o);
});
});
http://jsfiddle.net/mattball/haFMn/