gpt4 book ai didi

javascript - 针对 Angular ng-show 和 ng-hide 的类

转载 作者:行者123 更新时间:2023-11-28 17:12:21 25 4
gpt4 key购买 nike

我已经创建了一个基本的 Angular slider 我正在考虑我是否显示使用 ng-classng-show 因为它代表我正在尝试创建淡入淡出过渡每个 json 对象都会更改。

我目前正在使用 ng-show 和 ng-hide,我正在努力上课以实现 css 转换,这是否可能,其次是练习吗? Plunkr

var timer;
$scope.startAuto = function() {
timer = $interval(function(){
$scope.jobNotification = ($scope.jobNotification + 1) % $scope.jobs.length;
}, 5000);
};

$scope.isActive = function (index) {
return $scope.jobNotification === index;

};

$scope.showJobNotification = function (index) {
if (timer){
$interval.cancel(timer);
$scope.startAuto();
}
$scope.jobNotification = index;
};

HTML

<ul class="tickrSlider">
<li data-ng-repeat="job in jobs" ng-class="{'jobActive' :isActive($index)}" ng-show="isActive($index)">
<h1>{{job.jobTitle}}</h1>
<p>{{job.sector}}</p>
<a href="/"></a>
</li>
</ul>

最佳答案

您在这里使用 Angular 没有任何问题,您只需要一点 CSS:

ul {
position:relative;
height:100px;
}

nav {
position:relative;
}

li {
position:absolute;
top:0;
opacity:0.0;
transition: opacity 2s;
}

.job-active {
opacity:1.0;
}

基本思想是给无序列表一些高度并使其位置相对,这样它将为列表项定义一个顶部并为它们遮挡一些屏幕空间。然后 Nav 元素将位于列表下方,列表项将全部放置在彼此之上。您必须小心确保列表的高度始终等于或大于最高的列表项,否则该元素将超出导航范围。这是因为列表项使用绝对定位在彼此之上绘制。使用 display:none 从布局中删除列表项将不起作用,因为不透明度过渡永远不会显示。

如果您想避免定义列表的高度,您可以尝试使用 CSS 动画和关键帧而不是过渡。

这是 my fork of your Plunker for experimentation .

请注意,CSS 中的约定是使用连字符 (-'s) 来分隔逻辑词,而不是 camelCase。我也在 HTML 中将 ng-class="jobActive" 更改为 ng-class="job-active"

关于javascript - 针对 Angular ng-show 和 ng-hide 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com