私は現在、他のQ/Aを見ていてもしばらくは解決できないという問題がありました。ng-mouseover&ng-mouseleaveのボタンが期待通りに表示されない - AngularJS
ng-show
のボタンから別のボタンに切り替えたいと思います。
ng-mouseover
トリガーが、私は現在のボタン、button-db
を隠し、2つ目を表示したいと思い 、ng-mouseleave
トリガーが、私はbutton-shout
を隠し、button-db
を示す、反対のことをしたいと思っbutton-shout
。私はすでに次のコードでこの作業を行うことができるよ
:
HTML:
<div class="footer">
<div ng-show="hoverEdit" class="half button-db"
ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">
<span class="shout-value">200</span>
</div>
<div ng-show="!hoverEdit" class="half button-shout"
ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">
<div class="icon-over" ng-src="./assets/css/img/logo-white-m.png"
style="width: 29px; height: 21px;"></div>
</div>
<div class="half button-action">
<span class="icon-cart" ng-src="./assets/css/img/icon-cart.png"
style="width: 29px; height: 21px;"></span>
</div>
</div>
JS:上記のコードでは
$scope.hoverEdit = true;
$scope.hoverIn = function(){
$scope.hoverEdit = false;
};
$scope.hoverOut = function(){
$scope.hoverEdit = true;
};
私は次のスターター状況を得ることができます:
ng-mouseover
トリガは、button-db
(パープル長方形)が隠されます右
そして、私はそれをしたいと思い、上
左側の
button-db
とbutton-action
button-shout
(〜緑の四角形ながら、別のイメージ)が表示され、その逆も同様です(実際には動作しています)。私は何を達成しようとしている -
button-db
の場所のままに>
をbutton-shout
しかし、その代わりに、私は次のような結果を得る:代わりに、私が
button-db
を訪れたとき、私はの代わりにこの空白のdivを取得します
button-shout
は示されません、それはDOMに存在しないと、それは私が他のボタンで行ったようにそれを構築するために管理していてもheight
とwidth
を持っていません。私は、次のCSSクラスを使用しています:
半分は、ボタン-DBはとの両方
:before
と:after
を持って.pod .footer .half { display: table-cell; padding-top: 1px; padding-left: 8px; padding-right: 8px; vertical-align: middle; height: 45px; }
をボタンに寸法を与え、自分の位置を設定し、小さな画像とその間に
int number
を扱うshout-value
.pod .footer .button-db { background-color: #6ab5ac; text-align: center; color: #fff; background-color: #6455a0; } .pod .footer .button-db .shout-value { margin-top: 0px; padding: 2px; color: #fff; display: inline-block; position: relative; font-size: 18px; font-weight: 600; line-height: 22px; } .pod .footer .button-db .shout-value:before { content: ""; display: inline-block; background-image: url("./assets/css/img/shout-megaphone-white.svg"); background-size: contain; background-position: center; background-repeat: no-repeat; width: 30px; height: 23px; position: absolute; left: -17px; top: 0px; } .pod .footer .button-db .shout-value:after { content: ""; background-image: url("./assets/css/img/shout-db-white.svg"); background-size: contain; background-position: right center; background-repeat: no-repeat; width: 28px; height: 27px; position: absolute; right: -19px; top: -1px; vertical-align: super; font-size: 12px; display: inline-block; padding: 0; padding-top: 0px; font-weight: 500; } .pod .footer .button-db .shout-value .db { vertical-align: super; font-size: 10px; display: inline-block; padding: 0; } .pod .footer .button-db .db-value { margin-top: 0px; padding: 2px; color: #fff; display: inline-block; position: relative; font-size: 18px; font-weight: 600; line-height: 22px; } .pod .footer .button-db .db-value:after { content: "dB"; background-image: none; width: 28px; height: 23px; position: absolute; right: -19px; top: 0px; vertical-align: super; font-size: 12px; display: inline-block; padding: 0; padding-top: 0px; font-weight: 500; }
ボタンシャウトボタンが表示されるときに表示されるボタン
ng-mouseover
トリガー;これは、任意の:before
と:after
を必要としない、それだけで1枚の画像なし値.pod .footer .button-shout { background-color: #6AB6AC; text-align: center; font-size: 18px; font-weight: 500; color: #fff; line-height: 30px; }
ボタンアクションカートボタンがあり、
button-shout
はかなりそれのように見えるが、色や画像ためでしょう.pod .footer .button-action { background-color: #ffae00; text-align: center; font-size: 18px; font-weight: 500; color: #fff; line-height: 30px; }
ng-mouseover
とng-mouseleave
の両方を使用して実装した機能は、必要に応じて完全に機能します。なぜbutton-shout
に次元がなく、ng-mouseover
を実行するとbutton-db
の場所に表示されません。私はすでに
display: block
&、ng-if
を使用して、クラスの追加や削除、z-index
を使用してdisplay: none
みましたが、私はいつもこの問題を取得します。
button-shout
はhalf
の配置を除いて何も継承していません。Here is a little Plunkerどのように動作するかを理解できるように、2つのボタンだけを載せています。それはPlunkerで動作しますが、私のアプリケーションでは動作しません。
mouseover
がトリガーすると、1つのボタンが非表示になり、もう1つが表示され、mouseleave
がトリガーされると、古いものが表示されます。1)なぜ正しく表示されないのですか?
2)これはどのように修正できますか?
私はできるだけ明確にして欲しいと思っています。ありがとうございます。
の代わりに、このようにそれをやって、あなただけのイメージのパスを変更することができますが、NG-SRCを使用している覚えて、あなたが= {{MYPATH}}このNG-SRCを行うことができます。..して、 on mouseenter/mouseleave update $ scope.myPath – MayK
私はすでにそれを試みましたが、私はいつも同じ結果を得ています。 – AndreaM16
これを行うのが最善の方法ですが、あなたが主張するならば...私はこれで混乱しています
– MayK