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 相关文章推荐
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
js function定义函数使用心得
Apr 15 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
JS中不为人知的五种声明Number的方式简要概述
Feb 22 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
Jun 23 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
Vue实现百度下拉提示搜索功能
Jun 21 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
JavaScript实现职责链模式概述
Jan 25 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 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
一个颜色轮换的简单例子
2006/10/09 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
PDO::rollBack讲解
2019/01/29 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
动态调用css文件——jquery的应用
2007/02/20 Javascript
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
汇智创新科技发展有限公司
2015/12/06 面试题
EJB3推出JPA的原因
2013/10/16 面试题
广告学专业应届生求职信
2013/10/01 职场文书
材料加工硕士生求职信
2013/10/10 职场文书
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
2015年电工工作总结
2015/04/10 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server