知识点(呼吸轮播图)

this . 要判断是谁,怎么判断就看谁用了。比如

oDiv.onclick=function(){
this[i]=state
}

这个this 就是 oDiv

函数调用 1:x()
2:x.apply(),里面可以传参数,函数本质上也是对象,类似于x.call()
3 呼吸轮播图里面 图片 :切换 改变透明度
animate(lis[idx],{"opacity" : 0},1000);
animate(lis[idx],{"opacity" : 1},1000);
4 小圆点的运动: 根据一个全局变量,先让所有的className 为""

function changeCircle(){
            //去掉所有小圆点的cur
            for (var i = 0; i < circlesLi.length; i++) {
                circlesLi[i].className = "";
            }
            //第信号量这个小圆点加cur
            circlesLi[idx].className = "cur";
        }

5 函数截流 function rightBtnHandler(){
//函数截流 函数1秒结束,不能一点击就开始运行,节流是为了让函数运行完在进行下一步
//就标记 当前是否在动画过程中 isanimated 这个是自己起的名字,如果为true 说明就在执行函数 (类似于 那个旗子)
if(lis[idx].isanimated) return;

//右按钮的监听
rightBtn.onclick = rightBtnHandler;
function rightBtnHandler(){
//函数截流 函数1秒结束,不能一点击就开始运行,节流是为了让函数运行完在进行下一步
//就标记 当前是否在动画过程中 isanimated  这个是自己起的名字,如果为true 说明就在执行函数
if(lis[idx].isanimated) return;
//原来的信号量的图片淡出
animate(lis[idx],{"opacity" : 0},1000);
//信号量改变
idx++;
if(idx > imgLength - 1){
idx = 0;
}
//新信号量的图片淡入
animate(lis[idx],{"opacity" : 1},1000);
changeCircle();
}

图片发自简书App

//得到carousel
var carousel = document.getElementById("carousel");
//得到li
var lis = document.getElementById("imageslist").getElementsByTagName("li");
//得到按钮
var leftBtn = document.getElementById("leftBtn");
var rightBtn = document.getElementById("rightBtn");
//得到小圆点
var circlesLi = document.getElementById("circles").getElementsByTagName("li");
//图片数量
var imgLength = lis.length;
//图片宽度
var width = 560;
//滚动速度
var animatetime = 300;
//缓冲描述
var tween = "Linear";
//间隔时间
var interval = 2000;
var idx = 0;
//自动轮播
var timer = setInterval(rightBtnHandler,interval);
//鼠标进入停止
carousel.onmouseover = function(){
clearInterval(timer);
}
//鼠标离开开始
carousel.onmouseout = function(){
timer = setInterval(rightBtnHandler,interval);
}
//右按钮的监听
rightBtn.onclick = rightBtnHandler;
function rightBtnHandler(){
//函数截流 函数1秒结束,不能一点击就开始运行,节流是为了让函数运行完在进行下一步
//就标记 当前是否在动画过程中 isanimated  这个是自己起的名字,如果为true 说明就在执行函数
if(lis[idx].isanimated) return;
//原来的信号量的图片淡出
animate(lis[idx],{"opacity" : 0},1000);
//信号量改变
idx++;
if(idx > imgLength - 1){
idx = 0;
}
//新信号量的图片淡入
animate(lis[idx],{"opacity" : 1},1000);
changeCircle();
}
//左按钮的监听
leftBtn.onclick = function(){
//函数截流
if(lis[idx].isanimated) return;
//原来的信号量的图片淡出
animate(lis[idx],{"opacity" : 0},1000);
//信号量改变
idx--;
if(idx < 0){
idx = imgLength - 1;
}
//新信号量的图片淡入
animate(lis[idx],{"opacity" : 1},1000);
changeCircle();
}
//批量添加小圆点的监听
for(var i = 0 ; i <= imgLength - 1 ; i++){
circlesLi[i].index = i; //先编号
circlesLi[i].onclick = function(){
//截流
if(lis[idx].isanimated) return;
//原来的信号量的图片淡出
animate(lis[idx],{"opacity" : 0},1000);
//信号量改变
idx = this.index;
//新信号量的图片淡入
animate(lis[idx],{"opacity" : 1},1000);
changeCircle();
}
}
//更换小圆点函数
function changeCircle(){
//去掉所有小圆点的cur
for (var i = 0; i < circlesLi.length; i++) {
circlesLi[i].className = "";(排他模型,)
}
//第信号量这个小圆点加cur
circlesLi[idx].className = "cur";
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • this .是window的 函数调用 1:x() 2:x.apply(),里面可以传参数,函数本质上也是对象,类...
    King小志阅读 488评论 0 1
  • 一:大概思路1. 先吧图片恒方在中央,然后一字排开,第一张图片(下标为0的图片)放在显示框内其余的用 overfl...
    旧梦凉人心_d0ce阅读 352评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,707评论 2 32
  • 思路: 1.点击按钮,改变显示的图片。同时改变对应小圆点的颜色。 2.点击小圆点,改变小圆点颜色,显示对应的图片。...
    这就是小七de简书阅读 481评论 0 0