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技巧
Dec 06 Javascript
javascript 常用代码技巧大收集
Feb 25 Javascript
js原生appendChild的bug解决心得分享
Jul 01 Javascript
深入讲解AngularJS中的自定义指令的使用
Jun 18 Javascript
原生js实现查询天气小应用
Dec 09 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
15 分钟掌握vue-next响应式原理
Oct 13 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
代码解析React中setState同步和异步问题
Jun 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 中执行系统外部命令
2006/10/09 PHP
同时提取多条新闻中的文本一例
2006/10/09 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
PHP中16个高危函数整理
2019/09/19 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
Python高效编程技巧
2013/01/07 Python
python中查看变量内存地址的方法
2015/05/05 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
师范生自荐信
2013/10/27 职场文书
监理资料员岗位职责
2014/01/03 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
病媒生物防治方案
2014/05/13 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS