Javascript落字母:每隔一个字母方向不同
Javascript falling letters: Every other letter different direction
我很难找到一种方法来插入落字母到我的代码。我的任务是有一个文本字符串,让所有偶数位置的字母从顶部掉下来,奇数位置的字母从底部飞起来,聚集在一起形成中间的字符串。
例如:<span class="uName">John Doe</span>
我希望字母:O, N, D, E从上面掉下来。
同样:jh_ O从底部飞起来。(保持各自的水平位置)。
这是我到目前为止所拥有的,但是我对JavaScript/JQuery相当缺乏经验,我无法让它运行。
vertical = new Array(80);
var textPos = 0;
for(var i = 0; i < 80; ++i) {
vertical[i] = textPos;
textPos += 5;
}
function poz(){
document.getElementsByClassName("tops").style.top = '0px';
document.getElementsByClassName("bottoms").style.bottom = '0px';
animate();
}
function animate(){
for(var j = 0; j < 80; ++j) {
document.getElementsByClassName("tops").style.top = vertical[j] + "px";
document.getElementsByClassName("bottoms").style.bottom = vertical[j] + "px";
}
}
$('.uName').each(function(){
var letters = $(this).text().split('');
$(this).text('');
for(var i = 0; i < letters.length; i++){
if(i % 2 == 0){
$(this).append('<span class="tops">' + letters[i] + '</span>');
}
else{
$(this).append('<span class="bottoms">' + letters[i] + '</span>');
}
}
poz();
});
提前感谢!
注:如果这个任务可以用CSS3实现,我更喜欢这个选项,但我不确定它是否可能。
//css
.bottoms{
margin-top:200px!important;
}
//脚本 vertical = new Array(80);
var textPos = 0;
for(var i = 0; i < 80; ++i) {
vertical[i] = textPos;
textPos += 5;
}
function poz(){
// $(".tops").css('top','0px');
// $(".bottoms").css('bottom','0px');
//document.getElementsByClasjqsName("bottoms").style.bottom = '0px';
animate();
}
function animate(){
for(var j = 0; j < 80; ++j) {
//alert(vertical[j]);
//$(".tops").css('top',vertical[j]+'px');
//$(".bottoms").css('bottom',vertical[j]+'0');
if(vertical[j]<101){
$(".tops").animate({top:vertical[j]+'px'},500);
$(".bottoms").animate({bottom:vertical[j]+'px'},500);
$(".tops").css('position','relative');
$(".bottoms").css('position','relative');
$(".tops").css('float','left');
$(".bottoms").css('float','left');
}
// document.getElementsByClassName("tops").style.top = vertical[j] + "px";
// document.getElementsByClassName("bottoms").style.bottom = vertical[j] + "px";
}
}
$('.uName').each(function(){
var letters = $(this).text().split('');
$(this).text('');
for(var i = 0; i < letters.length; i++){
if(i % 2 == 0){
$(this).append('<span class="tops">' + letters[i] + '</span>');
}
else{
$(this).append('<span class="bottoms">' + letters[i] + '</span>');
}
}
poz();
});
//新建提琴链接http://jsfiddle.net/PP44C/7/
现在一切都如你所愿了。检查相关文章:
- jquery脚本只能在一个方向上正常工作
- JQuery后台位置似乎只在一个方向上起作用
- HTML5 JS-我如何使我的子弹/镜头在一个恒定的方向
- 有人能为我指明正确的方向,让一个javascript文件在另一个单独的javascript文件之后运行吗
- 在CSS的未来版本中,仅固定了一个方向的位置
- 使用 JavaScript 触发 CSS 动画淡入和淡出 - 仅适用于一个方向
- 柔性滑动器2在一个方向上继续循环而不工作
- Phaser Box2d-在一个方向上锁定拖动
- jQuery悬停在图像上,一个方向运行良好,另一个方向跳动
- Cordova屏幕锁定方向不是一个功能
- 在一个角度的方向上移动精灵
- 如何在移动应用程序上仅在一个页面上锁定方向
- Nivo Slider滑动解决方案(不总是在一个方向上滑动)
- 让一个箭头指向另一个标记的方向
- HTML画布以恒定的速度在一个方向上移动一个对象
- JQuery图像旋转动画,工作在一个方向,而不是另一个
- 只允许向一个方向拖动ng-drag元素
- 如何使圆形旋转滑块只改变一个方向
- 有没有办法在一个方向上缩放图像
- 仅在一个方向上移动的插件幻灯片