zoukankan      html  css  js  c++  java
  • 运动框架 ---- 旋转木马轮播图

    代码如下:<!DOCTYPE html>

    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, input, legend, li, ol, p, pre, td, textarea, th, ul {
                margin: 0;
                padding: 0
            }
    
            body, button, input, select, textarea {
                font: 12px/1.5 "Microsoft YaHei", "微软雅黑", SimSun, "宋体", sans-serif;
                color: #666;
            }
    
            ol, ul {
                list-style: none
            }
    
            a {
                text-decoration: none
            }
    
            fieldset, img {
                border: 0;
                vertical-align: top;
            }
    
            a, input, button, select, textarea {
                outline: none;
            }
    
            a, button {
                cursor: pointer;
            }
    
            #wrap {
                 1200px;
                margin: 100px auto;
            }
    
            #slide {
                height: 500px;
                position: relative;
            }
    
            #slide li {
                position: absolute;
                top: 0;
                left: 200px;
            }
    
            #slide li img {
                 100%;
            }
    
            #arrow {
                opacity: 0;
            }
    
            .prev, .next {
                 76px;
                height: 112px;
                position: absolute;
                top: 50%;
                margin-top: -56px;
                background: url("images/prev.png") no-repeat;
                z-index: 99;
            }
    
            .next {
                right: 0;
                background: url("images/next.png");
            }
        </style>
    </head>
    <body>
    <div id="wrap">
        <div id="slide">
            <ul>
                <li><a href="javascript:void(0)"><img src="images/slidepic1.jpg" alt=""></a></li>
                <li><a href="javascript:void(0)"><img src="images/slidepic2.jpg" alt=""></a></li>
                <li><a href="javascript:void(0)"><img src="images/slidepic3.jpg" alt=""></a></li>
                <li><a href="javascript:void(0)"><img src="images/slidepic4.jpg" alt=""></a></li>
                <li><a href="javascript:void(0)"><img src="images/slidepic5.jpg" alt=""></a></li>
            </ul>
            <div id="arrow">
                <a href="javascript:void(0)" class="prev" id="arrLeft"></a>
                <a href="javascript:void(0)" class="next" id="arrRight"></a>
            </div>
        </div>
    </div>
    <script src="Move.js"></script>
    <script !src="">
      // 定义 li 的一些属性及值 var config = [ { 400, top: 20, left: 50, opacity: 20, zIndex: 2 },//0 { 600, top: 70, left: 0, opacity: 80, zIndex: 3 },//1 { 800, top: 100, left: 200, opacity: 100, zIndex: 4 },//2 { 600, top: 70, left: 600, opacity: 80, zIndex: 3 },//3 { 400, top: 20, left: 750, opacity: 20, zIndex: 2 }//4 ];
      // 保证动画执行完毕再执行下一次动画
    var flag = true;
      // 定义自动播放的 timer
    var timer = null; var lis = document.getElementsByTagName('li');   // 循环执行 li 初始化各项属性 function assign() { for (var i = 0; i < lis.length; i++) { Move(lis[i], config[i], function () { flag = true; }) } } assign();   // 向左执行动画 function changeImgLeft() { if (flag) { flag = false; // 每次动画执行完毕,flag 重新赋值 config.unshift(config.pop()); // 将数组对象的最后一项添加到头部 assign(); } }   // 向右执行动画 function changeImgRight() { if (flag) { flag = false; config.push(config.shift()); // 将数组对象的第一项添加到尾部 assign(); } }   // 定义自动播放函数 function autoPlay() {
         // 清除上一次动画 clearInterval(timer); timer
    = setInterval(function () { changeImgLeft(); }, 3000) } autoPlay();   // 鼠标进入,停止自动播放,左右焦点显示  $("slide").onmouseover = function () { clearInterval(timer); Move($("arrow"), {"opacity": 100}); }; //鼠标离开,执行自动播放,左右焦点的div隐藏 $("slide").onmouseout = function () { autoPlay(); Move($("arrow"), {"opacity": 0}); }; $('arrLeft').onclick = function () { changeImgLeft(); } $('arrRight').onclick = function () { changeImgRight(); } </script> </body> </html>

    这里是 Move.js :

    // 获取 id 的 元素的函数

    function $(id) {
        return document.getElementById(id);
    }

    // 获取非行间样式函数

    function getStyle(obj, name) {
    if (obj.currentStyle) {
    return obj.currentStyle[name];
    } else {
    return getComputedStyle(obj, null)[name];
    }
    }

    // 运动函数

    function Move(obj, json, fn) {
    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
    var flag = true;
    for (var arr in json) {
    var offsetValue = arr == 'opacity' ? Math.round(parseFloat(getStyle(obj, arr)) * 100) : parseInt(getStyle(obj, arr));
    var target = parseInt(json[arr]);
    var speed = (target - offsetValue) / 10;
    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
    offsetValue += speed;
    if (arr == 'opacity') {
    obj.style.opacity = offsetValue / 100;
    } else if (arr == 'zIndex') {
    obj.style.zIndex = json[arr];
    } else {
    obj.style[arr] = offsetValue + 'px';
    }
    if (target != offsetValue) {
    flag = false;
    }
    }
    if (flag) {
    clearInterval(obj.timer);
    if (fn) {
    fn();
    }
    }


    }, 20)
    }
  • 相关阅读:
    (转载)SAPI 包含sphelper.h编译错误解决方案
    C++11标准的智能指针、野指针、内存泄露的理解(日后还会补充,先浅谈自己的理解)
    504. Base 7(LeetCode)
    242. Valid Anagram(LeetCode)
    169. Majority Element(LeetCode)
    100. Same Tree(LeetCode)
    171. Excel Sheet Column Number(LeetCode)
    168. Excel Sheet Column Title(LeetCode)
    122.Best Time to Buy and Sell Stock II(LeetCode)
    404. Sum of Left Leaves(LeetCode)
  • 原文地址:https://www.cnblogs.com/Sky-Ice/p/10130279.html
Copyright © 2011-2022 走看看