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 相关文章推荐
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 Javascript
jQuery动画animate方法使用介绍
May 06 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
用p5.js制作烟花特效的示例代码
Mar 21 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 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中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
一段实时更新的时间代码
2006/07/07 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JS实现手风琴特效
2020/11/08 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
六十岁生日答谢词
2014/01/10 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
实习单位意见
2015/06/04 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python