JS制作轮播图

JavaScript014

JS制作轮播图,第1张

轮播图是每个网站中必不可少的元素,那么如何用JS制作轮播图呢?下面我就给大家分享一下。

工具/材料

Sublime Text

01

首先需要在Sublime中创建HTML文档,然后在文档的body区域中加入如下图所示的轮播图内容

02

然后我们需要在style标签中给所添加的轮播图内容声明样式,如下图所示

03

接下来我们就需要在script标签中实现轮播图的动画脚本内容了,如下图所示,注意script标签的type类型一定要是javascript

04

最后我们运行界面程序,你就会看到如下图所示的轮播图了,点击左右的箭头和中间的圆点都可以进行轮播图的切换

1 、 首先我们需要在开始时将我们锁需要的封装函数链接进来。

列如<script type="text/javascript" src="animate-2.0.1.js"></script>

而且我们必须得得到所有需要用到的对象用 getElementById 、getElementsByTagName,然后把需要一个规范的命名。

2 、第二部我们创建一个定时器先让轮播图中所有图片的 li 动起来

右边点击函数跟定时器所运动的函数一个样,所以我们可以封装一个函数abc();他们是共用的;

3 、 写出左边点击按钮事件的函数,这样就如上abc();差不多只是修改一些东西就行了;

4 、讲小圆点的样式改变封装成一个函数就是下面的chnage();

然后还得监听点击每个小圆点的事件,所以可以用for + onclick 讲每个小圆点点击事件给写出来。

难点:

1 、函数截留,当我们点击函数正在执行时,如果多次点击就会出现图片运动混乱的现象,这是我们需要用if(picDiv.isanimated) {return},

2 、cloneNode()函数picUl.appendChild(picLi[0].cloneNode(true))

使用Jquery类库,步骤:

1、准备好html:

<div class="container">

<div class="item-list">

<div class="item active"><img src="0.jpg" alt="第1张图"></div>

<div class="item"><img src="1.jpg" alt="第2张图"></div>

<div class="item"><img src="2.jpg" alt="第3张图"></div>

</div>

<div class="item-control">

<a href='javascript:' class="active">●</a>

<a href='javascript:'>●</a>

<a href='javascript:'>●</a>

</div>

</div>

2、为html设置样式

<style>

.container{

width: 500px

height: 300px

text-align: center

background: red

position:relative

}

.container>.item-control{

display: inline-block

width: 100%

left: 0

position: absolute

bottom: 10px

background: rgba(0,0,0,0.2)

}

.container>.item-control>a{

font-size: 20px

color: rgba(255,255,255,0.7)

text-decoration: none

}

.container>.item-control>a.active{

color: #fff

}

.container>.item-list,

.container>.item-list>.item{

width: 100%

height: 100%

}

.container>.item-list>.item{

display: none

}

.container>.item-list>.item.active{

display: block

}

</style>

3、编写Js

<script>

(function(){

$(document).on('click','.container .item-control a',function(){

var _index = $(this).index()

$(this).addClass('active').siblings().removeClass('active')

$('.container .item-list .item').eq( _index ).addClass('active').siblings().removeClass('active')

})

})()

</script>

最终效果见图: