我有一個div內的圖像,用戶可以點擊。如何在懸停在圖像上時顯示帶有x-y座標的十字準線光標?
有沒有辦法顯示實時懸停在圖像上的光標座標?我知道要顯示十字光標,光標類型必須設置爲:cursor: crosshair
- 但我怎樣才能顯示這些座標?
我有一個div內的圖像,用戶可以點擊。如何在懸停在圖像上時顯示帶有x-y座標的十字準線光標?
有沒有辦法顯示實時懸停在圖像上的光標座標?我知道要顯示十字光標,光標類型必須設置爲:cursor: crosshair
- 但我怎樣才能顯示這些座標?
使用jQuery你可以做:
<script language="text/javascript">
$('#your_image').mouseover(function(e){
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
alert("X: " + x + " Y: " + y);
});
</script>
<html>
<head>
<script>
function onMouseOver(Sender,e){
var x = e.x - Sender.offsetLeft;
var y = e.y - Sender.offsetTop;
document.getElementById('coord').innerHTML = x+"-"+y;
}
</script>
</head>
<body>
<img src="image.jpg" onmousemove="onMouseOver(this,event)">
<span id='coord'></span>
</body>
</html>
顯示座標會干擾實際的點擊嗎?此外,這可以在只有一個特定的div工作,對嗎? – oxo
干擾是什麼意思?你可以把座標放在任何你想要的地方。或者只是在一些絕對定位的DIV(如一些標題/提示)。它應該按預期工作。 –
嘗試:
$(function() {
$('#hover-img')
// show the coordinates box on mouseenter
.bind('mouseenter', function() {
$('#coordinates').show();
})
// hide it on mouseleave
.bind('mouseleave', function() {
$('#coordinates').hide();
})
// update text and position on mousemove
.bind('mousemove', function (evt) {
$('#coordinates').html(
(evt.pageX - this.offsetLeft) + '/' + (evt.pageY - this.offsetTop)
).css({
left: evt.pageX + 20,
top: evt.pageY + 20
})
});
});
注意:看» demo所使用的HTML元素。
<html>
<head>
<script type="text/javascript">
function getAbsoluteOffset(htmlelement) {
var offset={x:htmlelement.offsetLeft,y:htmlelement.offsetTop};
while(htmlelement=htmlelement.offsetParent)
{
offset.x+=htmlelement.offsetLeft;
offset.y+=htmlelement.offsetTop;
}
return offset;
}
function image_onmouseout(ev) {
document.getElementById("mouseinfo").innerHTML="Mouse outside of image";
}
function image_onmousemove(ev) {
var offset=getAbsoluteOffset(this);
document.getElementById("mouseinfo").innerHTML=
"Coordinates in page: (x: "+ev.clientX+",y:"+ev.clientY+")"+
"<br/>"+
"Coordinates in image: (x: "+(ev.clientX-offset.x)+",y:"+(ev.clientY-offset.y)+")";
}
</script>
</head>
<body>
<div style="width:400px;height:400px;background:red;">
<img src="image.png"
onmouseout="image_onmouseout.call(this,event);"
onmousemove="image_onmousemove.call(this,event);" />
</div>
<span id="mouseinfo">Mouse outside of image</span>
</body>
</html>
http://www.brenz.net/snippets/xy.asp – 472084
我認爲你正在尋找這樣的事情https://codepen.io/mikethedj4/pen/fnizu –