質問

JavaScript の場合:Web ページ内のすべてのリンクの座標 (x、y、高さ、幅) はどのようにして見つけられるのでしょうか?

役に立ちましたか?

解決

jQuery を使用すると、次のように簡単になります。

$("a").each(function() {
    var link = $(this);
    var top = link.offset().top;
    var left = link.offset().left;
    var width = link.offset.width();
    var height = link.offset.height();
});

他のヒント

jQueryなし:

var links = document.getElementsByTagName("a");
for(var i in links) {
    var link = links[i];
    console.log(link.offsetWidth, link.offsetHeight);
}

x と y の値を取得する関数については、このページを試してください。http://blogs.korzh.com/progtips/2008/05/28/absolute-coowned-of-dom-element-within-document.html

ただし、画像などを追加しようとしている場合は、a:after css セレクターを使用することをお勧めします。

プレーンな JavaScript:

function getAllChildren (node, tag) {
  return [].slice.call(node.getElementsByTagName(tag));
}
function offset(element){
  var rect = element.getBoundingClientRect();
  var docEl = doc.documentElement;
  return {
    left: rect.left + window.pageXOffset - docEl.clientLeft,
    top: rect.top + window.pageYOffset - docEl.clientTop,
    width: element.offsetWidth,
    height: element.offsetHeight
  };
}

var links = getAllChildren(document.body, 'a');
links.forEach(function(link){
  var offset_node = offset(node);
  console.info(offset_node);
});

jQuery を使用すると:

$j('a').each( findOffset );

function findOffset()
{
    alert
    ( 'x=' + $j(this).offset().left
    + ' y=' + $j(this).offset().top
    + ' width=' + $j(this).width()
    + ' height=' + $j(this).height()
    );
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top