原生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 相关文章推荐
js通过googleAIP翻译PHP系统的语言配置的实现代码
Oct 17 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 Javascript
详解基于vue-cli优化的webpack配置
Nov 06 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
微信小程序如何再次获取用户授权的方法
May 10 Javascript
vue实现导航菜单和编辑文本的示例代码
Jul 04 Javascript
微信小程序实现星星评分效果
Nov 01 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php权重计算方法代码分享
2014/01/09 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
js使用心得分享
2015/01/13 Javascript
JS获取时间的方法
2015/01/21 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
详解anaconda安装步骤
2020/11/23 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
小学国庆节活动方案策划书
2014/09/16 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
元旦标语大全
2014/10/09 职场文书
大学生创业事迹材料
2014/12/30 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python