onclick
コマンドで画像を使用してボックスをフェードインしようとしています。しかし、私はなぜそれが動作していないとして失われています。idの問題で要素を取得しますか?
ご協力いただければ幸いです!ここでは、コードは次のとおりです。
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
#box { background:#999; width:500px; height:500px;opacity:0; }
</style>
</head>
<div id="box"><id="box"></div>
<div id="img"><img src="img.png" width="37" height="28" id="img"></div>
<script>
var elem = document.getElementById("img","box");
// attach event handler
"img".onclick = function(){
fadeIn("img", 400);
this.onclick = null;
};
function setOpacity(obj, value) {
if (obj) {
obj.style.opacity = value/100;
obj.style.filter = 'alpha(opacity=' + value + ')';
obj.style.zoom = 1;
}
}
// makes an element to fade in
function fadeIn(dom, interval, delay) {
interval = interval || 1000;
delay = delay || 10;
var opacity = 0,
start = Number(new Date()),
op_per_ms = 100/interval;
if (typeof dom === "string") {
dom = document.getElementById(dom);
}
function step() {
var now = Number(new Date()),
elapsed = now - start;
opacity = elapsed * op_per_ms;
setOpacity(dom, opacity);
if (elapsed < interval)
setTimeout(step, delay);
else
setOpacity(dom, 100);
}
setTimeout(step, delay);
}
</script>
[jQueryの](http://jquery.com/は)そんなに簡単です。要素をフェードインするには '$( '#someElement').fadeIn()'を使うだけです。できる場合は、このようなアニメーションにjQueryを使用することをお勧めします。そして、ところで、 ''は有効ではありませんHTML、 '" img ".onclick'は何ですか?あなたは 'elem'変数の全体のポイントとなる' elem.onclick'をすることになっています。 –
Nathan
さて、ここでは多くの問題があります。まず、 ''は有効なHTMLではありません。 getElementByIdはidという1つのパラメータのみをとります。 –
mowwwalker
'new Date()。getTime()'または '+ new Date()'は、ちょうど 'Number(new Date()) 'を使用するのと同様に機能します。次に、あなたは要素にではなく文字列に "イベントハンドラを添付"しています。 – Ryan