Home  >  Article  >  Web Front-end  >  [Transfer] div css image scrolling effect_html/css_WEB-ITnose

[Transfer] div css image scrolling effect_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:29:251666browse

想必大家都注意到的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出,不管怎么做,都略显麻烦。下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。

在原作者的基础上做了一定修改,主要还是在样式上面,将表格更换为标签。

先了解一下对象的几个的属性:

innerHTML:设置或获取位于对象起始和结束标签内的 HTML

scrollHeight: 获取对象的滚动高度。

scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离

scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

scrollWidth:获取对象的滚动宽度

offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度

offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置

offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置

offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度

图片上无缝滚动



向上滚动











<script> <br> <!-- <br /> var speed=10; //数字越大速度越慢 <br /> var tab=document.getElementById("demo"); <br /> var tab1=document.getElementById("demo1"); <br /> var tab2=document.getElementById("demo2"); <br /> tab2.innerHTML=tab1.innerHTML; //克隆demo1为demo2 <br /> function Marquee(){ <br /> if(tab2.offsetTop-tab.scrollTop<=0)//当滚动至demo1与demo2交界时 <br /> tab.scrollTop-=tab1.offsetHeight //demo跳到最顶端 <br /> else{ <br /> tab.scrollTop++ <br /> } <br /> } <br /> var MyMar=setInterval(Marquee,speed); <br /> tab. {clearInterval(MyMar)};//鼠标移上时清除定时器达到滚动停止的目的 <br /> tab. {MyMar=setInterval(Marquee,speed)};//鼠标移开时重设定时器 <br /> --> <br> </script>

图片下无缝滚动



向下滚动











<script> <br> <!-- <br /> var speed=10; //数字越大速度越慢 <br /> var tab=document.getElementById("demo"); <br /> var tab1=document.getElementById("demo1"); <br /> var tab2=document.getElementById("demo2"); <br /> tab2.innerHTML=tab1.innerHTML; //克隆demo1为demo2 <br /> tab.scrollTop=tab.scrollHeight <br /> function Marquee(){ <br /> if(tab1.offsetTop-tab.scrollTop>=0)//当滚动至demo1与demo2交界时 <br> tab.scrollTop+=tab2.offsetHeight  //demo跳到最顶端 <br> else{ <br> tab.scrollTop-- <br> } <br> } <br> var MyMar=setInterval(Marquee,speed); <br> tab. {clearInterval(MyMar)};//鼠标移上时清除定时器达到滚动停止的目的 <br> tab. {MyMar=setInterval(Marquee,speed)};//鼠标移开时重设定时器 <br> --> <br> </script>

图片左无缝滚动



向左滚动














<script> <br> <!-- <br /> var speed=10; //数字越大速度越慢 <br /> var tab=document.getElementById("demo"); <br /> var tab1=document.getElementById("demo1"); <br /> var tab2=document.getElementById("demo2"); <br /> tab2.innerHTML=tab1.innerHTML; <br /> function Marquee(){ <br /> if(tab2.offsetWidth-tab.scrollLeft<=0) <br /> tab.scrollLeft-=tab1.offsetWidth <br /> else{ <br /> tab.scrollLeft ; <br /> } <br /> } <br /> var MyMar=setInterval(Marquee,speed); <br /> tab. {clearInterval(MyMar)}; <br /> tab. {MyMar=setInterval(Marquee,speed)}; <br /> --> <br> </script>

图片右无缝滚动



向右滚动














<script> <br> <!-- <br /> var speed=10; //数字越大速度越慢 <br /> var tab=document.getElementById("demo"); <br /> var tab1=document.getElementById("demo1"); <br /> var tab2=document.getElementById("demo2"); <br /> tab2.innerHTML=tab1.innerHTML; <br /> function Marquee(){ <br /> if(tab.scrollLeft<=0) <br /> tab.scrollLeft =tab2.offsetWidth <br /> else{ <br /> tab.scrollLeft-- <br /> } <br /> } <br /> var MyMar=setInterval(Marquee,speed); <br /> tab. {clearInterval(MyMar)}; <br /> tab. {MyMar=setInterval(Marquee,speed)}; <br /> --> <br> </script>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn