js eventClientX
我建了一个<textarea>,position设为absolute。然后在onmousedown事件里去获取clientX和clientY,总是不对。
比如我的textarea设为top:500px, left:350px; 然后我clientX和y为252,205,而且我每次点的位置不同,但坐标都一样。这是什么原因,该怎么解决?
[解决办法]
然后我clientX和y为252,205,这句话怎么理解?
<!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">window.onload = function() { document.getElementById('demo').onclick = function(e) { var e = window.event || e; alert("X:" + e.clientX + "\nY:" + e.clientY); }}</script></head><body><textarea id="demo" style="position:absolute; top:500px; left:350px;"></textarea></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=gbk" /><title>无标题文档</title><script type="text/javascript">window.onload = function() { var obj = document.getElementById('demo'); obj.onclick = function(e) { var e = window.event || e; // alert("X:" + e.clientX + "\nY:" + e.clientY); obj.style.left = e.clientX + 'px' obj.style.top = e.clientY + 'px' }}</script></head><body><textarea id="demo" style="position:absolute; top:100px; left:150px;"></textarea></body></html>