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弹出层单纯的绝对定位居中示例代码
Feb 18 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
vue二级路由设置方法
Feb 09 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
Jul 04 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
webpack 处理CSS资源的实现
Sep 27 Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 Javascript
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
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/02/27 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
js 操作select与option(示例讲解)
2013/12/20 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python生成器用法实例详解
2019/11/22 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
servlet面试题
2012/08/20 面试题
小学敬老月活动方案
2014/02/11 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
推荐信模板
2014/05/09 职场文书
十八大演讲稿
2014/05/22 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
创先争优承诺书
2015/01/20 职场文书
大学生自荐书范文
2015/03/05 职场文书
主持稿开场白
2015/06/01 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL