角度视差 - jquery到角度

use*_*271 6 angularjs

我有这个代码在jquery中工作

<script type="text/javascript">
    $(window).on('scroll', function () {
        console.log($(window).scrollTop());
        $('.parallax-background').css('top', '' + ($(window).scrollTop() / 5) + 'px');
    });
</script>
Run Code Online (Sandbox Code Playgroud)

而我正试图把它翻译成棱角分明,这是我认为它应该是但它不起作用?

angular.module('twtscrollApp')
    .controller('MainCtrl', function ($scope, $window) {
        $window.on('scroll', function () {
            angular.element('.parallax-background').css('top', '' + ($window.scrollTop() / 5) + 'px');
        });
    });
Run Code Online (Sandbox Code Playgroud)

我没有得到任何joshing错误,但它不工作,如果需要可以做一个jfiddle,但任何帮助赞赏.谢谢.

Bro*_*cco 2

你所拥有的不起作用的原因是因为 angular.element 不能通过 jQuery 选择器工作,它只能通过标签名称工作。文档

为了得到你必须工作的东西,你必须改变

angular.element('.parallax-background')
Run Code Online (Sandbox Code Playgroud)

到:

angular.element(document.getElementsByClassName('.parallax-background')[0])
Run Code Online (Sandbox Code Playgroud)

建议/推荐的解决方案:

话虽如此,您确实应该考虑通过指令而不是在控制器中执行此操作,因为它是放置 DOM 操作的适当位置。