有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);
}
答案 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);
答案 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);
}