• 运动框架 ---- 旋转木马轮播图


    代码如下:<!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)
    }
  • 相关阅读:
    最基础的账户余额要怎么在 mysql 实现?
    跳跃表时间复杂度分析推导
    Redis:RDB 中 fork 的使用
    字段、约束和索引在存储过程中的判断
    高效沟通的基本流程
    人月神话--画蛇添足
    课程评价及加分项
    人月神话--提纲挈领
    热词搜索七
    《大道至简:软件工程实践者的思想》
  • 原文地址:https://www.cnblogs.com/Sky-Ice/p/10130279.html
Copyright © 2020-2023  润新知