2

これはばかげた質問かもしれませんが、この非常に単純なスクリプトを機能させることはできません。不透明度を1つ下げるボタンが必要です。クリックするたびに。

私はこれらすべてを試しました。

x.style.opacity-.3; //This doesn't work. Doesn't do anything.
x.style.opacity=.3; //This gives me an opacity of .3. 
x.style.opacity-=.3; //This gives an opacity of 0. Why?
x.style.opacity--; //This will give opacity of 0 as expected.

私もこれを試しました:

var timesTen = x.style.opacity*10;
timesTen--;
timeTen/10;
x.style.opacity=timesTen; // This gives opacity of 0;

この問題への答えは、演算子の理解不足と関係があると思います。しかし、私はたくさんの算術チュートリアルを見てきました、そしてそれらはすべて私にとって完全にうまくいく整数の例でいっぱいのようです。私はそれらのいくつかをコピーして貼り付け、番号を変更しただけで、それらが機能しなくなったことがわかりました。これが初心者の質問である場合は申し訳ありません(確かにそうです)。ありがとうございました

4

3 に答える 3

2
x.style.opacity = parseFloat(x.style.opacity) - 0.1;

どうしてそんなに難しいの?

于 2012-05-17T16:26:51.020 に答える
2
于 2012-05-17T16:29:54.593 に答える
0

It doesn't work because the x.style.opacity property doesn't exist at this time, it is just applied thanks to css. Here is a workaround:

HTML:

<div id="t" style="background: black; opacity: 1;">Hello</div>
<div id="c" style="background: black;">Hello</div>

JS:

document.getElementById( 't' ).onclick = function() {
    // This works
    this.style.opacity = this.style.opacity - 0.1;
};
document.getElementById( 'c' ).onclick = function() {
    var opacity = this.style.opacity;
    // If the property exists, just decrement it
    if ( opacity ) {
        opacity -= 0.1;
    }
    // Else, set it (it will only be set once)
    else {
        opacity = 0.9;
    }
};

Demo: http://jsfiddle.net/Ralt/xDFBY/

于 2012-05-17T16:31:38.123 に答える