地图移动的时候,怎么样获取屏幕中心点的坐标 我用的是百度api的js版本 求解答!

地图移动的时候,怎么样获取屏幕中心点的坐标 我用的是百度api的js版本 求解答!,第1张

调用地图的getCenter方法即可,>

以华为荣耀20手机为例,具体 *** 作步骤如下:

1、打开手机电源,进入手机主页面;如下图所示

2、在手机主页面,选择手机自带的系统应用“指南针”,点击进入;如下图所示

3、进入指南针APP之后就能查看此手机当前的坐标位置;如下图所示

<title>Js获取适时获取鼠标坐标值并显示</title>

<script type="text/javascript">

var getCoordInDocumentExample = function(){

var coords = documentgetElementById("coords");

coordsonmousemove = function(e){

var pointer = getCoordInDocument(e);

var coord = documentgetElementById("coord");

coordinnerHTML = "X,Y=("+pointerx+", "+pointery+")";

}

}

var getCoordInDocument = function(e) {

e = e || windowevent;

var x = epageX || (eclientX +

(documentdocumentElementscrollLeft

|| documentbodyscrollLeft));

var y= epageY || (eclientY +

(documentdocumentElementscrollTop

|| documentbodyscrollTop));

return {'x':x,'y':y};

}

windowonload = function(){

getCoordInDocumentExample();

};

</script>

<div id="coords" style="width:500px;height:200px;background:#F2F1D7;border:2px solid #0066cc;">

请在此移动鼠标。

</div>

<br />

<div id="coord" style="width:500px;border:2px solid #336699;"> </div>

js获取DIV的位置坐标的方法有三种,分别如下:

方法一:

var odiv=documentgetElementByIdx_x('divid');

alert(odivgetBoundingClientRect()left);

alert(odivgetBoundingClientRect()top);

方法二:

function CPos(x, y)

{

thisx = x;

thisy = y;

}

function GetObjPos(ATarget)

{

var target = ATarget;

var pos = new CPos(targetoffsetLeft, targetoffsetTop);

var target = targetoffsetParent;

while (target)

{

posx += targetoffsetLeft;

posy += targetoffsetTop;

target = targetoffsetParent

}

return pos;

}

var obj = documentgetElementByIdx_x('divid')

alert(GetObjPos(obj)['x']) //x坐标

alert(GetObjPos(obj)['y']) //y坐标

方法三:

function getElementPos(elementId){

var ua = navigatoruserAgenttoLowerCase();

var isOpera = (uaindexOf('opera') != -1);

var isIE = (uaindexOf('msie') != -1 && !isOpera); // not opera spoof

var el = documentgetElementByIdx_x(elementId);

if (elparentNode === null || elstyledisplay == 'none') {

return false;

}

var parent = null;

var pos = [];

var box;

if (elgetBoundingClientRect) //IE

{

box = elgetBoundingClientRect();

var scrollTop = Mathmax(documentdocumentElementscrollTop, documentbodyscrollTop);

var scrollLeft = Mathmax(documentdocumentElementscrollLeft, documentbodyscrollLeft);

return {

x: boxleft + scrollLeft,

y: boxtop + scrollTop

};

}

else

if (documentgetBoxObjectFor) // gecko

{

box = documentgetBoxObjectFor(el);

var borderLeft = (elstyleborderLeftWidth) parseInt(elstyleborderLeftWidth) : 0;

var borderTop = (elstyleborderTopWidth) parseInt(elstyleborderTopWidth) : 0;

pos = [boxx - borderLeft, boxy - borderTop];

}

else // safari & opera

{

pos = [eloffsetLeft, eloffsetTop];

parent = eloffsetParent;

if (parent != el) {

while (parent) {

pos[0] += parentoffsetLeft;

pos[1] += parentoffsetTop;

parent = parentoffsetParent;

}

}

if (uaindexOf('opera') != -1 || (uaindexOf('safari') != -1 && elstyleposition == 'absolute'))

{

pos[0] -= documentbodyoffsetLeft;

pos[1] -= documentbodyoffsetTop;

}

}

if (elparentNode) {

parent = elparentNode;

}

else {

parent = null;

}

while (parent && parenttagName != 'BODY' && parenttagName != 'HTML') { // account for any scrolled

ancestors

pos[0] -= parentscrollLeft;

pos[1] -= parentscrollTop;

if (parentparentNode) {

parent = parentparentNode;

}

else {

parent = null;

}

}

return {

x: pos[0],

y: pos[1]

};

}

