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 相关文章推荐
JavaScript 替换Html标签实现代码
Oct 14 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
自写简单JS判断是否已经弹出页面
Oct 20 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
推荐9款炫酷的基于jquery的页面特效
Dec 07 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
Jan 14 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
微信小程序实现折叠与展开文章功能
Jun 12 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
jQuery实现简单轮播图效果
Dec 27 jQuery
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
PHP explode()函数用法、切分字符串
2012/10/03 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
Javascript动态创建div的方法
2015/02/09 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
成人教育自我鉴定
2013/11/01 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
公司禁烟通知
2015/04/23 职场文书
电影建国大业观后感
2015/06/01 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
详解MySQL集群搭建
2021/05/26 MySQL