ng-hide 不适用于滚动事件
ng-hide isn't working with scroll event
我一直在尝试在滚动事件上使用 ng-hide。
我是这样用的
angular.module('myApp')
.controller('MyCtrl', function ($scope,$window) {
$scope.name={
White:false,
Crimson:true
}
$scope.swapColor=function(){
if($window.scrollY>648){
console.log("Hide White");
$scope.name.White=true;
$scope.name.Crimson=false;
}
else{
console.log("Hide Crimson");
$scope.name.White=false;
$scope.name.Crimson=true;
}
}
angular.element($window).on('scroll',$scope.swapColor);
});
在 index.html 我有这个
<div ng-hide="name.White"><img src="images/nameWhite.png" class="img-responsive nameWhite"></div>
<div ng-hide="name.Crimson"><img src="images/nameCrimson.png" class="img-responsive nameCrimson"></div>
问题是该函数在滚动时被调用,因为我可以在控制台中看到隐藏深红色和隐藏白色,但是白色 div 没有隐藏,深红色也没有出现。
如有任何帮助,我们将不胜感激!!
这是您的问题的一个工作示例
试试这个
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope,$window) {
$scope.name={
White:false,
Crimson:true
}
$scope.swapColor=function(){
if($window.scrollY>648){
//console.log("Hide White");
$scope.name.White=true;
$scope.name.Crimson=false;
}
else{
//console.log("Hide Crimson");
$scope.name.White=false;
$scope.name.Crimson=true;
}
if (!$scope.$$phase) {
$scope.$apply();
}
}
angular.element($window).on('scroll',$scope.swapColor);
});
</script>
</head>
<body ng-app="myApp" ng-controller="myCtrl" style="height: 2470px">
<div ng-hide="name.White" style="position: fixed;">
IMG 1
</div>
<div ng-hide="name.Crimson" style="position: fixed;">
IMG 2
</div>
</body>
</html>
我一直在尝试在滚动事件上使用 ng-hide。 我是这样用的
angular.module('myApp')
.controller('MyCtrl', function ($scope,$window) {
$scope.name={
White:false,
Crimson:true
}
$scope.swapColor=function(){
if($window.scrollY>648){
console.log("Hide White");
$scope.name.White=true;
$scope.name.Crimson=false;
}
else{
console.log("Hide Crimson");
$scope.name.White=false;
$scope.name.Crimson=true;
}
}
angular.element($window).on('scroll',$scope.swapColor);
});
在 index.html 我有这个
<div ng-hide="name.White"><img src="images/nameWhite.png" class="img-responsive nameWhite"></div>
<div ng-hide="name.Crimson"><img src="images/nameCrimson.png" class="img-responsive nameCrimson"></div>
问题是该函数在滚动时被调用,因为我可以在控制台中看到隐藏深红色和隐藏白色,但是白色 div 没有隐藏,深红色也没有出现。
如有任何帮助,我们将不胜感激!!
这是您的问题的一个工作示例
试试这个
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope,$window) {
$scope.name={
White:false,
Crimson:true
}
$scope.swapColor=function(){
if($window.scrollY>648){
//console.log("Hide White");
$scope.name.White=true;
$scope.name.Crimson=false;
}
else{
//console.log("Hide Crimson");
$scope.name.White=false;
$scope.name.Crimson=true;
}
if (!$scope.$$phase) {
$scope.$apply();
}
}
angular.element($window).on('scroll',$scope.swapColor);
});
</script>
</head>
<body ng-app="myApp" ng-controller="myCtrl" style="height: 2470px">
<div ng-hide="name.White" style="position: fixed;">
IMG 1
</div>
<div ng-hide="name.Crimson" style="position: fixed;">
IMG 2
</div>
</body>
</html>