亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js獲得指定控件輸入光標的坐標兼容IE,Chrome,火狐等多種主流瀏覽器

2019-11-20 22:42:17
字體:
來源:轉載
供稿:網友
直接上代碼
復制代碼 代碼如下:

var kingwolfofsky = {
/**
* 獲取輸入光標在頁面中的坐標
* @param {HTMLElement} 輸入框元素
* @return {Object} 返回left和top,bottom
*/
getInputPositon: function (elem) {
if (document.selection) { //IE Support
elem.focus();
var Sel = document.selection.createRange();
return {
left: Sel.boundingLeft,
top: Sel.boundingTop,
bottom: Sel.boundingTop + Sel.boundingHeight
};
} else {
var that = this;
var cloneDiv = '{$clone_div}', cloneLeft = '{$cloneLeft}', cloneFocus = '{$cloneFocus}', cloneRight = '{$cloneRight}';
var none = '<span style="white-space:pre-wrap;"> </span>';
var div = elem[cloneDiv] || document.createElement('div'), focus = elem[cloneFocus] || document.createElement('span');
var text = elem[cloneLeft] || document.createElement('span');
var offset = that._offset(elem), index = this._getFocus(elem), focusOffset = { left: 0, top: 0 };
if (!elem[cloneDiv]) {
elem[cloneDiv] = div, elem[cloneFocus] = focus;
elem[cloneLeft] = text;
div.appendChild(text);
div.appendChild(focus);
document.body.appendChild(div);
focus.innerHTML = '|';
focus.style.cssText = 'display:inline-block;width:0px;overflow:hidden;z-index:-100;word-wrap:break-word;word-break:break-all;';
div.className = this._cloneStyle(elem);
div.style.cssText = 'visibility:hidden;display:inline-block;position:absolute;z-index:-100;word-wrap:break-word;word-break:break-all;overflow:hidden;';
};
div.style.left = this._offset(elem).left + "px";
div.style.top = this._offset(elem).top + "px";
var strTmp = elem.value.substring(0, index).replace(/</g, '<').replace(/>/g, '>').replace(//n/g, '<br/>').replace(//s/g, none);
text.innerHTML = strTmp;
focus.style.display = 'inline-block';
try { focusOffset = this._offset(focus); } catch (e) { };
focus.style.display = 'none';
return {
left: focusOffset.left,
top: focusOffset.top,
bottom: focusOffset.bottom
};
}
},
// 克隆元素樣式并返回類
_cloneStyle: function (elem, cache) {
if (!cache && elem['${cloneName}']) return elem['${cloneName}'];
var className, name, rstyle = /^(number|string)$/;
var rname = /^(content|outline|outlineWidth)$/; //Opera: content; IE8:outline && outlineWidth
var cssText = [], sStyle = elem.style;
for (name in sStyle) {
if (!rname.test(name)) {
val = this._getStyle(elem, name);
if (val !== '' && rstyle.test(typeof val)) { // Firefox 4
name = name.replace(/([A-Z])/g, "-$1").toLowerCase();
cssText.push(name);
cssText.push(':');
cssText.push(val);
cssText.push(';');
};
};
};
cssText = cssText.join('');
elem['${cloneName}'] = className = 'clone' + (new Date).getTime();
this._addHeadStyle('.' + className + '{' + cssText + '}');
return className;
},
// 向頁頭插入樣式
_addHeadStyle: function (content) {
var style = this._style[document];
if (!style) {
style = this._style[document] = document.createElement('style');
document.getElementsByTagName('head')[0].appendChild(style);
};
style.styleSheet && (style.styleSheet.cssText += content) || style.appendChild(document.createTextNode(content));
},
_style: {},
// 獲取最終樣式
_getStyle: 'getComputedStyle' in window ? function (elem, name) {
return getComputedStyle(elem, null)[name];
} : function (elem, name) {
return elem.currentStyle[name];
},
// 獲取光標在文本框的位置
_getFocus: function (elem) {
var index = 0;
if (document.selection) {// IE Support
elem.focus();
var Sel = document.selection.createRange();
if (elem.nodeName === 'TEXTAREA') {//textarea
var Sel2 = Sel.duplicate();
Sel2.moveToElementText(elem);
var index = -1;
while (Sel2.inRange(Sel)) {
Sel2.moveStart('character');
index++;
};
}
else if (elem.nodeName === 'INPUT') {// input
Sel.moveStart('character', -elem.value.length);
index = Sel.text.length;
}
}
else if (elem.selectionStart || elem.selectionStart == '0') { // Firefox support
index = elem.selectionStart;
}
return (index);
},
// 獲取元素在頁面中位置
_offset: function (elem) {
var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement;
var clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0;
var top = box.top + (self.pageYOffset || docElem.scrollTop) - clientTop, left = box.left + (self.pageXOffset || docElem.scrollLeft) - clientLeft;
return {
left: left,
top: top,
right: left + box.width,
bottom: top + box.height
};
}
};
function getPosition(ctrl) {
var p = kingwolfofsky.getInputPositon(ctrl);
document.getElementById('show').style.left = p.left + "px";
document.getElementById('show').style.top = p.bottom + "px";
}

----------------------------------------------------------------------------------------------------------------------------------------
調用代碼
復制代碼 代碼如下:

var elem = document.getElementById(控件ID);
var p = kingwolfofsky.getInputPositon(elem);
p.left;//獲得指定位置坐標
p.top;//同上
p.bottom;//同上
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu亚洲国产精品| 国产精品美腿一区在线看| 久久人人爽人人| 国产一级揄自揄精品视频| 亚洲天堂网站在线观看视频| 成人黄色大片在线免费观看| 欧美日韩高清在线观看| 亚洲最新av在线| 亚洲第一免费网站| 亚洲欧美自拍一区| 日韩有码片在线观看| 欧美激情手机在线视频| 日韩三级成人av网| 亚洲国产精品女人久久久| 97视频在线免费观看| 日韩精品久久久久久福利| 国产激情久久久久| 中文国产亚洲喷潮| 精品国模在线视频| 日韩欧美亚洲一二三区| 5566日本婷婷色中文字幕97| 国产成人精品综合久久久| 欧美午夜电影在线| 91免费看国产| 38少妇精品导航| 亚洲人成亚洲人成在线观看| 日韩在线精品一区| 国产精品综合久久久| 欧美一级大片在线免费观看| 亚洲aa在线观看| 亚洲国产精品成人va在线观看| 成人激情视频网| 国产视频久久久久| 九色成人免费视频| 国产区亚洲区欧美区| 91禁国产网站| 亚洲aⅴ男人的天堂在线观看| 色七七影院综合| 成人免费视频在线观看超级碰| 中日韩午夜理伦电影免费| 国产精品久久久久久久av大片| 日韩在线观看成人| 一区二区福利视频| 亚洲精品98久久久久久中文字幕| 久久久在线观看| 日韩亚洲精品视频| 国产日韩精品一区二区| 精品久久久久久国产| 爱福利视频一区| 精品国产乱码久久久久久婷婷| 欧美亚洲国产精品| 久久精品国产清自在天天线| 久久久久一本一区二区青青蜜月| 欧美日韩精品在线视频| 国产精品美女无圣光视频| 欧美国产一区二区三区| 日韩美女主播视频| 国产一区二区三区直播精品电影| 欧美日韩性生活视频| 亚洲免费中文字幕| 国产一区二区三区在线观看网站| 国产精品观看在线亚洲人成网| 久久人人爽人人爽人人片av高请| 久久精品国产久精国产一老狼| 在线观看不卡av| 亚洲天堂开心观看| 色播久久人人爽人人爽人人片视av| 欧美与欧洲交xxxx免费观看| 欧美超级免费视 在线| 久久久久久久久中文字幕| 亚洲aa中文字幕| 国产精品91一区| 亚洲精品小视频| 最近2019中文字幕大全第二页| 精品亚洲精品福利线在观看| 日韩视频免费在线观看| 97在线观看视频国产| 欧美日韩电影在线观看| 自拍视频国产精品| 色av吧综合网| 97精品国产97久久久久久免费| 久久久精品一区二区| 欧美自拍大量在线观看| 久久精品中文字幕| 欧洲日本亚洲国产区| 久久精品国产久精国产一老狼| 国产亚洲aⅴaaaaaa毛片| 亚洲黄一区二区| 欧美专区日韩视频| 久久久久久久电影一区| xxxx欧美18另类的高清| 亚洲护士老师的毛茸茸最新章节| 欧美视频免费在线观看| 亚洲欧美综合另类中字| 777精品视频| 色偷偷888欧美精品久久久| 亚洲午夜未删减在线观看| 日日狠狠久久偷偷四色综合免费| 亚洲成人久久久久| 日本aⅴ大伊香蕉精品视频| 欧美视频中文字幕在线| 久久国产精品首页| 久久久久久久久综合| 国语自产精品视频在线看一大j8| 久久九九热免费视频| 日韩av在线播放资源| 日韩的一区二区| 国产精品尤物福利片在线观看| 亚洲国产欧美一区二区三区同亚洲| 国产精品视频网址| 精品国内自产拍在线观看| 国产一区二区三区在线视频| 久热精品视频在线免费观看| 国产经典一区二区| 欧美黑人性生活视频| 精品久久久视频| 日韩av大片在线| 国产精品高潮呻吟久久av无限| 尤物九九久久国产精品的分类| 欧美激情在线有限公司| 亚洲欧美日本伦理| 色在人av网站天堂精品| 国产欧美一区二区三区在线看| 国产精品网红福利| 日韩风俗一区 二区| 欧美久久精品午夜青青大伊人| 欧美国产精品人人做人人爱| 国产精品羞羞答答| 亚洲热线99精品视频| 日韩精品在线观| 亚洲欧美国内爽妇网| 欧美理论片在线观看| 亚洲aaaaaa| 一区二区福利视频| 亚洲国产成人精品女人久久久| 亚洲欧美日韩天堂| 国产精品爽爽爽爽爽爽在线观看| 国产精品黄页免费高清在线观看| 亚洲精品小视频在线观看| 亚洲国产高潮在线观看| 成人免费激情视频| www.日韩.com| 久久91亚洲精品中文字幕| 欧美综合国产精品久久丁香| 深夜精品寂寞黄网站在线观看| 国产精品国产福利国产秒拍| 欧美激情videos| 国产精品久久久久久搜索| 97在线观看视频国产| 亚洲国产成人久久综合| 国产精品久久久久久久天堂| 日本欧美在线视频| 欧美激情一区二区三区成人| 欧美又大又硬又粗bbbbb| 久久偷看各类女兵18女厕嘘嘘| 欧美日韩午夜视频在线观看| 日韩免费在线免费观看| 亚洲激情视频网| 欧美丝袜一区二区| 黄色精品一区二区| 欧美日韩在线视频首页| 日韩电影免费观看在线观看| 久99久在线视频| 亚洲欧美日韩一区二区三区在线|