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 相关文章推荐
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
JavaScript数值转换的三种方式总结
Jul 31 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
Jun 23 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
javaScript嗅探执行神器-sniffer.js
Feb 14 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
详解Vue项目中实现锚点定位
Apr 24 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
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
laravel 数据验证规则详解
2019/10/23 PHP
JQuery优缺点分析说明
2011/04/10 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
python中urlparse模块介绍与使用示例
2017/11/19 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
python装饰器原理与用法深入详解
2019/12/19 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
工作自我评价范文
2019/03/21 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server