Я хочу создать тикер валюты. Запрос извлекает значения из yahoo Finance API и отображает их как текст. Основная проблема - это пробел в конце текста. Шаблон выделения marquee plugin решает проблему разрыва. SetInterval разрушает движущийся текст, потому что он начинается с начала.валютный тикер без пробела
$(document).ready(function() {
//StockPriceTicker();
setInterval(StockPriceTicker, 5000);
});
function StockPriceTicker() {
var Symbol = "",
CompName = "",
Price = "",
ChnageInPrice = "",
PercentChnageInPrice = "";
var CNames = "^FTSE,HSBA.L,SL.L,BATS.L,BLND.L,FLG.L,RBS.L,RMG.L,VOD.L";
var flickerAPI = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + CNames + "%22)&env=store://datatables.org/alltableswithkeys";
var StockTickerHTML = "";
var StockTickerXML = $.get(flickerAPI, function(xml) {
$(xml).find("quote").each(function() {
Symbol = $(this).attr("symbol");
$(this).find("Name").each(function() {
CompName = $(this).text();
});
$(this).find("LastTradePriceOnly").each(function() {
Price = $(this).text();
});
$(this).find("Change").each(function() {
ChnageInPrice = $(this).text();
});
$(this).find("PercentChange").each(function() {
PercentChnageInPrice = $(this).text();
});
StockTickerHTML += "<span>" + CompName + " " + Price + "</span>";
});
$(".marquee div").html(StockTickerHTML);
//$("#dvStockTicker").jStockTicker({interval: 30, speed: 2});
});
}
body {
margin: 20px;
}
.marquee {
height: 25px;
width: 420px;
overflow: hidden;
position: relative;
}
.marquee div {
display: block;
width: 200%;
height: 30px;
position: absolute;
overflow: hidden;
animation: marquee 5s linear infinite;
}
.marquee span {
float: left;
width: 50%;
}
@keyframes marquee {
0% {
left: 0;
}
100% {
left: -100%;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="marquee">
<div>
</div>
</div>
Спасибо заранее.
трудно без чего-то, что на самом деле работает, хотя одна вещь, которую я сразу же реагирует на это '.marquee пядь { плыть налево; ширина: 50%; } '. Удалите «width: 50%» или измените его на. .marquee span {display: inline-block; } 'может решить вашу проблему, так как это приведет к тому, что' span' отрегулирует его содержимое. – LGSon
Я знаю, что много пробовал, не повезло. Надеюсь, кто-то может помочь. –
Не могли бы вы сообщить мне, что не работает с ответом дано, так что я смогу настроить и вас принять? – LGSon