1234567891011121314151617181920212223242526id="visual_area"class="scroll_area"id="scroll_content"内容1内容2内容3补位1补位2补位3
12345678910111213141516171819202122232425262728293031323334* {padding:0;margin:0}#visual_area {width:600px;height:150px;background:#333;margin:100px auto;overflow:hidden;}#visual_area ul {background:#fff;float:left}#visual_area li {list-style:none;float:left;width:200px;height:150px;line-height:150px;text-align:center;}#visual_area li p {background:#ccc;width:198px;height:148px;border:1px solid #000}.scroll_area {width:4000px;height:150px}
123456789101112$(function() {var roll = function() {var o_place = $('#visual_area').scrollLeft();var n_place = o_place + 200;if (n_place < $('#scroll_content').width()) {$('#visual_area').scrollLeft(n_place);} else {$('#visual_area').scrollLeft(0);}}setInterval(roll, 1000);})
更新时间:2021-03-08 00:44:03
我制作一个最简单的无缝滚动效果,鼠标滑入滑出的处理在详解2中继续说明,因为我自己是个初学者,很多时候都是边学习边记录的。setinterval函数说明,本例中经过1000毫秒(时间间隔)向左滚动200像素(步长),是一个很慢速并且感觉有些跳的滚动,要实现比较细腻平滑的效果,时间间隔和步长尽量小一些,调整这两个数值会出现很多有趣的效果,有兴趣的可以试一试。需要说明的是:
var o_place=$('#visual_area').scrollleft(); var n_place=o_place+200;
为什么要这样做呢?setinterval函数在页面加载后的1秒后,获取可视区滚动条位置,滚动条位置设置为+200,所以执行一次roll函数滚动条位置加200,加了200之后的滚动条位置大于等于滚动内容的宽度就把滚动条位置归0.