• 筋斗云效果


    布局

    div.nav > span.#cloud

    div.nav> ul >li

    案例分析:

    ①鼠标经过某个小 li ,筋斗云跟着到当前小 li 位置

    ②鼠标离开某个小 li , 筋斗云复原为原来的位置

    ③鼠标点击了某个小 li ,筋斗云就会留在点击这个小 li 的位置

    ④利用动画函数做动画效果,原先筋斗云的起始位置是0,

    ⑤鼠标经过某个小 li , 把当前小 li de  offsetLeft位置作为目标值即可

    ⑥鼠标离开某个小 li , 就把目标值设为0

    ⑦如果点击了某个小 li ,就把 li 当前的位置存储起来,作为筋斗云的起始位置

    关键代码

    var current=0;
    for(var i=0; i<lis.length;i++)
    {
       lis[i].onmouseover=function(){
          animate(cloud, this.offsetLeft);
       }
       lis[i].onmouseout=function(){
          animage(cloud,current)
       }
       lis[i].onclick=function(){
         current=this.offsetLeft;
      }
    }

    完整代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{
                padding:0;
                margin:0;
            }
            ul{
                list-style:none;
            }
            body{
                background-color: #333;
            }
            .nav{
                1000px;
                height:42px;
                margin:100px auto;
                border-radius:5px; /*盒子四个角,变成弧形*/
                position:relative;
                background:url(images/rss.png) no-repeat right center #fff; /* #fff不能单独写一行,background-color:#fff*/
            }
            .nav .yun{
                83px;
                height:42px;
                background:url(images/cloud.gif) no-repeat top left;
                position:absolute;
                left:0;
                top:0;
            }
            .nav ul li{
                float:left;
                83px;
                height:42px;
                text-align:center;
                line-height:42px;
    } .nav ul{ position: absolute; left:0; top:0; } </style> </head> <body> <div class="nav" id="nav"> <span class="yun" id="cloud"></span> <ul> <li>护肤彩妆</li> <li>母婴保健</li> <li>个人护理</li> <li>新鲜水果</li> <li>营养早餐</li> <li>运动专场</li> <li>服装专场</li> </ul> </div> </body> </html> <script>
    <script>
    var nav=document.getElementById("nav");
    var cloud=document.getElementById("cloud");
    var lis=nav.children[1].children;
    var leader=0;
    var target=0;
    var current=0;//用于存放当前鼠标点击处的offsetLeft值
    for(var i=0;i<lis.length;i++)
    {
    lis[i].onmouseover = function ()
    {
    //target = this.offsetLeft;
    animate(cloud,this.offsetLeft);
    }
    lis[i].onmouseout=function () //鼠标一离开,target值就是刚才存储的current值
    {
    animate(cloud,current);
    }
    lis[i].onclick=function () {
    current = this.offsetLeft; //鼠标一点击,current就等于当前位置的offsetLeft值
    }
    }
    </script>
  • 相关阅读:
    求数组中最大子数组的和(二维环)
    《梦断代码》读书笔记 第3篇
    求数组中最大子数组的和(1000)
    求数组中最大子数组的和(环)
    电梯调度1
    求数组中最大子数组的和(二维)
    读书笔记之反思篇
    二维数组求最大子数组
    结对开发~环形数组篇
    结对开发 ~挑战来了
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/11241005.html
Copyright © 2020-2023  润新知