JS实现图片的不间断连续滚动的简单实例


Posted in Javascript onJune 03, 2016

js替代marquee实现图片无缝滚动

可能大家都碰到过,当marquee中滚动的是图片的时候,滚到终点的时候直接就跳回到起点了,而不像文字那样可以无缝滚动,下面介绍的是通过js来实现图片的无缝滚动。

先了解一下下面这几个属性:

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

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

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

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

scrollWidth: 获取对象的滚动宽度

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

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

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

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

-----------------------------------------------------------------------

图片向上无缝滚动

<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="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
</div>
<div id="demo2"></div>
</div>

<script>
<!--
var speed=10; //数字越大速度越慢
var tab=document.getElementByIdx_x("demo");
var tab1=document.getElementByIdx_x("demo1");
var tab2=document.getElementByIdx_x("demo2");
tab2.innerHTML=tab1.innerHTML; //克隆demo1为demo2
function Marquee(){
if(tab2.offsetTop-tab.scrollTop<=0)//当滚动至demo1与demo2交界时
tab.scrollTop-=tab1.offsetHeight //demo跳到最顶端
else{
tab.scrollTop++
}
}
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;
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="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
</div>
<div id="demo2"></div>
</div>

<script>
<!--
var speed=10; //数字越大速度越慢
var tab=document.getElementByIdx_x("demo");
var tab1=document.getElementByIdx_x("demo1");
var tab2=document.getElementByIdx_x("demo2");
tab2.innerHTML=tab1.innerHTML; //克隆demo1为demo2
tab.scrollTop=tab.scrollHeight
function Marquee(){
if(tab1.offsetTop-tab.scrollTop>=0)//当滚动至demo1与demo2交界时
tab.scrollTop+=tab2.offsetHeight //demo跳到最顶端
else{
tab.scrollTop--
}
}
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="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
</div>
<div id="demo2"></div>
</div>
</div>

<script>
<!--
var speed=10; //数字越大速度越慢
var tab=document.getElementByIdx_x("demo");
var tab1=document.getElementByIdx_x("demo1");
var tab2=document.getElementByIdx_x("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="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
</div>
<div id="demo2"></div>
</div>
</div>

<script>
<!--
var speed=10; //数字越大速度越慢
var tab=document.getElementByIdx_x("demo");
var tab1=document.getElementByIdx_x("demo1");
var tab2=document.getElementByIdx_x("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都加个i了,还有css

向右滚动

<div id="demoi">
<div id="indemoi">
<div id="demoi1">
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
<a href="#"><img src="https://3water.com/other/link/Clear_logo.gif" border="0" /></a>
</div>
<div id="demoi2"></div>
</div>
</div>

<script>
<!--
var speedi=10; //数字越大速度越慢
var tabi=document.getElementByIdx_x("demoi");
var tabi1=document.getElementByIdx_x("demoi1");
var tabi2=document.getElementByIdx_x("demoi2");
tabi2.innerHTML=tabi1.innerHTML;
function Marqueei(){
if(tabi.scrollLeft<=0)
tabi.scrollLeft+=tabi2.offsetWidth
else{
tabi.scrollLeft--;
}
}
var MyMari=setInterval(Marqueei,speedi);
tabi.onmouseover=function() {clearInterval(MyMari)};
tabi.onmouseout=function() {MyMari=setInterval(Marqueei,speedi)};
-->
</script>

以上这篇JS实现图片的不间断连续滚动的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
js变量、作用域及内存详解
Sep 23 Javascript
初步认识JavaScript函数库jQuery
Jun 18 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
Python版实现微信公众号扫码登陆
May 28 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 #Javascript
js不间断滚动的简单实现
Jun 03 #Javascript
Ionic如何创建APP项目
Jun 03 #Javascript
Ionic快速安装教程
Jun 03 #Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 #Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 #Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 #Javascript
You might like
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
JS hashMap实例详解
2016/05/26 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
python安装以及IDE的配置教程
2015/04/29 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
Java如何支持I18N?
2016/10/31 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
有多年工作经验的自我评价
2014/03/02 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
代领毕业证委托书
2014/08/02 职场文书
2014年班组工作总结
2014/11/20 职场文书
介绍信怎么写
2015/01/30 职场文书
广播体操比赛主持词
2015/06/29 职场文书