zoukankan      html  css  js  c++  java
  • 轮播图插件

    代码地址:链接

    html代码

    1     <div class="focus" id="focus">
    2         <ul class="focuspic" id="slidePic">
    3             <li><a href="#" target="_blank"><img src="../images/banner1.png"/></a></li>
    4             <li><a href="#" target="_blank"><img src="../images/banner2.png" /></a></li>
    5             <li><a href="#" target="_blank"><img src="../images/banner3.png" /></a></li>
    6         </ul>
    7     </div>

    调用js

    1 window.onload=function () {
    2           //轮播图调用
    3         autoSlide.init({
    4             "slideLi":document.getElementById("slidePic").children
    5         }); //只是调用Init方法
    6 }

    js代码

      1 (function () {
      2     function autoSlide() {}
      3     
      4     autoSlide.prototype.init = function (initParam) {
      5         //都在这里初始化
      6         this.dsq=null;
      7         //判断是手机还是电脑打开,选择初始化
      8         if(!this.isPhone()){
      9             this.phoneSlide(initParam); //initParam是形参
     10         }else{
     11             this.computerSlide(initParam);
     12         }
     13     }
     14     autoSlide.prototype.computerSlide=function (param) {//电脑端初始化
     15         var _this = this;//区分作用域
     16         var divEle = document.createElement("div");//创建一个图片列表box
     17         divEle.className = "slide-box";
     18         var divFocus = document.createElement("div"); //创建一个图片焦点
     19         divFocus.className = "slide-focus";
     20         for(var i=0;i<param.slideLi.length;i++){
     21             var slideItem = document.createElement("div");//创建图片项目
     22             var focusItem = document.createElement("span");
     23             focusItem.setAttribute("data-index",i);
     24             if(i == 0){
     25                 slideItem.className = "active";
     26                 focusItem.className = "on";
     27             }
     28             //注意不要使用mousemove,会导致重复调用
     29             focusItem.onmousemove = function () {
     30                 if(this.className.indexOf("on") < 0){
     31                     document.getElementsByClassName("on")[0].className = "";//清除之前的标记
     32                     this.className = "on";//设置当前的状态
     33                     divEle.getElementsByClassName("active")[0].className = "";//清除
     34                     divEle.children[this.getAttribute("data-index")].className = "active";//设置当前的标记
     35                 }
     36             }
     37 
     38             //querySelectorAll获取出来的是一个数组,所以要选择第几个
     39             slideItem.style.backgroundImage = "url('"+param.slideLi[i].querySelectorAll("img")[0].getAttribute("src")+"')"; //这里也需要像css一样,写url();
     40             divEle.appendChild(slideItem);//存储到图片列表box
     41             divFocus.appendChild(focusItem);//存储span元素到图片焦点box
     42         }
     43 
     44         document.getElementById("slidePic").remove();
     45         var focus = document.getElementById("focus");
     46         focus.onmousemove = function(){
     47             clearTimeout(_this.dsq);
     48         }
     49         focus.onmouseout = function(){
     50             _this.computerAuto();
     51         }
     52         focus.appendChild(divEle);
     53         focus.appendChild(divFocus);
     54         this.computerAuto();
     55     }
     56 
     57     autoSlide.prototype.computerAuto=function () { //自动播放
     58         /*
     59          1、获取当前是第几个
     60          2、获取总共有多少个
     61          3、匹配如果当前是最后一个,那么下一个就是第一个
     62          4、调用定时器自动执行(setInterval有Bug,长期调用,可能会导致越来越快)
     63          */
     64         var _this = this;
     65         this.dsq = setTimeout(function () {
     66             var slideBox = document.getElementsByClassName("slide-box")[0].children;
     67             var slideFocus = document.getElementsByClassName("slide-focus")[0].children;
     68             var currFocus = Number(document.getElementsByClassName("slide-focus")[0].getElementsByClassName("on")[0].getAttribute("data-index"));
     69             slideBox[currFocus].className = "";
     70             slideFocus[currFocus].className = "";
     71             if((slideBox.length-1) <= currFocus){
     72                 slideBox[0].className = "active";
     73                 slideFocus[0].className = "on";
     74             }else{
     75                 slideBox[currFocus+1].className = "active";
     76                 slideFocus[currFocus+1].className = "on";
     77             }
     78             _this.computerAuto();
     79         },3000)
     80     }
     81     autoSlide.prototype.phoneSlide=function () {//手机端初始化
     82 
     83     }
     84     autoSlide.prototype.isPhone = function () {
     85         var userAgentInfo = navigator.userAgent //查看浏览器用于 HTTP 请求的用户代理头的值
     86         var agents = ["Android", "iPhone",
     87                      "SymbianOS", "Windows Phone",
     88                      "iPad", "iPod"];//系统名字
     89         var flag = true;
     90         for(var i=0;i<agents.length;i++){
     91             if(userAgentInfo.indexOf(agents[i]) > 0){
     92                 flag = false; //判断是否包含,修改flag状态
     93                 break;//结束for循环判断
     94             }
     95         }
     96        return flag
     97     }
     98 
     99     var autoSlides = new autoSlide();
    100 
    101     window["autoSlide"] = autoSlides;
    102 })()  //自执行函数
  • 相关阅读:
    NS3笔录
    网络性能指标的几个定义
    获取Emum类型值的数量
    Container类型元素累加
    ax用代码调用静态查询
    FormRun类的方法detach()作用
    Num2Str函数使用介绍
    查询生产单PO的位置
    AX使用临时表作为数据源
    Date2Str函数使用介绍
  • 原文地址:https://www.cnblogs.com/zhaobao1830/p/6543465.html
Copyright © 2011-2022 走看看