zoukankan      html  css  js  c++  java
  • 0197 案例:筋头云

    1. 利用动画函数做动画效果
    2. 原先筋斗云的起始位置是0
    3. 鼠标经过某个小li,把当前小li的offsetLeft 位置做为目标值即可
    4. 鼠标离开某个小li,就把目标值设为 0
    5. 如果点击了某个小li, 就把li当前的位置存储起来,做为筋斗云的起始位置
    <!DOCTYPE html>
    <html>
    
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            * {
                margin: 0;
                padding: 0
            }
            
            ul {
                list-style: none;
            }
            
            body {
                background-color: black;
            }
            
            .c-nav {
                 900px;
                height: 42px;
                background: #fff url(images/rss.png) no-repeat right center;
                margin: 100px auto;
                border-radius: 5px;
                position: relative;
            }
            
            .c-nav ul {
                position: absolute;
            }
            
            .c-nav li {
                float: left;
                 83px;
                text-align: center;
                line-height: 42px;
            }
            
            .c-nav li a {
                color: #333;
                text-decoration: none;
                display: inline-block;
                height: 42px;
            }
            
            .c-nav li a:hover {
                color: white;
            }
            
            .c-nav li.current a {
                color: #0dff1d;
            }
            
            .cloud {
                position: absolute;
                left: 0;
                top: 0;
                 83px;
                height: 42px;
                background: url(images/cloud.gif) no-repeat;
            }
        </style>
        <script src="animate.js"></script>
        <script>
            window.addEventListener('load', function() {
                // 1. 获取元素
                var cloud = document.querySelector('.cloud');
                var c_nav = document.querySelector('.c-nav');
                var lis = c_nav.querySelectorAll('li');
                // 2. 给所有的小li绑定事件 
                // 这个current 做为筋斗云的起始位置
                var current = 0;
                for (var i = 0; i < lis.length; i++) {
                    // (1) 鼠标经过把当前小li 的位置做为目标值
                    lis[i].addEventListener('mouseenter', function() {
                        animate(cloud, this.offsetLeft);
                    });
                    // (2) 鼠标离开就回到起始的位置 
                    lis[i].addEventListener('mouseleave', function() {
                        animate(cloud, current);
                    });
                    // (3) 当我们鼠标点击,就把当前位置做为目标值
                    lis[i].addEventListener('click', function() {
                        current = this.offsetLeft;
                    });
                }
            })
        </script>
    </head>
    
    <body>
        <div id="c_nav" class="c-nav">
            <span class="cloud"></span>
            <ul>
                <li class="current"><a href="#">首页新闻</a></li>
                <li><a href="#">杰帅666</a></li>
                <li><a href="#">活动策划</a></li>
                <li><a href="#">企业文化</a></li>
                <li><a href="#">招聘信息</a></li>
                <li><a href="#">公司简介</a></li>
                <li><a href="#">我是佩奇</a></li>
                <li><a href="#">啥是佩奇</a></li>
            </ul>
        </div>
    </body>
    
    </html>
    

  • 相关阅读:
    tornado+websocket+mongodb实现在线视屏文字聊天
    mongoexport 导出需要授权数据库中的集合 报错 Authentication failed.
    nginx日志中添加请求的response日志
    SSE(Server-sent events)技术在web端消息推送和实时聊天中的使用
    RESTful接口设计原则和优点
    一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程
    项目中记录影响性能的缓慢数据库查询
    macos Item2 添加 Shell Integration (ftp传输)
    windows安装 阿里云的Fun工具
    windows10安装docker[含百度网盘docker安装包]
  • 原文地址:https://www.cnblogs.com/jianjie/p/12191583.html
Copyright © 2011-2022 走看看