JavaScript代码实现图片循环滚动效果


Posted in Javascript onMarch 19, 2020

1.概述

循环滚动图片,不仅可以增添Web页面的动态效果,而且可以节省页面空间,有效地保证在有限的页面中显示更多的图片。

2.技术要点

主要应用setTimeout()方法实现图片的循环滚动效果。setTimeout()方法的语法格式如下:

setTimeout(function,milliseconds,[arguments])

参数说明:

a. function:要调用的JavaScript自定义函数名称。

b. Milliseconds:设置超时时间(以毫秒为单位)。

功能:经过超时时间后,调用函数。此值可以用clearTimeout()函数清除。

3.具体实现

(1)在页面的合适位置添加一个id属性为demo的<div>标记,并在该标记中添加表格及要要滚动显示的图片。关键代码如下:

<div id="demo" style=" overflow: hidden; width: 455px; height: 166px;">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" id="marquePic1">
<!-- 要循环滚动的图片 -->
<table width="455" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr align="center">
<%for(int i=1;i<8;i++){%>
<td> <img src="Images/<%=i%>.jpg" width="118" height="166" border="1"> </td>
<%}%>
</tr>
</table>
</td>
<td id="marquePic2" width="1"></td>
</tr>
</table>
</div>

(2)编写自定义的JavaScript函数move(),用于实现无间断的图片循环滚动效果。speed数值越大图片滚动的越快,具体代码如下:

<script language="javascript">
var speed=30 ; //设置间隔时间
marquePic2.innerHTML=marquePic1.innerHTML;
var demo=document.getElementById("demo"); //获取demo对象
function Marquee(n){ //实现图片循环滚动的方法
if(marquePic1.offsetWidth-demo.scrollLeft<=0){ 
demo.scrollLeft=0; 
}
else{ 
demo.scrollLeft=demo.scrollLeft+n;
} 
} 
var MyMar=setInterval("Marquee(5)",speed);
demo.onmouseover=function() { //停止滚动
clearInterval(MyMar);
} 
demo.onmouseout=function() { //继续滚动
MyMar=setInterval("Marquee(5)",speed);
}
</script>

知识点补充:javascript实现页面的自动循环滚动

首先html代码

<div id="content">
<ol id="EG-CN-1">EG-CN-1
<li type="none">aatox</li>
<li type="none">akari</li></ol>
<ol id="EG-CN-10">EG-CN-10<li type="none">rakan</li></ol>
<ol id="EG-CN-7">EG-CN-7<li type="none">riven</li>
<li type="none">darius</li></ol>
<ol id="EG-CN-8">EG-CN-8<li type="none">fiora</li>
<li type="none">jayce</li>
<li type="none">noc</li></ol>
<ol id="EG-CN-2">EG-CN-2<li type="none">leesin</li></ol></div>

这是一个通过js自动添加list的div容器,随着名单的长度增加会自动增加scrollheight,而整个div是固定的宽高,通过css的overflow:scroll属性自动将多出的内容隐藏在scrollview里面
css代码如下,这里同时使用::-webkit-scrollbar 将滚动条隐藏以保证美观性

#content{
 width:430px;height:490px;
 position:absolute; top:180px;left:40%;
 font-size:20px;overflow:scroll;

}
#content::-webkit-scrollbar{display:none}
ol{font-size:35px}
li{font-size:25px}

接下来就是实现自动循环滚动的js代码

原理就是先读取div元素的高度以及div内部内容的高度即clientHeightscrollHeight属性来确定滚动条到顶部的最大距离h=clientHeight-scrollHeight,然后通过setInterval来实现滚动条到顶部的距离scrollTop属性的从0开始递增直到达到最大距离h,然后再将scrollTop归零,重新开始滚动

$(document).ready(function(){
content=document.getElementById('content')
clientheight=content.clientHeight
offsetheight=content.scrollHeight
h=offsetheight-clientheight
var position=0
function startscroll(){
if(content.scrollTop<h){position++;content.scrollTop=position}
if(content.scrollTop>=h){content.scrollTop=0;position=0}
}
setInterval(startscroll,100)

console.log(clientheight)
console.log(offsetheight)

})

总结

以上所述是小编给大家介绍的JavaScript代码实现图片循环滚动效果的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在textarea中屏蔽js的某个function的javascript代码
Apr 20 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
Sep 14 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
JQuery删除DOM节点的方法
Jun 11 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
EsLint入门学习教程
Feb 17 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
Vue数据监听方法watch的使用
Mar 28 Javascript
总结javascript三元运算符知识点
Sep 28 Javascript
JS一次前端面试经历记录
Mar 19 Javascript
JavaScript cookie原理及使用实例
May 08 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 Javascript
jquery插件格式实例分析
Jun 16 #Javascript
详解JavaScript对象类型
Jun 16 #Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 #Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
Jun 16 #Javascript
JSON字符串和对象相互转换实例分析
Jun 16 #Javascript
jQuery的层级查找方式分析
Jun 16 #Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 #Javascript
You might like
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
js实现列表按字母排序
2020/08/11 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
借款担保书范文
2014/05/13 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS