gpt4 book ai didi

javascript - 无法通过 javascript 添加不透明度过渡

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:56 25 4
gpt4 key购买 nike

基本上,我的最终目标是获得从左到右的淡入淡出的文本效果,经过几天的反复试验,我最终达到了这里。

该函数应该获取由类名确定的所有 div,循环遍历 div,并将每个 div 中的文本分配给一个字符串,然后遍历字符串中的每个字符并应用不透明度过渡效果。我试图让它工作,这样我就可以判断转换是否会与 for 循环迭代同时发生,或者循环是否会等到转换完成后再转到下一个字符,这不会让它到达我想要的位置。如果以某种方式就是这种情况,我正在考虑一个递归算法,如果它可能是 javascript(让循环转到下一个字符并在第一个转换达到一定百分比时开始转换,以便原始转换触发下一个等等)

<DOCTYPE! Html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<style> .text{opacity: 0;} </style>
<script>
function fadeDivs(){
var divs = document.getElementsByClassName("text");
for(i=0; i<divs.length(); i++){
var string = divs[i].text();
for(j=0; j<string.length(); j++){
var letter = string.charAt(j);
letter.style.transition = "opacity 1s ease 0s";
letter.style.opacity = 1;
}
}
}
</script>
</head>
<body onload="fadeDivs()">
<div class="text"> this text should appear from left to right </div>
<div class="text"> this text should appear from left to right </div>
</body>
</html>

更新的尝试:将从 1 变为 0,但不会从 0 变为 1。

<DOCTYPE! Html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<style>
.text{opacity:1;}
}</style>
<script>
function fadeDiv(string) {
$(string).each(function() {
var str = $(this).html();
str = str.trim().split("");
var newDiv = "";
for (var i = 0, end = str.length; i < end; i++) {
newDiv += '<span>' + str[i] + '</span>';}
$(this).html(newDiv);
});
}
$('document').ready(function() {
var str= $('.text');
fadeDiv(str);
$("span").each(function(i) {
$(this).animate({opacity:0},i*15);
});
});
</script>
</head>
<body>
<div class="text"> this text should appear from left to right </div>
<div class="text"> this text should appear from left to right </div>
</body>
</html>

最佳答案

更新:您的代码有一些错误:

使用 divs.length 而不是 divs.length(); & string.length 而不是 string.length();

因为长度是属性而不是方法

使用 var string = divs[i].innerHTML; 代替 var string = divs[i].text();

但你不应该走那么远,简单地使用:

function fadeDivs(){
var divs = document.getElementsByClassName("text");
for(i=0; i<divs.length; i++){
var string = divs[i];
string.style.transition = "opacity 1s ease 0s";
string.style.opacity = '1';
}
}

关于javascript - 无法通过 javascript 添加不透明度过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com