js 图片无缝循环
<html>
<head>
<title>Js图片无缝滚动</title>
<style type="text/css">
body{
background:gray;
}
#wrap{
width:810px;
height:200px;
border:1px solid black;
position:relative;
left:50%;
top:50%;
margin-left:-410px;
margin-top:-250px;
background:#F5E0E3;
overflow:hidden;
}
#wrap ul{
margin:0px;
padding:0px;
position:absolute;
top:0px;
left:0px;
}
#wrap ul li{
list-style:none;
float:left;
margin:5px 10px;
}
#wrap ul li img{
width:250px;
height:180px;
cursor:pointer;
}
.direction{
width:104px;
margin:50px auto;
}
.direction img{
border:1px dotted pink;
cursor:pointer;
}
.active{
border:2px solid gray;
}
</style>
<script type="text/javascript">
window.onload = function(){
var ul = document.getElementById("wrap").getElementsByTagName("ul")[0];
var lis = ul.getElementsByTagName("li");
var btn1 = document.getElementById("button1");
var btn2 = document.getElementById("button2");
var imgs = ul.getElementsByTagName("img");
var speed = 3;
var time = null;
ul.innerHTML += ul.innerHTML;
ul.style.width = (lis[0].offsetWidth+20)*lis.length + "px";
time = setInterval(function(){
ul.style.left = ul.offsetLeft - speed + "px";
if(ul.offsetLeft <= -ul.offsetWidth/2){
ul.style.left ="0px";
}else if(ul.offsetLeft >=0){
ul.style.left = -ul.offsetWidth/2 + "px";
}
},30);
btn1.onmouseover = function(){
speed = 3;
}
btn2.onmouseover = function(){
speed = -3;
}
for(var i in imgs){
imgs[i].onmouseover = function(){
clearInterval(time);
for(var i = 0;i<imgs.length;i++){
imgs[i].className = "none";
}
this.className = "active";
}
imgs[i].onmouseout = function(){
time = setInterval(function(){
ul.style.left = ul.offsetLeft - speed + "px";
if(ul.offsetLeft <= -ul.offsetWidth/2){
ul.style.left ="0px";
}else if(ul.offsetLeft >=0){
ul.style.left = -ul.offsetWidth/2 + "px";
}
},30);
for(var i = 0;i<imgs.length;i++){
imgs[i].className = "none";
}
}
}
}
</script>
</head>
<body>
<div class="direction"><img src="/jscss/demoimg/201204/left.png" alt="" id="button1"/><img src="/jscss/demoimg/201204/right.png" alt="" id="button2"/></div>
<div id="wrap">
<ul>
<li><img src="/jscss/demoimg/wall1.jpg" alt="pic one" /></li>
<li><img src="/jscss/demoimg/wall2.jpg" alt="pic two" /></li>
<li><img src="/jscss/demoimg/wall3.jpg" alt="pic three" /></li>
<li><img src="/jscss/demoimg/wall4.jpg" alt="pic four" /></li>
</ul>
</div>
</body>
</html>
js 图片无缝循环的更多相关文章
- js实现图片无缝循环跑马灯
html 代码 <div class="myls-out-div" style="overflow: hidden;"> <ul id=&qu ...
- js图片无缝滚动代码
想必大家都注意到<marquee>的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出<marquee>,不管怎么做,都略显麻烦.下面说一下这个相对简单的实现思路:一 ...
- js实现无缝循环滚动
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js 图片无缝滚动
html部分 <div id="roll"> <a href="javascript:void(0)" class="prev&qu ...
- js 图片自动循环切换setInterval();
stlye样式定义 <style type="text/css"> body{background-image: url(img/001.jpg ...
- CSS和jQuery分别实现图片无缝滚动效果
一.效果图 二.使用CSS实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- jQuery图片无缝滚动JS代码ul/li结构
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 图片滚动js 实现图片无缝滚动
在改章节中,我们主要介绍图片滚动的内容,自我感觉有个不错的建议和大家分享下 非常平滑的JS图片滚动特效代码,无缝循环,速度可自定义,鼠标悬停时停止.它的特点是JS和图片地址分离,这样做你就经易的从数据 ...
- JavaScript学习笔记——简单无缝循环滚动展示图片的实现
今天做了一个简单的无缝循环滚动的实例,这种实例在网页中其实还挺常见的,下面分享一下我的学习收获. 首先,无缝滚动的第一个重点就是——动.关于怎么让页面的元素节点动起来,这就得学明白关于JavaScri ...
随机推荐
- [Codeforces Round #247 (Div. 2)] A. Black Square
A. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- sizeof与类,继承,virtual的种种
对虚继承层次的对象的内存布局,在不同编译器实现有所区别. 首先,说说GCC的编译器. 它实现比较简单,不管是否虚继承,GCC都是将虚表指针在整个继承关系中共享的,不共享的是指向虚基类的指针. clas ...
- Delphi 实现任务栏多窗口图标显示(使用WS_EX_APPWINDOW风格)
uses Windows;type TfrmLogin = class(TForm) end; implementation {$R *.dfm} procedure TfrmLogin.FormCr ...
- C/C++ 指针的非空判断
一定要分得清楚C和C++的“空指针常量”不是一样的.C标准不保证NULL等于0,所以做指针非空判断时,应该用if(p != NULL):因为“上下文转换到bool值”的统一性,C++就应该用if(p) ...
- 六款主流免费网络嗅探软件wireshark,tcpdump,dsniff,Ettercap,NetStumbler
1.WireShark WireShark是一个开源免费的高性能网络协议分析软件,它的前身就是非常著名的网络分析软 件Ethereal.你可以使用它来解决网络疑难问题,进行网络协议分析,以及作为软件或 ...
- C# 知识点收集
1. 数组复制 byte[] source; byte[] dest; int srcOffset = 0; int dstOffset = 0; int count = 10; System.Buf ...
- 【BBST 之伸展树 (Splay Tree)】
最近“hiho一下”出了平衡树专题,这周的Splay一直出现RE,应该删除操作指针没处理好,还没找出原因. 不过其他操作运行正常,尝试用它写了一道之前用set做的平衡树的题http://codefor ...
- 【POJ2739】Sum of Consecutive Prime Numbers
简单的素数打表,然后枚举.开始没注意n读到0结束,TLE了回..下次再认真点.A过后讨论里面有个暴力打表过的,给跪了! #include <iostream> #include <c ...
- Linux2.6内核 -- 编码风格(3)
9.typedef 内核开发者们强烈反对使用 typedef 语句.他们的理由是: 1> typedef 掩盖了数据的真实类型 2> 由于数据类型隐藏起 ...
- proxy 利用get拦截,实现一个生成各种DOM节点的通用函数dom。
const dom = new Proxy({}, { get(target, property) { return function(attrs = {}, ...children) { const ...