javascript - AngularJS 是一种可以代替 JQuery 用于动画的 "front-end"语言吗?

标签 javascript jquery angularjs html twitter-bootstrap

我正在与一个设计团队合作重新设计我的网站,我的首席开发人员让我告诉他们我想在 HTML 页面中使用 AngularJS 而不是 JQuery,因为它是干净的代码并且拥有最现代的库;他们同意使用。

我猜由于 AngularJS 比 JQuery 更新,他们对此没有太多经验。在项目范围内,我们同意他们只做“前端”工作(例如模板化 Bootstrap 、CSS/html 和网站动画)进行重新设计,但他们告诉我,他们团队中的某人说 AngularJS 是还有“后端”编程工作......这准确吗?

如果他们正在创建我的 HTML 页面,如果他们使用 AngularJS,他们是否必须进行“后端”编程工作,或者这只是“前端”工作?他们说他们必须使用 JQuery,因为这都是“前端”工作。

此外,他们还告诉我,对于特定的动画效果,例如元素的淡入和淡出等,他们希望使用 jQuery 和 Bootstrap。他们告诉我 AngularJS 不是动画的最佳解决方案,但它更适合操作网站的动态和实时信息......这准确吗?

在我看来,他们只是想找到不使用 AngularJS 并使用他们更熟悉的 JQuery 的方法。

最佳答案

AngularJS 中的动画可以使用它的一个名为 ngAnimate 的模块来实现,它通过向 HTML 元素添加 CSS 类来工作,但是您需要自己编写这些类,并且您将使用 CSS3 动画比 JQuery 动画更好性能,并且只需要纯 CSS。这是我一开始使用的,它似乎对我来说效果很好。然而,我发现,当我开始制作更复杂的动画时,我的 CSS 规则变得越来越大,特别是因为您必须在大多数 CSS 前面加上 -webkit -moz -o 等前缀。

此时我已准备好尝试替代方案,但我不想回到 jQuery。我发现的是GSAP 。它是一个非常强大且方便的动画 JavaScript 库,我可以使用指令将它完美地集成到 Angular 中。例如,我的一个项目中有这个:

    .directive('highlight', function() {
        return {
            scope: {},
            restrict: 'A',
            link: function(scope, element) {

                element.on('mouseenter', function() {
                    TweenMax.to(element, 0.5, {
                        color: '#000',
                        borderColor: '#000',
                        backgroundColor: '#F2F2F2'
                    });
                });
                element.on('mouseleave', function() {
                    TweenMax.to(element, 0.5, {
                        color: '#BDBDBD',
                        borderColor: '#BDBDBD',
                        backgroundColor: '#FFF'
                    });
                });
            }
        };
    })

如果我的 HTML 中有一个形状像按钮的链接,那么就像书写一样简单

<button highlight></button>

我有一个带有动画边框、文本颜色和背景颜色的按钮。此外,它是可重复使用的。我不必为 DOM 中的每个按钮编写突出显示规则。我只需添加属性highlight

jQuery 可以工作,但它的动画很糟糕。 Angular 更好,但它很冗长,而且我个人不喜欢实现它。我倾向于 GSAP,因为它非常强大和灵活,同时还能为您的动画提供最佳性能。

关于javascript - AngularJS 是一种可以代替 JQuery 用于动画的 "front-end"语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034768/

相关文章:

javascript - Angular JS - 当文本字段失去焦点时显示验证错误

javascript - 我可以直接从 React 中的 JSX/TSX 调用 HOC 吗?

javascript - HTML DOM 选择器更新后的 jQuery 调用

jquery - 响应式站点上带有推子的奇怪 CSS 定位问题

javascript - 从非未显示的 UL 中选择 LI 子项

javascript - Angularjs UI 模态表单

JavaScript/Typescript 'this' 范围

javascript - 变量 javascript 的快照

javascript - AngularJS 2 路绑定(bind)未更新

javascript - angular js 从 $http 获取变量是服务