[英]Angularjs Override ng-show ng-hide on :hover
我在模板中顯示了一系列“圖標”。
<div ng-repeat="data in items | orderBy:'-timestamp'">
<div class="icon">
<i>1</i>
<span>2</span>
</div>
</div>
我有以下css來顯示.icon
懸停並隱藏i
時的span
。
.icon:hover i { display: none; }
.icon:hover span { display: block; }
但是,我還希望能夠在$scope.options == true
時顯示每個span
實例。 所以我添加了以下內容:
<i ng-hide="options">1</i>
<span ng-show="options">2</span>
但是現在,我的:hover
已經破碎,並且最終沒有顯示span
。
有沒有辦法覆蓋ng-show
這樣我的css仍然會display:block
它時是否display:block
?
您可以跳過css並使用ng-mouseenter / ng-mouseleave讓角度處理它。 然后在第二個變量成立時使用or
顯示它。
HTML:
<div ng-repeat="data in items | orderBy:'-timestamp'">
<div ng-mouseenter="options=true" ng-mouseleave="options=false" class="icon">
<i ng-hide="options || checkbox">1</i>
<span ng-show="options || checkbox">2</span>
</div>
</div>
<input type='checkbox' ng-model="checkbox" ng-click="options=!options">Show
使用$scope.options
值將類添加到.icon
div,然后制定更具體的CSS規則來覆蓋:hover
事件。
<div class="icon" ng-class="{ override: $scope.options == true }">
<i ng-hide="options">1</i>
<span ng-show="options">2</span>
</div>
在你的CSS中:
.icon.override:hover i { display: block; }
.icon.override:hover span { display: block; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.