原生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 相关文章推荐
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
Jan 29 Javascript
User Scripts: Video Download by User Scripts
May 14 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
AngularJS入门教程(零):引导程序
Dec 06 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
Oct 29 Javascript
使用javascript插入样式
Mar 14 Javascript
面包屑导航详解
Dec 07 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 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
Smarty模板快速入门
2007/01/04 PHP
php写的简易聊天室代码
2011/06/04 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
使用Python函数进行模块化的实现
2019/11/15 Python
学Python 3的理由和必要性
2019/11/19 Python
python 使用shutil复制图片的例子
2019/12/13 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
求职自荐信的格式
2014/04/07 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
道德演讲稿
2014/05/21 职场文书
安全检查汇报材料
2014/12/26 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