当容器文本中的最后一个文本行达到目标边距时,如何重新启动滚动标记?
how to restart scrolling marque when the last text line in container text reaches the target margin?
每当 pre 中的最后一行文本到达顶部的目标边距时,我都试图重新启动滚动标记?它可以是 1 行、50 行或 100 行。
我在这里查看了几个示例,并获得了从开始目标到结束目标的滚动,并在到达结束时重新启动,但它会在中途重新启动动画,我需要 [=26= 中的最后一个文本] 到达顶部的目标,然后再次从底部重新启动动画。我希望这是有道理的,对语法不好感到抱歉。
这是 HTML:
<pre id="text">
text 1<br>
text 2<br>
text 3<br>
text 4<br>
text 5<br>
text 6<br>
text 7<br>
text 8<br>
text 9<br>
text 10<br>
</pre>
CSS:
pre#text{display:block;overflow:hidden;}
jQuery:
function animatethis(targetElement, speed) {
$(targetElement).animate({ marginTop: "-50px"},
{
duration: speed,
complete: function ()
{
$(targetElement).css('marginTop','590px');
animatethis(targetElement, speed);
}
});
};
animatethis($('pre#text'), 5000);
这是 JSFiddle 的 link:
https://jsfiddle.net/1kfpbcyo/
问题是您手动定义 -50px
而这需要是 div 的全高:
function animatethis(targetElement, speed) {
var height = $( "#text" ).height();
$(targetElement).animate({ marginTop: -height},
{
duration: speed,
complete: function ()
{
$(targetElement).css('marginTop','590px');
animatethis(targetElement, speed);
}
});
};
animatethis($('pre#text'), 5000);
pre#text{display:block;overflow:hidden;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<pre id="text">
text 1<br>
text 2<br>
text 3<br>
text 4<br>
text 5<br>
text 6<br>
text 7<br>
text 8<br>
text 9<br>
text 10<br>
</pre>
每当 pre 中的最后一行文本到达顶部的目标边距时,我都试图重新启动滚动标记?它可以是 1 行、50 行或 100 行。
我在这里查看了几个示例,并获得了从开始目标到结束目标的滚动,并在到达结束时重新启动,但它会在中途重新启动动画,我需要 [=26= 中的最后一个文本] 到达顶部的目标,然后再次从底部重新启动动画。我希望这是有道理的,对语法不好感到抱歉。
这是 HTML:
<pre id="text">
text 1<br>
text 2<br>
text 3<br>
text 4<br>
text 5<br>
text 6<br>
text 7<br>
text 8<br>
text 9<br>
text 10<br>
</pre>
CSS:
pre#text{display:block;overflow:hidden;}
jQuery:
function animatethis(targetElement, speed) {
$(targetElement).animate({ marginTop: "-50px"},
{
duration: speed,
complete: function ()
{
$(targetElement).css('marginTop','590px');
animatethis(targetElement, speed);
}
});
};
animatethis($('pre#text'), 5000);
这是 JSFiddle 的 link: https://jsfiddle.net/1kfpbcyo/
问题是您手动定义 -50px
而这需要是 div 的全高:
function animatethis(targetElement, speed) {
var height = $( "#text" ).height();
$(targetElement).animate({ marginTop: -height},
{
duration: speed,
complete: function ()
{
$(targetElement).css('marginTop','590px');
animatethis(targetElement, speed);
}
});
};
animatethis($('pre#text'), 5000);
pre#text{display:block;overflow:hidden;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<pre id="text">
text 1<br>
text 2<br>
text 3<br>
text 4<br>
text 5<br>
text 6<br>
text 7<br>
text 8<br>
text 9<br>
text 10<br>
</pre>