我对Javascript一窍不通。这就是我所拥有的:
<script type="text/javascript">
function beginrefresh(){
//set the id of the target object
var marquee = document.getElementById("marquee_text");
if(marquee.scrollLeft >= marquee.scrollWidth - parseInt(marquee.style.width)) {
marquee.scrollLeft = 0;
}
marquee.scrollLeft += 1;
// set the delay (ms), bigger delay, slower movement
setTimeout("beginrefresh()", 10);
}
</script>它向左滚动,但我需要它相对无缝地重复。在那一刻,它只是跳回到开始。我这样做可能不太可能,如果不可能,有谁有更好的方法吗?
发布于 2008-12-03 15:01:00
这是一个有很多功能的jQuery插件:
http://jscroller2.markusbordihn.de/example/image-scroller-windiv/
这个是“丝滑的”
http://remysharp.com/2008/09/10/the-silky-smooth-marquee/
发布于 2014-10-15 08:15:37
简单的javascript解决方案:
window.addEventListener('load', function () {
function go() {
i = i < width ? i + step : 1;
m.style.marginLeft = -i + 'px';
}
var i = 0,
step = 3,
space = ' ';
var m = document.getElementById('marquee');
var t = m.innerHTML; //text
m.innerHTML = t + space;
m.style.position = 'absolute'; // http://stackoverflow.com/questions/2057682/determine-pixel-length-of-string-in-javascript-jquery/2057789#2057789
var width = (m.clientWidth + 1);
m.style.position = '';
m.innerHTML = t + space + t + space + t + space + t + space + t + space + t + space + t + space;
m.addEventListener('mouseenter', function () {
step = 0;
}, true);
m.addEventListener('mouseleave', function () {
step = 3;
}, true);
var x = setInterval(go, 50);
}, true);#marquee {
background:#eee;
overflow:hidden;
white-space: nowrap;
}<div id="marquee">
1 Hello world! 2 Hello world! <a href="#">3 Hello world!</a>
</div>
JSFiddle
发布于 2014-10-18 06:04:22
我最近使用Cycle 2jQuery插件在HTML语言中实现了一个选框:http://jquery.malsup.com/cycle2/demo/non-image.php
<div class="cycle-slideshow" data-cycle-fx="scrollHorz" data-cycle-speed="9000" data-cycle-timeout="1" data-cycle-easing="linear" data-cycle-pause-on-hover="true" data-cycle-slides="> div" >
<div> Text 1 </div>
<div> Text 2 </div>
</div> https://stackoverflow.com/questions/337330
复制相似问题