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引导程序
Oct 26 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 Javascript
详解js删除数组中的指定元素
Oct 31 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
Jan 14 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 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 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
js实现微信聊天界面
2020/08/09 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
python redis存入字典序列化存储教程
2020/07/16 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
存储过程的优点有哪些
2012/09/27 面试题
十一个高级MySql面试题
2014/10/06 面试题
业务主管岗位职责
2013/11/20 职场文书
教育科研先进个人材料
2014/01/26 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
教师读书活动总结
2014/05/07 职场文书
2014年党支部学习材料
2014/05/19 职场文书
网络销售员岗位职责
2015/04/11 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android