5

これは説明できません。ボタンのdivがあります。私は:active psuedoクラスとposition:relativeを使用します。クリックしたときに少し下と右に移動して、アニメーションを作成します。何らかの理由で、Chromeのこのボタンには、テキストとボタンの端のほぼ中間に小さなデッドスペースがあります。psuedoクラスは引き続き起動しますが、ボタンのJavascriptは起動しません。相対位置を削除すると、問題は解決します。これはFirefoxでも発生しますが、Firefoxのデッドスペースは、ボタンが邪魔にならないように移動する端にあります。これは理にかなっていますが、修正する必要もあります。

問題を示すためにJSFiddleを作成しました:http://jsfiddle.net/dillydadally/CUHA7/6/

なぜこれが起こっているのか考えていますか?それを修正する方法はありますか?

4

1 に答える 1

5

CSS。それはマージンのためです:10px; #btn

編集

onclickではなくonmousedownを使用すると、機能します。

説明:

疑似クラスは、onClickの前にアクティブ化されています。:activeの値を2pxから20pxに変更した場合。ボタンの中央をクリックしている場合でも、これが発生していることがわかります。

したがって、:activeによって設定されたleftとtopの新しい値の後、マウスはdivの上になくなり、クリックを登録できなくなります(を押して放します)。

ただし、onmousedownは、マウスのボタンのリリースに依存しないため、引き続きトリガーされます。

于 2012-08-10T07:04:29.927 に答える