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实现仿银行密码输入框效果的代码
Dec 13 Javascript
jquery ajax 同步异步的执行示例代码
Jun 23 Javascript
JS回调函数的应用简单实例
Sep 17 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
window.onload绑定多个事件的两种解决方案
May 15 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
Aug 18 Javascript
vue如何从接口请求数据
Jun 22 Javascript
详解React中setState回调函数
Jun 14 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 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
utf8的编码算法 转载
2006/12/27 Javascript
jquery对表单操作2
2011/04/06 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
js读写json文件实例代码
2014/10/21 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
Python找出9个连续的空闲端口
2016/02/01 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
一套比较完整的软件测试人员面试题
2012/05/13 面试题
计算机应用专业推荐信
2013/11/13 职场文书
金融管理应届生求职信
2014/02/20 职场文书
厨师长岗位职责
2014/03/02 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
工作失职检讨书500字
2014/10/17 职场文书
英语辞职信怎么写
2015/02/28 职场文书
任长霞观后感
2015/06/16 职场文书
小学班主任工作随笔
2015/08/15 职场文书