var xd = getElementPos("divid");

alert(xdx);

alert(xdy);

获取页面中元素到文档区域document的横向 纵向坐标的两种方法及其比较

在js控制元素运动的过程中 对于页面元素坐标位置的获取是经常用到的 这里主要总结下两种方法

一 通过叠加元素对象和它的offsetParent(如果存在)的offsetLeft/offsetTop属性来实现

在阅读javascript高级程序设计第三版DOM部分时 了解到要获取某个元素在页面上的偏移量 需要将这个元素的offsetLeft和offsetTop与其offsetParent的相同属性相加 一直循环直至根元素 所以 要得到元素到文档区域的坐标位置 只需通过while循环不断获取offsetParent的offsetLeft/offsetTop直到offsetParent = null为止

js代码

代码如下:

// 获取元素到文档区域的坐标

function getPosition(element) {

var actualLeft = element offsetLeft

actualTop = element offsetTop

current = element offsetParent; // 取得元素的offsetParent

// 一直循环直到根元素

while (current !== null) {

actualLeft += current offsetLeft;

actualTop += current offsetTop;

current = current offsetParent;

}

// 返回包含left top坐标的对象

return {

left: actualLeft

top: actualTop

};

}

例子截图

firebug下测试结果截图 (注 其他浏览器已通过测试!)

二 通过 getBoundingClientRect() 方法实现

getBoundingClientRect方法用于获得页面中某个元素的左 上 右和下分别相对浏览器视窗window的位置 返回的是一个对象 该对象有四个属性 top left right bottom;该方法原本是IE Only的 但是FF +和Opera +已经支持了该方法 可以说在获得页面元素位置上效率有很大的提高 另外 该方法避免使用while循环 而是直接获取数值来实现 比第一种方法性能要好 特别是在复杂的页面上更为明显

js代码

代码如下:

// 获取元素到文档区域的坐标

function getPosition(element){

var dc = document

rec = element getBoundingClientRect()

_x = rec left // 获取元素相对浏览器视窗window的左 上坐标

_y = rec top;

// 与或body元素的滚动距离相加就是元素相对于文档区域document的坐标位置

_x += dc documentElement scrollLeft || dc body scrollLeft;

_y += dc documentElement scrollTop || dc body scrollTop;

return {

left: _x

top: _y

};

}

经测试 该方法与第一种方法获取元素相对于document的坐标大小相同 对于IE低版本浏览器 存在一些差异

注意 记得要累加上(IE除外)或body(针对IE)元素的水平或垂直滚动距离!

lishixinzhi/Article/program/Java/JSP/201311/20207

看了一下,你这种情况用根据鼠标位置来定位的div层来做好像不合适,你想想如果鼠标在文本框上时你不是也要将层放到文本框上吧,你可以看看别人的网站 上的,都是单独做的,这样体验才会好你想偷懒的话可以这样,用表格布局,后面多加一列,专门放显示信息的,然后根据事件的源对象,将信息显示到指定的单元格中另,function getpostion(e)//为了同时支持IE和FireFox,e必须为event对象要想将div位置固定的话需要将其posistion属性设为absolute;ps:晕死,竟然让我打三遍

以上就是关于地图移动的时候,怎么样获取屏幕中心点的坐标 我用的是百度api的js版本 求解答!全部的内容,包括:地图移动的时候,怎么样获取屏幕中心点的坐标 我用的是百度api的js版本 求解答!、html js获取手机朝向问题、手机如何查看自己当前坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9597175.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存