この情報をページに表示したい場合は、次のことをお勧めします。
$('img').hover(
function(){
var h = $(this).height(),
w = $(this).width();
$('<div />').insertAfter($(this)).text('height: ' + h + '; width: ' + w +'.');
},
function(){
$(this).next('div').remove();
});
JSフィドルデモ。
$(this)
CSSへの呼び出しを減らし、 CSSに結合することで、少しきれいにするためのほとんど無意味な編集:
$('img').hover(
function(){
var that = $(this),
h = that.height(),
w = that.width();
$('<div />')
.css('width',w)
.text('height: ' + h + '; width: ' + w +'.')
.insertAfter(that);
},
function(){
$(this).next('div').remove();
});
CSS:
div {
display: block;
position: relative;
}
div > div {
position: absolute;
top: 0;
left: 0;
color: #f90;
background-color: #000;
background-color: rgba(0,0,0,0.6);
}
JSFiddle
デモ。
jQueryはこの効果には実際には必要ないため(実装は単純化されますが)、編集されました。つまり、単純なJavaScriptの代替手段です。
var img = document.getElementsByTagName('img');
for (var i=0,len=img.length;i<len;i++){
img[i].onmouseover = function(){
var that = this,
h = that.offsetHeight,
w = that.offsetWidth,
p = that.parentNode,
d = document.createElement('div');
d.style.width = w + 'px';
d.textContent = 'Width: ' + w + '; height: ' + h + '.';
p.appendChild(d);
};
img[i].onmouseout = function(){
var that = this;
that.parentNode.removeChild(that.nextSibling);
};
}
JSFiddle
デモ。
最終編集(私は思う)、の互換性を思い出せなかったので、node.textContent
この修正はIEの下位バージョンとの互換性を助けるかもしれないと思った(/などdocument.createTextNode()
に依存する代わりに使用する...):node.textContent
node.innerText
var img = document.getElementsByTagName('img');
for (var i=0,len=img.length;i<len;i++){
img[i].onmouseover = function(){
var that = this,
h = that.offsetHeight,
w = that.offsetWidth,
p = that.parentNode,
d = document.createElement('div'),
text = document.createTextNode('Width: ' + w + '; height: ' + h + '.');
d.appendChild(text);
d.style.width = w + 'px';
p.appendChild(d);
};
img[i].onmouseout = function(){
var that = this;
that.parentNode.removeChild(that.nextSibling);
};
}
JSFiddle
デモ。
私はIE7以下を持っていませんが、上記は少なくともIE8では機能します。IE 6または7の機能についてコメントがあれば、興味があります。
参照:
「プレーン」JavaScript:
jQuery: