js原生之焦点图转换加定时器实例


Posted in Javascript onDecember 12, 2016

在jQuery之焦点图转换-左右的基础上,将jQuery代码改成js原生,并添加定时器(setInterval()和clearInterval())

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>焦点图转换--原生和定时器</title>
 <link rel="stylesheet" href="css/reset.css">
 <style type="text/css">
  .pic-show{width: 480px;overflow: hidden;}
  #pic{width: 1920px;height: 320px;position: relative;}
  #pic img{display: block;float: left;}
  .pic-show>img{display: block;cursor: pointer;opacity: 0.8; position: absolute;top: 142px;left: 30px;}
  .pic-show>img:last-child{display: block; position: absolute;left: 414px; } 
  ul{width: 120px;height: 18px;position: absolute;top: 280px;left: 185px;}
  li{float: left;width: 20px;height: 18px;margin-left: 5px;}
  a{display: block;width: 20px;height: 18px;text-decoration: none;border: 1px solid #ccc;border-radius: 50%;background-color: #ccc;opacity: 0.6;}
  a:hover{background-color: #094a99;}
  .aCss{background-color: #094a99;}
  p{width: 480px;text-align: center;}
 </style>
</head>
<body>
 <div class="pic-show">
  <div id="pic">
   <img src="images/1.jpg" alt="">
   <img src="images/2.jpg" alt="">
   <img src="images/3.jpg" alt="">
   <img src="images/4.jpg" alt="">
  </div>
  <img id="prev" src="images/slider-prev.png" alt="">
  <img id="next" src="images/slider-next.png" alt="">
 </div>
 <ul id="list">
  <li><a href="#" title="日落"></a></li>
  <li><a href="#" title="钢琴"></a></li>
  <li><a href="#" title="大海"></a></li>
  <li><a href="#" title="秋色"></a></li>
 </ul>
 <p id="p">这是一段测试文字</p>
 <script src="js/jquery-3.0.0.js"></script>
 <script type="text/javascript">
  var num=0;
  function G(id){
   return document.getElementById(id)
  }
  var pic = G('pic')
  var next = G('next')
  var prev = G('prev')
  var p = G('p')
  var list = G('list')
  var arr = G('list').getElementsByTagName('a')


 //点击next
  next.onclick=function(){
   if(num<3){
    num=num+1; 
   }
   else{
    num=0;
   }
   console.log(num);
   var mlNum=num * -480+'px';
   pic.style.marginLeft=mlNum;
   for(var j=0;j<arr.length;j++){
    arr[j].style.backgroundColor='#ccc';
   }
   arr[num].style.backgroundColor="#094a99";
   event.preventDefault();

   var txt=arr[num].getAttribute("title");
   console.log(txt);
   p.textContent=txt;
  }


//点击prev
  prev.onclick=function(){
   if(num>0){
    num=num-1; 
   }
   else{
    num=3;
   }
   console.log(num);
   var mlNum2=num * -480+'px';
   pic.style.marginLeft=mlNum2;
   for(var j=0;j<arr.length;j++){
    arr[j].style.backgroundColor='#ccc';
   }
   arr[num].style.backgroundColor="#094a99";
   event.preventDefault();
   var txt=arr[num].getAttribute("title");
   console.log(txt);
   p.textContent=txt;
  }
  for(var i=0;i<arr.length;i++){
   arr[i].index=i;//创建索引值
   arr[i].onclick=function(event){  num=this.index;        
    var mlNum3=num * -480+'px';       pic.style.marginLeft=mlNum3;    
    for(var j=0;j<arr.length;j++){
     arr[j].style.backgroundColor='#ccc';
    }
    this.style.backgroundColor='#094a99';
    event.preventDefault();
    var txt=this.getAttribute("title");
    p.textContent=txt;
   }
  }


//函数封装
  function lunbo(){
   if(num<3){
    num=num+1; 
   }
   else{
    num=0;
   }
   console.log(num);
   var mlNum=num * -480+'px';
   pic.style.marginLeft=mlNum;
   for(var j=0;j<arr.length;j++){
    arr[j].style.backgroundColor='#ccc';
   }
   arr[num].style.backgroundColor="#094a99";
   event.preventDefault();
   var txt=arr[num].getAttribute("title");
   console.log(txt);
   p.textContent=txt;
  }


//通过定时器调用封装好的函数
  var stop=setInterval(lunbo,1500);


//鼠标放上和离开时定时器的状态
  pic.onmouseenter=function(){
   clearInterval(stop)
  }
  pic.onmouseleave=function(){
   stop=setInterval(lunbo,1500)
  }
 </script>
</body>
</html>

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

Javascript 相关文章推荐
关于javascript function对象那些迷惑分析
Oct 24 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
javascript中AJAX用法实例分析
Jan 30 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
小程序wx.getUserProfile接口的具体使用
Jun 02 Javascript
IntersectionObserver API 详解篇
Dec 11 #Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 #Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 #Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 #Javascript
jquery滚动条插件(可以自定义)
Dec 11 #Javascript
jquery实现简单的瀑布流布局
Dec 11 #Javascript
js倒计时显示实例
Dec 11 #Javascript
You might like
php 缩略图实现函数代码
2011/06/23 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
php计算函数执行时间的方法
2015/03/20 PHP
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
javascript 动态创建表格
2015/01/08 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
分享6个隐藏的python功能
2017/12/07 Python
python实现海螺图片的方法示例
2019/05/12 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
应届毕业生求职信范例分享
2013/12/17 职场文书
成品仓管员工作职责
2013/12/29 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
幼儿园安全责任书
2014/04/14 职场文书
2014年度党员自我评议
2014/09/13 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
信访工作个人总结
2015/03/03 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
深入理解pytorch库的dockerfile
2022/06/10 Python