原生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 相关文章推荐
javascript EXCEL 操作类代码
Jul 30 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
Jun 06 Javascript
html文档中的location对象属性理解及常见的用法
Aug 13 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
jQuery简单设置文本框回车事件的方法
Aug 01 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
利用JS如何获取form表单数据
Dec 19 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
虚拟主机中对PHP的特殊设置
2006/10/09 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
python获取图片颜色信息的方法
2015/03/18 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python版本五子棋的实现代码
2018/12/11 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
Python类及获取对象属性方法解析
2020/06/15 Python
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
一套C++笔试题面试题
2012/06/06 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
学校办公室主任职责
2013/12/27 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
优秀员工评优方案
2014/06/13 职场文书
第一军规观后感
2015/06/12 职场文书
JS不要再到处使用绝对等于运算符了
2021/04/30 Javascript