js实现无缝连接轮播图(七)实现左侧按钮的功能
<!-- 这个animate.js 必须写到 index.js的上面引入 -->
<script src="js/animate.js"></script>
<!-- 引入我们首页的js文件 -->
<script src="js/index.js"></script>
HTML代码
------------------------------------------------------
<div class="focus fl">
<!-- 左侧按钮 -->
<a href="javascript:;" class="arrow-l">
<
</a>
<!-- 右侧按钮 -->
<a href="javascript:;" class="arrow-r"> </a>
<!-- 核心的滚动区域 -->
<ul>
<li>
<a href="#"><img src="upload/focus.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus1.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus2.jpg" alt=""></a>
</li>
<li>
<a href="#"><img src="upload/focus3.jpg" alt=""></a>
</li>
</ul>
<!-- 小圆点 -->
<ol class="circle">
</ol>
</div>
------------------------------------------------
js代码
----------------------------------------------------------------------
window.addEventListener(‘load’,function(){
//1、获取元素
var arrow-l = document.querySelector(‘.arrow-l’);
var arrow-r = document.querySelector(‘.arrow-r’);
var focus = document.querySelector(‘.focus’);
var focuwidth = focus.offsetWidth;
focus.addEventListener(‘mouseenter’,function(){
arrow-l.style.display = ‘block’;
arrow-r.style.display = ‘block’;
});
focus.addEventListener(‘mouseleave’,function(){
arrow-l.style.display = ‘none’;
arrow-r.style.display =‘none’;
});
//2、动态生成小圆点
var ul = focus.querySelector(‘ul’);
var ol = focus.querySelector(‘ol’);
for(var i = 0;i<ul.children.length;i++){ //使用for循环,根据banner图片的数量生成li小圆点的数量
var i = document.createElement(‘li’);
li.setAttribute(‘index’,i);
ol.appendChild(li);
//3.在小圆点生成的同时,用排他思想并且绑定点击事件实现颜色填充的切换
li.addEventListener(‘click’,function(){ //再点击事件里使用for循环的排他思想
//清除掉所有li里面的current
for(var i = 0;i<ol.children.length;i++){
ol.children[i].className = ‘’;
}
this.className = ‘current’;
var index = this.getAttribute(‘index’); //声明一个变量,存储点击获得的自定义的属性
//7.当我们点击了小圆点的 li 就要把这个li的索引值给 箭头的num,因为小圆点的li和箭头num都是独立的,只能单独执行自己。
num= index; //num是全局变量
//当我们点击了小圆点,再点击箭头,小圆点也要跟着移动到下一个小雨点,circle是控制小圆点的,所以也要把inde给circle
circle = index;
animate(ul, -index*focusWidth); //调用动画函数,传入实参ul,移动的距离是小圆点的索引*图片的宽度(必须是负值);
})
}
ol.children[0] = ‘current’;
//5.cloneNode第一张图片放到最后面
var first = ul.children[0].cloneNode(true); //因为cloneNode是写在了生成小圆点的下面,所以小圆点不会多一个
ul.appendCHild(first);
//4.点击右箭头,图片滚动一张
var num = 0;
var circle = 0; //全局变量 控制小圆点的播放
arrow_r.addEventListener(‘click’,function(){
//如果走到最后一张图片,left要快速复原 等于0
if(num==ul.children.length-1){
ul.style.left = 0;
num=0;
}
num++;
animate(ul,-num*focusWidth);
//6.点击右侧按钮,小圆点一起变化,可以在声明一个变量控制小圆点
circle++;
//先清除小圆点的类名current
//如果circle==4,说明我们走到了克隆的这张图片了,因为图片是5张,小圆点是4个 小圆点的第四个对应图片的第五张
if(circle==ol.children.length){
circle = 0;
}
circleChange();
});
//左侧按钮
arrow_l.addEventListener(‘click’,function(){
//如果走到最后一张图片,left要快速复原 等于0
if(num==ul.children.length-1){
//num=ul.children.length-1;
ul.style.left =-num*focusWidth+‘px’;
}
num--;
animate(ul,-num*focusWidth);
//6.点击右侧按钮,小圆点一起变化,可以在声明一个变量控制小圆点
circle--;
//先清除小圆点的类名current
//如果circle<0,说明我们走到了第一张图片了,小圆点要改为第四个小圆点
if(circle<0){
circle = ol.children.length-1;
}
circleChange();
});
function circleChange(){
for(var i = 0;i<ol.child.length;i++){
ol.children[i].className = ‘’;
}
//留下当前的小圆点
ol.children[circle].className = ‘current’;
}
})
js实现无缝连接轮播图(七)实现左侧按钮的功能的更多相关文章
- js实现无缝连接轮播图(二)实现自定义属性,根据banner图片的数量动态生成小圆点
<!-- 这个animate.js 必须写到 index.js的上面引入 --><script src="js/animate.js"></scrip ...
- jQuery与原生js实现banner轮播图
jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...
- 原生JS实现简易轮播图
原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = funct ...
- JS+css3焦点轮播图PC端
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js原生实现轮播图效果(面向对象编程)
面向对象编程js原生实现轮播图效果 1.先看效果图 2.需要实现的功能: 自动轮播 点击左右箭头按钮无缝轮播 点击数字按钮切换图片 分析:如何实现无缝轮播? 在一个固定大小的相框里有一个ul标签,其长 ...
- 【原】运动版的轮播图,有左右按钮和单独分页,原生JS版
运动版的轮播图,有左右按钮和单独分页 这个例子重点在于: 运动框架的复习,要灵活运动回调函数 始终以全局变量iNum来控制oUl的移动目的地,每次有任何动作,都是先判断iNum并改变iNum后去调用运 ...
- 自己用原生JS写的轮播图,支持移动端触摸滑动,分页器圆点可以支持mouseover鼠标移入和click点击,高手看了勿喷哈
自己用原生JavaScript写的轮播图,分页器圆点按钮可支持click点击,也可支持mouseover鼠标悬浮触发,同时支持移动端触摸滑动,有兴趣的友友可以试试哈,菜鸟一枚,高手看了勿喷,请多多指正 ...
- 原生js写简单轮播图方式1-从左向右滑动
轮播图就是让图片每隔几秒自动滑动,达到图片轮流播放的效果.轮播图从效果来说有滑动式的也有渐入式的,滑动式的轮播图就是图片从左向右滑入的效果,渐入式的轮播图就是图片根据透明度渐渐显示的效果,这里说的是实 ...
- JS 实现动态轮播图
JavaScript实现轮播图思路 + html/css + js源码 整个轮播图的效果是通过js代码,操作dom, 拿到html我们需要的元素,控制整个ul的距离浏览器左边的位置,让排好的图片依次出 ...
随机推荐
- Shell编程(4)
shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式 func() { #指定函数名 co ...
- mysql读写分离--一主多从,冗余存储
转载了https://blog.csdn.net/u013421629/article/details/78793966 https://blog.csdn.net/justdb/article/de ...
- dpwwn-02靶机渗透
dpwwn-02靶机渗透 将两台机器都配置为net模式. 进行一下内网扫描: 发现主机10.10.10.10,进行端口扫描. 发现有80,111,443,2049等端口开放,443值得注意. 访问网站 ...
- C语言专项错题集
2020-08-10 记录 #1 1 struct student{ 2 int num; 3 int age; 4 }; 5 struct student stu[3]={{6001,20},{60 ...
- PyCharm2018.3.5下载和安装及永久破解详解(成功案例)
靓仔靓女,你是否在网上找了很多的方法都破解不了PyCharm,是有原因的!无论什么编程工具都不要下载近一到/两年内的版本,人家即把网上的一些破解方法修复了,而且还在测试阶段,不稳定就完事了我装的是20 ...
- 生命周期(初始化、销毁方法、BeanPostProcessor后处理Bean)
1.初始化和销毁 在目标方法执行前后进行初始化或销毁 (1)在Service方法的实现类里面创建初始化方法和销毁方法: public class StudentServiceImpl implemen ...
- 关于人人开源renren-fast-vue 中npm install各种报错的解决方案
首先吐槽一下,因为这个问题我整了好几天,把报错信息复制百度,试遍了各种方法,node.js我是卸载了安装,安装了卸载,甚至renren-fast-vue我也删了再下,然后再删,无限循环.然而没有什么软 ...
- 基于Huggingface使用BERT进行文本分类的fine-tuning
随着BERT大火之后,很多BERT的变种,这里借用Huggingface工具来简单实现一个文本分类,从而进一步通过Huggingface来认识BERT的工程上的实现方法. 1.load data tr ...
- 使用 jsDelivr 免费加速 GitHub Pages 博客的静态资源(二)
之前写过一篇 使用 jsDelivr 免费加速 GitHub Pages 博客的静态资源,在那之后,又陆续想到并实施了几点利用 jsDelivr 进一步加速静态资源加载的措施,新起一篇作为记录和分享. ...
- Java知识系统回顾整理01基础05控制流程02 switch
一.switch switch 语句相当于 if else的另一种表达方式 switch可以使用byte,short,int,char,String,enum 注: 每个表达式结束,都应该有一个bre ...