【发布时间】:2015-07-12 08:44:12
【问题描述】:
我想使用这个现有的 js 创建一个水平滚动条,以便我的数组滚动条与我页面上的其他单行新闻滚动条具有相同的动画和功能。
目前我的 js 将我的 3 li 转换为一个数组,然后将它们集中在一起并将它们作为一个块在股票行情的宽度上滚动。
$(document).ready(function() {
var block_text = $('.ticker li').map(function() { return $(this).html();}).toArray();
$(".ticker").html("<p>" + block_text + "</p>");
var ticker_text = $('.ticker p');
var ticker_width = $(".ticker").width();
var text_x = ticker_width;
scroll_ticker = function() {
text_x--;
ticker_text.css("left", text_x);
if (text_x < -1 * ticker_text.width()) {
text_x = ticker_width;
}
}
setInterval(scroll_ticker, 10);
});
#iFeatures {
position: absolute;
width: 76%;
height: 73px;
left: 0;
bottom: 126px;
background-color: rgba(0,39,62,.85);
}
.ticker {
position: absolute;
top: 25%;
left: 40px;
right: 10px;
bottom: 10%;
overflow: hidden;
}
.ticker p {
position: relative;
top: 0;
white-space: nowrap;
width: auto;
color: white;
}
.ticker a {
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="iFeatures">
<div class="ticker">
<li><a href="##">This is a test ticker 1.</a></li>
<li><a href="##">This is a test ticker 2.</a></li>
<li><a href="##">This is a test ticker 3.</a></li>
</div>
</div>
在此处查看演示:https://jsfiddle.net/9va9r3n4/1/
我想做的是不断循环遍历这个数组,并以与原始块动画相同的方式为每个 li 设置动画。这是我尝试创建一个 for 循环来执行此操作,但它不起作用。
var myStringArray = $('.ticker li').map(function() { return $(this).html();}).toArray();
var arrayLength = myStringArray.length;
var ticker_width = $(".ticker").width();
for (var i = 0; i < arrayLength; i++) {
alert(myStringArray[i]);
//Do something
scroll_ticker = function() {
ticker_width--;
i.css("left", ticker_width);
}
setInterval(scroll_ticker, 10);
}
#iFeatures {
position: absolute;
width: 76%;
height: 73px;
left: 0;
bottom: 126px;
background-color: rgba(0,39,62,.85);
}
.ticker {
position: absolute;
top: 25%;
left: 40px;
right: 10px;
bottom: 10%;
overflow: hidden;
}
.ticker p {
position: relative;
top: 0;
white-space: nowrap;
width: auto;
color: white;
}
.ticker a {
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="iFeatures">
<div class="ticker">
<li><a href="##">This is a test ticker 1.</a></li>
<li><a href="##">This is a test ticker 2.</a></li>
<li><a href="##">This is a test ticker 3.</a></li>
</div>
</div>
在这里进行演示:https://jsfiddle.net/9va9r3n4/
欢迎所有可能帮助我完成此任务的建议。
【问题讨论】:
标签: javascript jquery arrays loops for-loop