博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript手写轮播图播放效果
阅读量:7144 次
发布时间:2019-06-29

本文共 1524 字,大约阅读时间需要 5 分钟。

早前做轮播图的时候,我们习惯在网上找一些现成的例子修改修改使用。现在做轮播图,像bootstrap和iview等前端框架中都有封装好的特效,直接拿过来使用就可以了。但是轮播图是怎么做的呢。下面我们用原生代码来手写一个轮播图的特效。

实现效果如下:(图片来自网络)
图片描述
实现功能如下:

  1. 鼠标划在左半部分出现左箭头切换,鼠标划在右半部分出现右箭头切换。
  2. 点击数字播放,当前播放页数字背景透明度为1,非当前页透明度为0.6
  3. 点击缩略图播放,当前播放页缩略图透明度为1,非当前页缩略头透明度为0.3
  4. 间隔2000ms自动播放(包括图片、数字、缩略图)。

根据前面运动知识,实现代码如下:

我们把前面总结的运动框架封装在move.js中

      轮播图                    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

move.js

function getStyle(obj,name){  if(obj.currentStyle){    return obj.currentStyle[name];  }  else{    return getComputedStyle(obj,false)[name];  }}function startMove(obj, attr, iTarget) {  clearInterval(obj.timer);  obj.timer = setInterval(function() {    var cur=0;    if(attr==="opacity"){      cur=Math.round(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100    }    else{      cur=parseInt(getStyle(obj,attr));    }    var speed = (iTarget - cur) / 6;    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);    if (cur === iTarget) {      clearInterval(obj.timer);    } else {      if(attr==="opacity"){        obj.style.filter="alpha(opacity:"+cur+speed+")";        obj.style.opacity=(cur+speed)/100;      }else{        obj.style[attr]=cur+speed+"px";      }    }  }, 30)}

转载地址:http://ipwgl.baihongyu.com/

你可能感兴趣的文章
面试(4)-spring-Spring面试题和答案
查看>>
请教 JTable 里的单元格如何使得双击进入单元格后,单元格的内容处于全选中状态...
查看>>
jQuery 各类判断函数汇总
查看>>
Android studio 分32位64位版本吗?
查看>>
UIcollectionView的使用(首页的搭建1)
查看>>
[原创]AM3352 + TPS65910 调试方法+调试记录
查看>>
.net基本数据类型操作
查看>>
docker 应用-2(Dockerfile 编写以及镜像保存提交)
查看>>
ubuntu 下安装查看pdf的工具
查看>>
UIApplication深入研究
查看>>
解决Ubuntu 12.04更新后 ”系统的网络服务与此版本的网络管理器不兼容“问题
查看>>
python变量
查看>>
牛顿迭代法
查看>>
mac os 中类似于Linux的yum工具,或ubuntu的apt-get工具Homebrew
查看>>
一种美-无法言语
查看>>
Unity场景渲染相关实现的猜想
查看>>
面向对象编程(十四)——面向对象三大特性之多态①
查看>>
单例模式
查看>>
Android 数据库 LiteOrm 的使用
查看>>
hibernate 缓存
查看>>