0

ページのどこかにHTML要素が表示されているとしたら?

完全にオーバーラップするように別のHTMLを作成するにはどうすればよいですか?

アイデアを出すために、私はこのようなことを試みましたが、入力のHTML要素がページの下部にあり、それに到達するためにスクロールダウンする必要がある場合は機能しません

function createOverlap(elem) {
    var rect = elem.getBoundingClientRect();
    over.style.position = 'absolute';
    over.style.top =    rect.top+'px';
    over.style.left=    rect.left+'px';
    over.style.height = rect.height+'px';
    over.style.width=   rect.width+'px';
    return over;
}
4

1 に答える 1

0

'over'がDOM要素であるようには見えませんが、それ以外は非常に近いです。

このフィドルを参照してください:http://jsfiddle.net/7em2g/

function createOverlap(elem) {
    var rect = elem.getBoundingClientRect();
    var over = document.createElement('div');
    over.style.position = 'absolute';
    over.style.top =    rect.top+'px';
    over.style.left=    rect.left+'px';
    over.style.height = rect.height+'px';
    over.style.width=   rect.width+'px';
    return over;
}
var bar = createOverlap(document.getElementById('foo'));
bar.style.backgroundColor = 'rgba(255,0,0,0.3)';
document.body.appendChild(bar);

ええと、ここを下にスクロールしても違いはありません。それでも問題が解決しない場合は、問題に関する詳細情報が必要になります。

于 2013-03-22T18:21:29.863 に答える