前幾天,我需要類似於您的問題的東西。我很快意識到,選取框不是一個標準元素,所以你不能在跨瀏覽器的解決方案中使用它。
我已經提取的動畫部分,基於jQuery,我在我的解決方案中使用,你可以看到在這個jsFiddle
HTML效果
<div id="container">
<div id="mytext">
this is a simple text to test custom marquee
</div>
</div>
CSS
#container
{
display: inline-block;
background-color: #cccccc;
width: 100px;
height: 100px;
overflow: hidden;
}
#mytext
{
display: inline-block;
position: relative;
white-space: nowrap;
}
JavaScript
$(function() {
var txt = $("#mytext");
txt.bind('scroll', function() {
var el = $(this);
// Scroll state machine
var scrollState = el.data("scrollState") || 0;
el.data("scrollState", (scrollState + 1) % 4);
switch (scrollState) {
case 0: // initial wait
el.css({ left: 0 });
el.show();
window.setTimeout(function() {
el.trigger("scroll");
}, 5000);
break;
case 1: // start scroll
var delta = el.parent().width() - el.width();
if (delta < 0) {
el.animate({ left: delta }, 2000, "linear", function() {
el.trigger("scroll");
});
}
break;
case 2: // delay before fade out
window.setTimeout(function() {
el.trigger("scroll");
}, 2000);
break;
case 3: // fade out
el.fadeOut("slow", function() {
el.trigger("scroll");
});
break;
}
}).trigger("scroll");
});
它不會做exaclty與您的要求,但如果你讀的代碼,並進行一些更改,狀態機,你會得到它的工作:)
由於每個瀏覽器(它不是標準元素)中的選取框會有所不同,因此您可能需要查找而不是[jQuery替代品](http://remysharp.com/demo/marquee.html)。 –
你需要一些邏輯來實現它,我試圖提出,你可以檢查。您還需要將'
startloop();「>'更改爲' startLoop();」>' – Sami