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 相关文章推荐
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 Javascript
dwz 如何去掉ajaxloading具体代码
May 22 Javascript
自动设置iframe大小的jQuery代码
Sep 11 Javascript
基于javascript实现窗口抖动效果
Jan 03 Javascript
使用jquery提交form表单并自定义action的实现代码
May 25 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
详解Vue2中组件间通信的解决全方案
Jul 28 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
vue2.0实现音乐/视频播放进度条组件
Jun 06 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
Jul 29 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中实现获取随机数组列表的自定义函数
2015/04/02 PHP
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python简单的函数定义和用法实例
2015/05/07 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python flask实现分页效果
2017/06/27 Python
python使用zip将list转为json的方法
2018/12/31 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
python 求定积分和不定积分示例
2019/11/20 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
python里glob模块知识点总结
2021/01/05 Python
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
应届生会计电算化求职信
2013/10/03 职场文书
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
委托书如何写
2014/08/30 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
2014年绿化工作总结
2014/12/09 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
刑事撤诉申请书
2015/05/18 职场文书