zoukankan      html  css  js  c++  java
  • javascript焦点图自动缓冲滚动

    html中调用的js库,之前的随笔中有写,就不细说了,不明白的可以留言给我

      1 <!DOCTYPE html>
      2 <html>
      3 
      4 <head>
      5     <meta charset="UTF-8">
      6     <title>Document</title>
      7     <style type="text/css">
      8         * {
      9             margin: 0;
     10             padding: 0;
     11             font-size: 12px;
     12         }
     13         
     14         #ptoDiv {
     15             width: 400px;
     16             height: 200px;
     17             margin: 50px auto 0;
     18             position: relative;
     19             overflow: hidden;
     20         }
     21         
     22         #ptoBox {
     23             width: 1600px;
     24             height: 200px;
     25             position: absolute;
     26             left: 0;
     27         }
     28         
     29         #pto {
     30             list-style-type: none;
     31         }
     32         
     33         .base {
     34             width: 400px;
     35             height: 200px;
     36             float: left;
     37         }
     38         
     39         .base1 {
     40             background: red;
     41         }
     42         
     43         .base2 {
     44             background: blue;
     45         }
     46         
     47         .base3 {
     48             background: pink;
     49         }
     50         
     51         .base4 {
     52             background: green;
     53         }
     54         
     55         #btn1 {
     56             position: absolute;
     57             width: 30px;
     58             height: 30px;
     59             background: yellow;
     60             top: 85px;
     61             left: 0;
     62             opacity: 0.5;
     63             filter: alpha(opacity=50);
     64             cursor: pointer;
     65         }
     66         
     67         #btn2 {
     68             position: absolute;
     69             width: 30px;
     70             height: 30px;
     71             background: yellow;
     72             top: 85px;
     73             right: 0;
     74             opacity: 0.5;
     75             filter: alpha(opacity=50);
     76             cursor: pointer;
     77         }
     78         
     79         #cirBox {
     80             width: 80px;
     81             height: 16px;
     82             position: absolute;
     83             top: 160px;
     84             left: 160px;
     85         }
     86         /*16*4+4*4*/
     87         
     88         #cir {
     89             list-style-type: none;
     90             position: relative;
     91         }
     92         
     93         #cir li {
     94             float: left;
     95             width: 16px;
     96             height: 16px;
     97             margin: 0 2px;
     98             background: white;
     99         }
    100         
    101         #cir .on {
    102             width: 16px;
    103             height: 16px;
    104             background: yellow;
    105         }
    106     </style>
    107     <script src="changfunction.js"></script>
    108     //这里是引用之前写的js库,方便一些
    109 </head>
    110 
    111 <body>
    112     <div id="ptoDiv">
    113         <div id="ptoBox">
    114             <ul id="pto">
    115                 <li class="base base1">one</li>
    116                 <li class="base base2">two</li>
    117                 <li class="base base3">three</li>
    118                 <li class="base base4">four</li>
    119             </ul>
    120         </div>
    121 
    122         <span id="btn1"></span>
    123         <span id="btn2"></span>
    124 
    125         <div id="cirBox">
    126             <ul id="cir">
    127                 <li class="on"></li>
    128                 <li></li>
    129                 <li></li>
    130                 <li></li>
    131 
    132             </ul>
    133         </div>
    134     </div>
    135 </body>
    136 
    137 </html>

    下面是js代码

    <script>
            function $(id) {
                return typeof id === "string" ? document.getElementById(id) : id;
            }
            window.onload = function() {
                //定义两个按钮
                var btnLeft = $("btn1");
                var btnRight = $("btn2");
                //pto为定义的图片集和
                var pto = $("pto").getElementsByTagName("li");
                //ptoBox为定义图片所在的div
                var ptoBox = $("ptoBox");
                //cir为小框对应的集合
                var cir = $("cir").getElementsByTagName("li");
                //定义一个定时器
                var timer = null;
                //Div为定义最外层的div
                var Div = $("ptoDiv");
                //设置一个全局变量用来控制图片和小框的移动
                var index = 0;
    
    
                //这个for循环是为了控制当鼠标移动至小框后,显示和隐藏图片
                for (var i = 0; i < cir.length; i++) {
                    //定义id为小框排序0~3
                    cir[i].id = i;
                    //鼠标移动至小框触发事件
                    cir[i].onmouseenter = function() {
                        //隐藏小框
                        clearOn();
                        //显示小框
                        showOn(this.id);
                        //滚动至小框对应的图片
                        changeBtn(ptoBox, {
                            left: (-400 * this.id)
                        });
                    }
                }
    
                //这两队onmouseenter和onmouseleave为按钮的透明度变化
                btnLeft.onmouseenter = function() {
                    changeBtn(btnLeft, {
                        opacity: 100
                    });
                }
    
                btnLeft.onmouseleave = function() {
                    changeBtn(btnLeft, {
                        opacity: 50
                    });
                }
    
                btnRight.onmouseenter = function() {
                    changeBtn(btnRight, {
                        opacity: 100
                    });
                }
    
                btnRight.onmouseleave = function() {
                    changeBtn(btnRight, {
                        opacity: 50
                    });
                }
    
                //右按钮绑定鼠标点击事件
                btnRight.onclick = function() {
                        //设置图片右滚循环
                        //原理就不细说了,以前的随笔里有解释
                        if (index < pto.length - 1) {
                            index++;
                        } else {
                            index = 0;
                        }
                        //调用函数,用于每一张图片的滚动
                        changeBtn(ptoBox, {
                            left: (-400 * index)
                        });
                        //隐藏小框
                        clearOn();
                        //显示小框
                        showOn(index);
                    }
                    //左按钮绑定鼠标点击事件
                btnLeft.onclick = function() {
                    //图片左移判定,原理不多说看以前的随笔
                    if (index == 0) {
                        index = pto.length - 1;
                    } else {
                        index--;
                    }
                    changeBtn(ptoBox, {
                        left: (-400 * index)
                    });
                    clearOn();
                    showOn(index);
    
                }
    
                //隐藏函数
                function clearOn() {
                    for (var i = 0; i < cir.length; i++) {
                        cir[i].className = "";
                    }
                }
    
                //显示函数
                function showOn(x) {
                    for (var i = 0; i < cir.length; i++) {
                        if (i == x) {
                            cir[i].className = "on";
                        }
                        index = x;
                    }
                }
    
                //定义函数用于设置定时器
                function start() {
                    timer = setInterval(function() {
                        btnRight.onclick();
                    }, 3000);
    
                }
    
                //定义函数用于清除定时器
                function stop() {
                    clearInterval(timer);
                }
    
                //当鼠标进入,则停止
                Div.onmouseenter = stop;
                //当鼠标离开,则开始
                Div.onmouseleave = start;
    
                //当进入页面就开始执行循环
                start();
            }
        </script>
  • 相关阅读:
    R.drawable 转 bitmap
    opengl
    android 时间1
    mysql 管理工具
    使用BroadcastReceiver实现开机启动Service或Activity
    webView
    博客收藏1
    popupWindow 弹出菜单
    viewpager android viewGroup左右滑动方法1
    Android中Bitmap和Drawable
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6050947.html
Copyright © 2011-2022 走看看