原生JS实现幻灯片


Posted in Javascript onFebruary 22, 2017

效果如下:

原生JS实现幻灯片

代码如下:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <style type = "text/css">
 *{ padding: 0; margin: 0; }
 li { list-style: none; }
 .box {
 width: 800px;
 height: 450px;
 margin: 50px auto;
 position: relative;
  overflow:hidden;
 }
 .box span {
 width: 40px;
 height: 60px; 
 display: block;
 position: absolute;
 top: 225px;
 margin-top: -20px;
 cursor: pointer;
 z-index: 1;
 }
 .box #left {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left 0;
 left: 0;
  margin-top: -66px;
 display: none;
 }
 .box #right {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right 0;
 right: 0;
  margin-top: -66px;
 display: none;
 }
 .box #txt {
 width: 100%;
 height: 30px;
 background-color: #000;
 opacity: 0.4;
 position: absolute;
 bottom: 0;
 color: #fff;
 line-height: 30px;
 text-align: center;
 }
 #ad {
 width: 4000px;
 height: 450px;
 position: absolute;
 left: -1600px;
 }
 #ad li {
 float: left;
 }
  .box #left:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left -112px;
 }
 .box #right:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right -112px;
 }
 </style>
 <script type = "text/javascript">
 window.onload = function(){
 function $(id){ return document.getElementById(id);}
 var aLi = $("ad").children;
 function animate(obj,target,arrt){
  //关闭上一个定时器
  clearInterval(obj.timer);
  $("txt").innerHTML = obj.children[0].children[0].alt;

  //管理定时器
  obj.timer = setInterval(function(){
 //移动步长
  var step = (target - obj.offsetLeft) / 10;
  //步长取整
  step = step > 0? Math.ceil(step):Math.floor(step);
  //移动盒子 : 盒子位置 + 步长
  obj.style.left = obj.offsetLeft + step+ "px";
  //关闭定时器
  if(obj.offsetLeft%800 ==0){
  clearInterval(obj.timer);
  //判断点击的方向
  if(arrt === "left"){
  var oLi = $("ad").children[aLi.length - 1].cloneNode(true);
  //添加到最前面
  obj.insertBefore(oLi,obj.children[0]);
  //删除最后一个盒子
  obj.removeChild(obj.children[aLi.length - 1]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }else{
  //克隆第一个盒子
  var oLi = obj.children[0].cloneNode(true);
  //添加到最后面
  obj.appendChild(oLi);
  //删除第一个盒子
  obj.removeChild(obj.children[0]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }
 }
  },20);
 }
 var timer = setInterval(autoplay,2000);
 function autoplay(){
  animate($("ad"),-2400,"right");
 }
 $("ad").parentNode.onmouseover = function(){
 clearInterval(timer);
 $("left").style.display = "block";
  $("right").style.display = "block";
 }
 $("ad").parentNode.onmouseout = function(){
  $("left").style.display = "none";
  $("right").style.display = "none";
  timer = setInterval(autoplay,2000);
 }
 $("left").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-800,"left");
 }
 $("right").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-2400,"right");
 }
 }
 </script>
 </head>
 <body>
 <div class="box"> 
 <ul id="ad">
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/4.jpg" alt="闲静似娇花照水,行动如弱柳扶风。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/5.jpg" alt="心较比干多一窍,病如西子胜三分。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/1.jpg" alt="两弯似蹙非蹙笼烟眉,一双似喜非喜含情目。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/2.jpg" alt="态生两靥之愁,娇袭一身之病。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/3.jpg" alt="泪光点点,娇喘微微。"></li>
 </ul>
 <p id="txt">泪光点点,娇喘微微</p>
 <span id="left"></span>
 <span id="right"></span>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
基于jquery的3d效果实现代码
Mar 23 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
Oct 21 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
JavaScript 学习笔记之变量及其作用域
Jan 14 Javascript
javascript中apply/call和bind的使用
Feb 15 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
es6在react中的应用代码解析
Nov 08 Javascript
基于vue中keep-alive缓存问题的解决方法
Sep 21 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
Webpack3+React16代码分割的实现
Mar 03 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 #Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 #Javascript
js中document.referrer实现移动端返回上一页
Feb 22 #Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 #Javascript
angular 动态组件类型详解(四种组件类型)
Feb 22 #Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 #Javascript
JavaScript实现256色转灰度图
Feb 22 #Javascript
You might like
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
php算法实例分享
2015/07/14 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
php格式文件打开的四种方法
2018/02/24 PHP
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
python 获取网页编码方式实现代码
2017/03/11 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
对python多线程与global变量详解
2018/11/09 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
请解释virtual关键字的含义
2015/06/17 面试题
进修护士自我鉴定
2013/10/14 职场文书
高中地理教学反思
2014/01/29 职场文书
劳动竞赛口号
2014/06/16 职场文书
行政答辩状范文
2015/05/21 职场文书
无线电通信名词解释
2022/02/18 无线电