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 相关文章推荐
mouse_on_title.js
Aug 25 Javascript
利用js对象弹出一个层
Mar 26 Javascript
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
使用Nuxt.js改造已有项目的方法
Aug 07 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
Sep 20 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
关于layui的动态图标不显示的解决方法
Sep 04 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
Sep 24 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 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
大师制作的中短波矿石收音机
2020/04/02 无线电
PHP操作Memcache实例介绍
2013/06/14 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
js字符串处理之绝妙的代码
2019/04/05 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
python 判断一个进程是否存在
2009/04/09 Python
python Django模板的使用方法(图文)
2013/11/04 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
python 默认参数相关知识详解
2019/09/18 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
初学者学习Python好还是Java好
2020/05/26 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
毕业评语大全
2014/05/04 职场文书
论文诚信承诺书
2014/05/23 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
终止合同协议书范本
2016/03/22 职场文书
Mysql数据库命令大全
2021/05/26 MySQL