最基本的javascript native carousel (1)

原理:主要运用z-index这个属性来设置图片的展示和隐藏,代码如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>zIndex制作轮播图</title>
 6     <style>
 7         html,body,ul,li,input{margin: 0;padding: 0}
 8         .box1{
 9             width: 520px;
10             height: 280px;
11             margin: 0 auto;
12             position: relative;
13             border:1px solid black;
14         }
15         ul{
16             width: 520px;
17             height: 280px;
18             position: relative;
19         }
20         ul li{
21             position: absolute;
22             list-style: none;
23         }
24         ul li a{
25             display: block;
26             width: 520px;
27             height: 280px;
28         }
29         .btn1{
30             position: absolute;
31             width: 48px;
32             height: 60px;
33             background: url(btn.png) no-repeat;
34             border:0;
35             left: 0;
36             top:110px;
37             cursor: pointer;
38             z-index: 10000;
39         }
40         .btn2{
41             position: absolute;
42             width: 48px;
43             height: 60px;
44             background: url(btn.png) no-repeat -48px;
45             border:0;
46             right: 0;
47             top:110px;
48             cursor: pointer;
49             z-index: 10000;
50         }
51     </style>
52     <script>
53         window.onload = function(){
54             var btn1 = document.getElementsByClassName("btn1")[0];
55             var btn2 = document.getElementsByClassName("btn2")[0];//有兼容问题
56             var liList = document.getElementsByTagName("ul")[0].children;
57             var index = 1;
58             var i = 4;
59             btn1.onclick = function(){
60                 i++;
61                 if(i == 5){
62                     i = 0;
63                 }
64                 liList[i].style.zIndex = index++;
65             }
66             btn2.onclick = function(){
67                 i--;
68                 if(i == -1){
69                     i = 4;
70                 }
71                 liList[i].style.zIndex = index++;
72             }
73             var timer = setInterval(function(){btn2.onclick();},1000)
74         }
75     </script>
76 </head>
77 <body>
78     <div class="box1">
79         <ul>
80             <li><a href=""><img src="5.jpg" alt=""></a></li>
81             <li><a href=""><img src="4.jpg" alt=""></a></li>
82             <li><a href=""><img src="3.jpg" alt=""></a></li>
83             <li><a href=""><img src="2.jpg" alt=""></a></li>
84             <li><a href=""><img src="1.jpg" alt=""></a></li>
85         </ul>
86         <input type="button" name="" class="btn1" />
87         <input type="button" name="" class="btn2" />
88     </div>
89 </body>
90 </html>

问题:在这里我们加了一个定时器来让图片自己切换,当我们点击按钮的时候需要关闭定时器,这个可以通过clearInterval(timer)来实现,但是当我们不点击按钮的时候,想让定时器接着我们现在的图片自动轮播下去,这个问题如何解决呢?重新开定时器吗?

时间: 2024-11-09 00:38:33

最基本的javascript native carousel (1)的相关文章

JavaScript函数劫持

一.为什么我会写这篇文章 这篇文章其实是在一个偶然的机会下发现了居然有JavaScript劫持这种东西,虽然这种东西在平时用的比较少,而且一般实用价值不高,但是在一些特殊的情况下还是要使用到的,所以在这里我就简单的介绍一下 不知道你们在平时有没有注意到这样的一种情况就是每当使用alert()方法的时候,都会感觉这样的方法太过的单调,像加个样式或者是什么的.下面我们就来讲解一下 二.一个关于JavaScript函数劫持的小DEMO 下面我们就来演示一下对alert方法进行劫持的小案例,样式不是很漂

[转] 有趣的JavaScript原生数组函数

在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘object’而不是‘array’.然而执 行[] instanceof Array返回true.此外,还有类数组对象使问题更复杂,如字符串对象,arguments对象.arguments对象不是Array的实例,但却 有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作. 在本文中,

有趣的JavaScript原生数组函数

在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法.Array对象继承自Object.prototype,对数组执行typeof操作符返回object而不是array.然而,[] instanceof Array也返回true.也就是说,类数组对象的实现更复杂,例如strings对象.arguments对象,arguments对象不是Array的实例,但有length属性,并能通过索引取值,所以能像数组一样进行循环操作. 在本文中,我将复习一些数

2016年度 JavaScript 展望(下)

[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈现,以下为正文的第二部分.点此阅读第一部分. 本地移动 apps 在2015年,出现了一种新的基于 JavaScript 的移动应用开发类别:JavaScript Native.与基于 Cordova 或 PhoneGap 的应用不同,JavaScript 本地应用使用平台的本地控制与范型建立用户界面,无需涉

Javascript事件机制兼容性解决方案

原文:Javascript事件机制兼容性解决方案 本文的解决方案可以用于Javascript native对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件: 或者 var input = document.getElementsByTagName('input')[0]; var form = document.getElementsByTagName('form')[0]; Evt.on(input, 'click', function(evt){ console.log('inp

JavaScript 插件

概览 单个还是全部引入 JavaScript 插件可以单个引入(使用 Bootstrap 提供的单个 *.js 文件),或者一次性全部引入(使用 bootstrap.js 或压缩版的 bootstrap.min.js). 建议使用压缩版的 JavaScript 文件 bootstrap.js 和 bootstrap.min.js 都包含了所有插件,你在使用时,只需选择一个引入页面就可以了. 组件的 data 属性 不要在同一个元素上同时使用多个插件的 data 属性.例如,button 组件不能

Bootstrap 3之美07-插件Collapse、Accordion、Modal、Tab、Tooltip、Alert、Carousel

类似Page Header, Breadcrumbs, Dropdowns等,都是Bootstrap的组件,是静态的.如果涉及到交互,Bootstrap提供了插件.这些插件包括: ○ 过渡效果: bootstrap-transition.js○ 模态对话框:bootstrap-modal.js○ 下拉项:bootstrap-dropdown.js...... 这些插件可以单独引入到页面.而在bootstrap.js或bootstrap.min.js文件中已经包含了所有的插件. 本篇主要包括: ■

React Native Changed the World? or Nothing.

RN是一个awesome的技术, facebook很有想法的团队创造出一项新的技术改变了native开发界. 但是RN本身又疑点重重, RN是为了解决什么问题而存在的? 在诞生了一年后, RN又解决了什么问题? 本文通过分析RN的思想, 试图透过技术, 理解动态方案. RN(React Native)是Facebook推出的mobile开发框架, 使用javascript作为开发的主要语言, 逻辑和样式的处理由javascript完成, 渲染则使用native渲染, 支持Android和iOS两

javascript:Array对象

Array 对象 构造函数 Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组. var arr = new Array(2); arr.length // 2 arr // [ empty x 2 ] 上面代码中,Array构造函数的参数2,表示生成一个两个成员的数组,每个位置都是空值. 如果没有使用new,运行结果也是一样的. var arr = new Array(2); // 等同于 var arr = Array(2); Array构造函数有一个