角度 - 简单的打字机效果?

时间:2014-07-22 19:07:27

标签: javascript angularjs

a beautiful typewriter directive already written,但我正在寻找更简单的东西,只是在间隔后添加每个字母。我不能让这个工作。它一次显示文本。 $ timeout出了点问题。有没有人有什么建议?

var time = 1000;
var addLetter = function(i) {
    $scope.string2 = $scope.string.substr(0, i);
};
for (var i = 0, len = $scope.string.length; i < len; i++) {
    (function(time) {
        $timeout(function() {
            addLetter(i);
        }, (time + 300));
    })(i);
}

2 个答案:

答案 0 :(得分:3)

这是另一种方式。

var content = "contentcontentcontentcontentcontentcontentcontentcontentcontentcontentcontent";

$scope.type = "";
var i=0;

var timer = $interval(function(){
    if(i<content.length)
        $scope.type += content[i];
      else
        $interval.cancel(timer);

     i++; 
     $scope.$apply();
}, 100); 

信用:https://gist.github.com/frozonfreak/8018689

演示:http://plnkr.co/edit/BILaWVuNpao2zcIInXLl?p=preview

答案 1 :(得分:0)

更新 - 这对我有用,不确定它是否更有效......

var time = 0;
var addLetter = function(i) {
    $scope.string2 = $scope.string.substr(0, i);
};
for (var i = 0, len = $scope.string.length; i < len + 1; i++) {
    time = time + 50;
    (function(time, i) {
        $timeout(function() {
            addLetter(i);
        }, (time));
    })(time, i);
}