zoukankan      html  css  js  c++  java
  • 功能整合(二):轮播图(可控)、事件流

    1.轮播图

    可实现:

    自动轮播(加载完成后调用定时器)、鼠标移入停止(停止定时器)、鼠标移出开始(开始定时器),点击切换(点击事件)

     1 window.onload = function(){
     2     /*轮播图*/
     3     //自动加载
     4     s = setInterval(down,2000);
     5 }
     6 /*控制轮播图的定时器*/
     7 //定义一个变量作为数组下标
     8 var lbnum = 0;
     9 function down(yyNum){
    10     //定义一个图片路径数组
    11     var lbimgArr = ['../resoures/images/shouye/24401108web1.png','../resoures/images/shouye/2440_1.png','../resoures/images/shouye/412pcshoujiao244011081.png'];
    12     //找到图片所在的div
    13     var bann = document.getElementById('banner');
    14     //找到小圆圈存为数组
    15     var yArr = document.getElementsByClassName('xyy');
    16     //自动给小圆圈设置样式
    17     for(var i = 0;i < yArr.length; i++){
    18         yArr[i].style.backgroundPosition = '0px 0px';
    19     }
    20     if(yyNum == 0 || yyNum == 1 || yyNum == 2){
    21         lbStop();
    22         yArr[yyNum].style.backgroundPosition = '0px -18px';
    23         bann.setAttribute('src',lbimgArr[yyNum]);
    24     }else{
    25         yArr[lbnum].style.backgroundPosition = '0px -18px';
    26         bann.setAttribute('src',lbimgArr[lbnum]);
    27         lbnum++;
    28         if(lbnum == lbimgArr.length){
    29             lbnum = 0;
    30         }
    31     }
    32 }
    33 //开始定时器
    34 function lbStart(){
    35     s = setInterval(down,2000);
    36 }
    37 //停止定时器
    38 function lbStop(){
    39     clearInterval(s);
    40 }
    轮播图代码示例

    2.事件流

    多个彼此嵌套元素,他们拥有相同的事件,最内部元素事件被触发后,外边多个元素的同类型事件也会被触发,多个元素他们同类型事件同时执行的效果称为“事件流”。

    比如:给一个大的div加鼠标移出事件,只要鼠标放在子级元素上就会被判定为移出。

    以下两个都可以添加事件,但是如果与事件流有关,要用Add..

    obj.setAttribute('onClick','show()');  //不能取消事件流
    obj.addEventListener('click',show());  //可以取消事件流

     1 function appOut(overNum){    //根据情况,可给事件传参
     2     function isMouseLeaveOrEnter(e, handler) {    
     3         var reltg=e.relatedTarget?e.relatedTarget:e.type=='mouseout'?e.toElement:e.fromElement;    
     4             while (reltg && reltg != handler){
     5              reltg = reltg.parentNode; 
     6             }       
     7         return (reltg != handler);    
     8         } 
     9         //找到默认显示的div
    10         var div1 = document.getElementsByClassName('onMover')[overNum];
    11         //找到默认隐藏的div
    12         var div2 = document.getElementsByClassName('divb_t')[overNum];
    13         div2.onmouseout=function(ev){
    14         var ev=ev||window.event;
    15         if(!isMouseLeaveOrEnter(ev,div2)){
    16           return false;
    17         }
    18         div2.style.height = '310px';
    19         div2.style.display = 'none';
    20         div1.style.opacity = '1';
    21         }
    22 }    
    事件流代码示例
  • 相关阅读:
    Viewpager的用法
    Android上下文菜单
    Android开机自启动程序
    微信小程序踩过的坑
    Sublime Text 配置python文件
    Pandas速查手册中文版
    scrapy架构设计分析
    爬虫服务集群处理nginx返回504
    phantomjs 无法打开https网站
    Selenium判断获取的元素是否可见(display:none)
  • 原文地址:https://www.cnblogs.com/flypea93/p/8852997.html
Copyright © 2011-2022 走看看