javascript - 使用 ngClass 对随机 CSS 变化进行动画处理

标签 javascript css angularjs ng-class

我试图通过以随机间隔选择一个随机类来“动画化”div 的 css。目前我正在使用一个递归函数,如下所示:

$scope.spin = function() {
  console.log('spinning');
  var maxCycle = 100;
  var currentCycle = 0;

  recursiveRandomChange();

  function recursiveRandomChange() {
    if (currentCycle <= maxCycle) {
      currentCycle += 1;
      console.log(currentCycle);
      $interval(blockOne(), getRandomTime());
      recursiveRandomChange();
    }
  }

  function blockOne() {
    var currentClass = getRandomClass();
    $scope.engine.one = currentClass;
    console.log('changing color ', currentClass);
  }

};

正如你所看到的,它只允许 100 个周期,但它应该在每次间隔结束时将“blockOne”的类 ($scope.engine.one) 设置为随机类。我可以在控制台日志中看到代码正确运行,但它不是随机循环 100 个随机类,而是只更改一次(从原始颜色到第 100 次迭代时随机选择的类)。

如有任何建议,我们将不胜感激。谢谢!

最佳答案

检查这个:http://jsfiddle.net/pfgkna8k/4/
在 recursiveRandomChange 中,您也递归地调用 recursiveRandomChange 并使用 $interval 。 $interval 本身是递归的。

angular.module('lists', []).controller('ProductList', function($scope, $interval) {
    var getRandomTime = function() {
        return 1000;
    };

    $scope.spin = function() {
        console.log('spinning');
        var maxCycle = 100;
        var currentCycle = 0;

        recursiveRandomChange();

        function recursiveRandomChange() {
            if (currentCycle <= maxCycle) {
                currentCycle += 1;
                console.log(currentCycle);
                $interval(blockOne, getRandomTime());
                //recursiveRandomChange();
            }
        }

        function blockOne() {
            var currentClass = getRandomClass();
            //$scope.engine.one = currentClass;
            var element = document.querySelector("#test");
            element.className = currentClass;
            console.log('changing color ', currentClass);
        }

        function getRandomClass() {
            var classes = ["abc", "abc1", "abc2", "abc3"];
            return classes[Math.round(Math.random() * 3)];
        }

    };
    $scope.spin(); 
});

关于javascript - 使用 ngClass 对随机 CSS 变化进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31364099/

相关文章:

javascript - 如何在单击按钮时水平添加输入框

javascript - 单击时jquery改变颜色

javascript - 两种方式的数据绑定(bind)在 AngularJS 中不起作用

javascript - AngularJS 中的多个独立部分

javascript - 具有一个路由器组件和一个菜单的动态 Vue 路由

javascript - 警报在打包的应用程序中不起作用

php - 如何更改JSON输出格式以及如何支持汉字?

javascript - 将 HTML 范围输入轨道划分为多个部分

javascript - 在 div 向下滚动时加载结果

angularjs - 在heroku上上传时,如何将 "view engine to ejs"更改为Node js中的其他内容