当前位置:文档之家› js实现图片无缝滚动

js实现图片无缝滚动

setInterval 定时设置 clearInterval 清除定时 Onmouseover 鼠标移动在上面 Onmouseout 鼠标移开
图片上无缝滚动 <style type="text/css"> <!-#demo { background: #FFF; overflow:hidden; border: 1px dashed #CCC; height: 100px; text-align: center; float: left; } #demo img { border: 3px solid #F2F2F2; display: block; } --> </style> 向上滚动 <div id="demo"> <div id="demo1"> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> </div> <div id="demo2"></div> </div> <script> <!-var speed=10; //数字越大速度越慢 var tab=document.getElementById("demo"); var tab1=document.getElementById("demo1"); var tab2=document.getElementById("demo2"); tab2.innerHTML=tab1.innerHTML; //克隆 demo1 为 demo2 function Marquee(){ if(tab2.offsetTop-tab.scrollTop<=0)//当滚动至 demo1 与 demo2 交界时 tab.scrollTop-=tab1.offsetHeight //demo 跳到最顶端
先实现 html 效果布局
<div id=demo> <div id=demo1> <img > //滚动图片 </div> <div id=demo2>
</div> </div>
相关 js 代码知识介绍
innerHTML:设置或获取位于对象起始和结束标签内的 HTML scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop:获取对象相对于版面或由父坐标 offsetTop 属性指定的父坐标的计算顶端位置 offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度
<a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> </div> <div id="demo2"></div> </div> </div> <script> <!-var speed=10; //数字越大速度越慢 var tab=document.getElementById("demo"); var tab1=document.getElementById("demo1"); var tab2=document.getElementById("demo2"); tab2.innerHTML=tab1.innerHTML; function Marquee(){ if(tab2.offsetWidth-tab.scrollLeft<=0) tab.scrollLeft-=tab1.offsetWidth else{ tab.scrollLeft++; } } var MyMar=setInterval(Marquee,speed); tab.onmouseover=function() {clearInterval(MyMar)}; tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)}; --> </script> 图片右无缝滚动 <style type="text/css"> <!-#demo { background: #FFF; overflow:hidden; border: 1px dashed #CCC; width: 500px; } #demo img { border: 3px solid #F2F2F2; } #indemo { float: left; width: 800%; } #demo1 { float: left; }
ห้องสมุดไป่ตู้
#demo2 { float: left; } --> </style> 向右滚动 <div id="demo"> <div id="indemo"> <div id="demo1"> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> <a href="#"><img src="/img/logo.gif" border="0" /></a> </div> <div id="demo2"></div> </div> </div> <script> <!-var speed=10; //数字越大速度越慢 var tab=document.getElementById("demo"); var tab1=document.getElementById("demo1"); var tab2=document.getElementById("demo2"); tab2.innerHTML=tab1.innerHTML; function Marquee(){ if(tab.scrollLeft<=0) tab.scrollLeft+=tab2.offsetWidth else{ tab.scrollLeft-} } var MyMar=setInterval(Marquee,speed); tab.onmouseover=function() {clearInterval(MyMar)}; tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)}; --> </script>
网站特效:js 实现图片无缝滚动
一、效果实现思路
一个设定宽度并且隐藏超出它宽度的内容的容器 demo,里面放 demo1 和 demo2, demo1 是滚动内容,demo2 为 demo1 的直接克隆,通过不断改变 demo1 的 scrollTop 或者 scrollLeft 达到滚动的目的,当滚动至 demo1 与 demo2 的交界处时直接跳回初始位置,因为 demo1 与 demo2 一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。
相关主题