原理是创建轮播的文字两份,当其中一份在父控件上完全消失后让他的scrollleft再次回到起始位置
html
<div id="scroll_div">
<div id="scroll_begin">
2022年11月2日 星期三 农历十月初九
1、梦天实验舱与空间站组合体在轨完成交会对接,目前已有17国科学实验项目入选中国空间站。
2、五部门: 到2026年我国虚拟现实产业规模超过3500亿元。
3、税务总局:累计减税降费超1万亿,目前超八成个体工商户已无需缴税。
4、多地发布咽拭子采集规范:擦拭至少“来回3次”“上下3次”。
5、河南、内蒙古强调精准防控:不能无差别封控,让城市逐渐恢复活力。
6、江苏新规:在全省推行“带押过户”,降低二手房交易风险和成本。
7、西藏那曲市尼玛县1日21时发生4.9级地震,震源深度10千米。
8、94版《三国演义》关羽扮演者陆树铭去世,享年66岁。
</div>
<div id="scroll_end"></div>
</div>
css
#scroll_div {
height: 26px;
overflow: hidden;
white-space: nowrap;
width: 100%;
margin-left: 10px;
}
#scroll_begin,
#scroll_end {
display: inline;
}
js
function ScrollImgLeft() {
var speed = 50;
var MyMar = null;
var scroll_begin = document.getElementById("scroll_begin");
var scroll_end = document.getElementById("scroll_end");
var scroll_div = document.getElementById("scroll_div");
scroll_end.innerHTML = scroll_begin.innerHTML;
console.log(scroll_begin.innerHTML + scroll_begin.innerHTML)
// 当文字少于宽度时scroll_end.offsetWidth - scroll_div.scrollLeft <= 0无法触发
for (var i = 0; i < 7; i++) {
if (scroll_begin.offsetWidth + scroll_end.offsetWidth < scroll_div.offsetWidth * 2) {
scroll_end.innerHTML = scroll_begin.innerHTML + scroll_begin.innerHTML;
scroll_begin.innerHTML = scroll_end.innerHTML
} else {
break
}
}
function Marquee() {
if (scroll_end.offsetWidth - scroll_div.scrollLeft <= 0)
scroll_div.scrollLeft -= scroll_begin.offsetWidth;
// scroll_div.scrollLeft = 0
else
scroll_div.scrollLeft++;
}
MyMar = setInterval(Marquee, speed);
scroll_div.onmouseover = function() {
clearInterval(MyMar);
}
scroll_div.onmouseout = function() {
MyMar = setInterval(Marquee, speed);
}
}
ScrollImgLeft();
网友评论