angularjs:动态更改样式失败

ahwyX100

我遇到了一个问题,一个div是由控制器中设置的值控制的,如果该值为true,则显示它,它的值为false,然后隐藏它。该值由滚动事件控制。html代码如下:

<body ng-app="app" ng-controller="controller">
    <div class="round" ng-style="{'display':isRoundShow?'inline':'none'}"></div>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
    <h1>Hello Plunker!</h1>
</body>

控制器部分如下:

angular.module('app', [])

.controller('controller', function($scope) {
    $scope.isRoundShow = false;

    window.onscroll = function() {
      var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
      if(scrollTop > 50) {
        $scope.isRoundShow = true;
      }else{
        $scope.isRoundShow = false;
      }
    }
})

CSS定义是:

.round {
    width : 40px;
    height: 40px;
    background-color: #FF0000;
    border-radius: 50%;
    position: fixed;
    left: 10px;
    top: 10px;
}

现在我想知道为什么当我滚动时,圆形div从不显示,我在这里构建了一个插件:https ://plnkr.co/edit/u8RHyCMYRR5L8BwouOkg ? p = preview

丹尼尔·道斯

这是因为您正在作为DOM事件的一部分来更改值,并且不会触发角度中的摘要循环。我建议找到一种更好的方式以“角度”的方式来完成您要达到的目标,但是就目前而言,您可以$apply()按照我的要求使用来强制进行摘要

https://plnkr.co/edit/ihbiRtGebrIH81uqa6L3?p=preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angularjs:动态更改样式失败

来自分类Dev

元素的动态更改样式(DomIcon)

来自分类Dev

React native-动态更改样式

来自分类Dev

AngularJs:单击div时更改样式

来自分类Dev

如何使用AngularJS更改样式?

来自分类Dev

AngularJs:单击div时更改样式

来自分类Dev

如何动态更改样式化组件的样式?

来自分类Dev

从javascript更改样式

来自分类Dev

ASP.NET-动态更改样式表

来自分类Dev

javafx:在窗格上动态更改样式

来自分类Dev

使用React备忘录动态更改样式

来自分类Dev

动态更改样式表规则选择器

来自分类Dev

以编程方式更改样式

来自分类Dev

从代码后面更改样式

来自分类Dev

在Word中更改样式

来自分类Dev

javascript onclick更改样式

来自分类Dev

如何通过具有反应钩子的onClick动态更改样式?

来自分类Dev

角度-如何根据每个值在FormBuilder中动态创建的输入上更改样式?

来自分类Dev

在网站上的任何地方动态更改样式表onclick

来自分类Dev

在ModelView中更改样式(MVVM + WPF)

来自分类Dev

Notepad ++更改样式控制台

来自分类Dev

ACF Google Map-更改样式?

来自分类Dev

mytoolkit:FixedHtmlBlock更改样式,xaml

来自分类Dev

从代码更改样式(在ResourceDictionary中)

来自分类Dev

用:after用jquery更改样式

来自分类Dev

在滚动上反应NavBar的更改样式

来自分类Dev

如何防止Safari更改样式?

来自分类Dev

JavaScript click事件未更改样式

来自分类Dev

更改样式表的paintEvent颜色?