用js实现图片的无缝滚动效果

摘要:
要实现图像的无缝滚动,需要让您的照片集在一定时间内自动切换,这需要js中的计时器来控制时间。js中的计时器有两种方法:setTimeout和setInterval。它们只接收一个参数,即计时器返回的值,以消除指定的计时器。在我们知道计时器之后,我们应该找到一种方法使图片移动,这样图片元素可以以一定的速度移动。您可以使用js来控制元素的样式,例如:oUl。风格左=oUl。offsetLeft+speed+'px’//速度可以改变移动方向。

实现图片的无缝滚动就是要让你的图片集在一定时间里自动切换,那就需要js里的定时器来控制时间。

  js中关于定时器的方法有两种:setTimeout和setInterval。它们接收的参数是一样的,第一个参数是函数,用于定时器的执行,第二个参数是数字,表示多少毫秒之后执行函数。它们的不同点在于setTimeout只执行一次指定的函数,而setInterval则每隔规定的时间就执行一次指定的函数。

  在定时器后面我们还要知道清除定时器的方法:clearTimeout和clearInterval。它们都只接收一个参数,即定时器返回的值,用于消除指定的定时器。

  知道定时器以后我们就要想办法让图片动起来,让图片元素按一定的速度移位就能实现。可以用js控制元素的样式,例如:

  oUl.style.left = oUl.offsetLeft + speed + 'px';//其中speed的正负可以改变移动的方向。

  代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>ZuiYangDan</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}

#container {
100%;
border: 1px solid #aaa;
margin: 100px 0px;
}

#pictures {
100%;
height: 520px;
overflow: hidden;
position: relative;
}

#ul1 {
position: absolute;
left: 0;
top: 0;
overflow: hidden;
}

#ul1 li {
float: left;
700px;
height: auto;
}

#ul1 li img {
700px;
height: auto;
}

</style>
<script>
window.onload = function() {
var oDiv = document.getElementById("pictures");
var oUl = document.getElementById("ul1");
var speed = -3;
var oLi = document.getElementsByTagName("li");

oUl.innerHTML += oUl.innerHTML;//先把图片增加一组
oUl.style.width = oLi.length * oLi[0].offsetWidth + "px";

function move() {
if (oUl.offsetLeft < -oUl.offsetWidth / 2) {
oUl.style.left = "0";
}
oUl.style.left = oUl.offsetLeft + speed + "px";
}
var timer = setInterval(move, 30);
oDiv.onmouseover = function() {
clearInterval(timer);
};
oDiv.onmouseout = function() {
timer = setInterval(move, 30);
};
}

</script>
</head>

<body>
<div id="container">
<div id="pictures">
<ul id="ul1">
<li><img src="http://t.zoukankan.com/images/z11_08.jpg" alt=""></li>
<li><img src="http://t.zoukankan.com/images/z12_10.jpg" alt=""></li>
<li><img src="http://t.zoukankan.com/images/z13_13.jpg" alt=""></li>
<li><img src="http://t.zoukankan.com/images/zl4_15.jpg" alt=""></li>
</ul>
</div>
</div>
</body>

</html>

免责声明:文章转载自《用js实现图片的无缝滚动效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mybatis框架resultMap元素的自动映射级别Activiti 开发案例之动态指派任务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【js重学系列】作用域

作用域 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 在 Javascript 中,作用域分为 全局作用域 和 函数作用域 什么是作用域呢,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 全局变量 变量在函数外定义,即为全局变量。 全局变量有 全局作用域: 网页中所有脚本和函数均可使...

JS登录加密算法破解

利用框架工具:jsEncrypter与phantomjs.exe脚本与工具安装就不做介绍了,网上都有教程 目标站点登录请求做了password字段进行了加密,同时验证码存在缺陷,这时候好多初级渗透人员看到存在加密方式都会有放弃的想法,这里详细介绍如何利用jsEncrypter分析js加密算法来进行破解加密进行还原首先通过登录请求进行抓包,可以看到passw...

Magento中调用JS文件的几种方法

一、全局调用方法: 通过该方法每个页面都会引用这个JS文件,除非是类似jQuery这样的系统文件,不然不推荐这种方法。 文件路径:/app/design/frontend/default/Your_Template/layout/page.xml 你会看到很多类似于addJS这样的XML代码,这是magento的优势之一,通过XML来配置文件很方便灵活。...

js中对表格的操作总结

 inserRow()和insertCell()方法 首先,表格行索引从0开始。 inserRow():  这个函数将新行添加到index的那一行前, 比如insertRow(0),是将新行添加到第一行之前。 默认的insertRow()函数相当于 insertRow(-1),将新行添加到表的最后。 objTable.insertRow (objTabl...

使用js设置input标签只读 readonly 属性

先上代码: <html> <head> <title> test </title> <meta charset="utf-8"> </head> <script language="JavaScript"> function setReadon...

nodejs 和 js

JavaScript组成:ECMAScript(定义这门语言的基础,比如语法、数据类型、结构以及一些内置对象等)、DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法)、BOM(基于ECMASCRIPT,扩展出来的用于操作浏览器的一些方法)。 NodeJS是以ECMASCRIPT为基础,然后在这个基础上扩展出来的一些操作其他东西(即操作非浏览...