将jQuery Hover转换为Angular
Convert jQuery Hover to Angular
我正在尝试将一段代码从jQuery转换为Angular,由于我是超级新手,我不确定我是否这样做是正确的。
下面是jquery代码:$('ul.nav li.dropdown').hover(function(){
$(this).find('.dropdown-menu').stop(true, true).delay(300).fadeIn();
}, function(){
$(this).find('.dropdown-menu').stop(true, true).delay(300).fadeOut();
});
它的作用是当我将鼠标悬停在导航项上时,div会淡入。
这是我尝试过的,但是什么都没有发生:
angular.module("headToggle", ["ngAnimate"]).animation(".management-settings", function(){
return{
enter: function(element, done){
element.css("display", "none");
element.fadeIn(200, done);
return function(){
element.stop();
};
},
leave: function(element, done){
element.fadeOut(200, done);
return function(){
element.stop();
};
}
};
});
我做错了什么?我做的是不是太过分了?
你不需要Angular,你可以用纯CSS来完成:
.management-settings {
opacity: 0;
transition: opacity 200ms;
}
.management-settings:hover {
opacity: 1;
}
关于过渡的完整文档可以在这里找到:使用CSS过渡
我认为你需要在element.css()
上链接一个动画,例如:
element.css({'opacity', '0'}).animate({'opacity', '1'}, 200, done);
这也可以通过ng-mouseover来改变绑定到ng类的布尔变量,例如:<div class=".dropdown-menu" ng-mouseover="hovered = true" ng-class={'is-hovered': hovered}></div>
然后在你的css中:
`.dropdown-menu{
transition: opacity 200ms linear;
opacity: 0;
}
.dropdown-menu.is-hovered{
opacity: 1;
}`
前面的答案是正确的,你可以使用angular的内置指令和纯css,而不必自己编写任何JS
Arg,我没有代表回复你对上一篇文章的评论,但你可以使用css属性transition-delay相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 无法在Angular.js中将JSON转换为数组
- 如何在angular js中将double转换为int
- 将angular变量{{$index+1}}转换为javascript整数
- 将我的网站转换为使用 Angular JS
- Spring:从JSTL(forEach)转换为angular.js(ng repeat)
- 如何在angular js中从github获取原始自述文件后将其转换为html格式的文档
- 如何在Angular JS中将obj转换为字符串
- Angular 1.2.x ng隐藏和ng显示css转换
- 将jquery插件转换为指令angular
- Angular JS具有在状态转换期间可见的来自两个不同状态的页面(用于动画目的)
- angular js文本到语音转换api
- 如何将此函数转换为 Angular 指令
- 将服务字符串参数转换为数组的 Angular 内部
- 将jQuery转换为Angular,固定侧边栏不起作用(?)
- 在 Angular 中将 JSON 格式字符串转换为真实对象
- 尝试将jquery插件转换为Angular Directive
- 将 jquery 插件转换为 Angular 指令
- Angular转换不能在两个控制器之间工作
- 将rest API调用从angular转换为jQuery