`
BuN_Ny
  • 浏览: 85211 次
  • 来自: 济南
社区版块
存档分类
最新评论

模拟Google世界地球日的Doodle

 
阅读更多

直接上代码吧。

 

CSS部分:

 

    #doodle {
      position: relative;
      margin-top: 35px;
      height: 182px;
      width: 468px; 
      overflow: hidden;
    }
    #doodle img{
      position:absolute;
      border:none;
      height:364px;
      left:0;
      top:0;
      width:468px
    }

 

HTML部分:

 

    <div id="doodle" title="世界地球日">
      <img src="image/a.jpg" id="_a">
      <img src="image/b.jpg" id="_b">
      <img src="image/b.jpg" id="_c">
    </div>

 

JavaScript部分:

 

    (function() {
        var divMain, imgA, imgB, imgC,
            timer={}, topMargin,  flag,
            
        //设置透明度
        setOpacityFn = function(dom, val) {
          if (dom) {
            dom.style.display = val > 0 ? 'block' : 'none';
            dom.style.filter = val < 100 ? 'alpha(opacity:' + val + ')' : ''; //IE
            val = (val < 100 ? val : 100) / 100;
            dom.style.opacity = val;  //W3C
            dom.style.MozOpacity = val; //Fx
          }
        },
        
        //清除定时器
        clearTimerFn = function() {
          window.clearTimeout(timer.show);
          window.clearTimeout(timer.grow);
        },
        
        //入口函数
        mainFn = function() {
          clearTimerFn();
          //初始化变量,获得dom引用等
          divMain = document.getElementById('doodle');
          imgA = document.getElementById('_a');
          imgB = document.getElementById('_b');
          imgC = document.getElementById('_c');
          topMargin = 0;
          flag = !1;
          if (divMain && imgA && imgB && imgC) { //占位用img
            var img = document.createElement('img');
            img.style.visibility = 'hidden';
            img.onload = imgOnloadFn;
            img.src = 'image/b.jpg';
            divMain.appendChild(img);  //执行onload事件
          }
        }, 
        imgOnloadFn = function() {
          clearTimerFn();
          imgB.style.height = imgC.style.height = '2912px';
          imgB.src = imgC.src = 'image/b.jpg';
          setOpacityFn(imgB, 0);
          setOpacityFn(imgC, 0);
          imgB.style.display = imgC.style.display = '';
          flowerGrowFn();
        },
        
        //花朵成长过程的每个图都是渐渐展现
        flowerShowFn = function(dom, val) {
          if (dom) {
            setOpacityFn(dom, val);
            if (val < 99)
              //每50ms透明度增加11,半秒内完全显示出来
              timer.show = window.setTimeout(function() {
                flowerShowFn(dom, val + 11);
              }, 50);
          }
        }, 
        //花朵生长过程
        flowerGrowFn = function() {
          var a = flag ? imgB : imgC, 
              b = flag ? imgC : imgB;
          a.style.zIndex = 4;
          b.style.zIndex = 3;
          window.clearTimeout(timer.show);
          flowerShowFn(a, 0);
          a.style.top = -topMargin + 'px';
          topMargin = Math.floor(topMargin + 182);
          //生长过程计时器
          timer.gow = topMargin < 2912 
                   ? window.setTimeout(flowerGrowFn, 500) 
                   : window.setTimeout(flowerFullbloomFn, 500);
          flag = !flag;
        }, 
        
        //完全开放,哦也~
        flowerFullbloomFn = function() {
          window.clearTimeout(timer.show);
          imgA.style.top = '-182px';
          imgA.style.zIndex = 5;
          flowerShowFn(imgA, 0);
        };
        
        mainFn();
    })();

 这次花了一个半小时。

 

  • 描述: demo
  • 大小: 180 KB
分享到:
评论
1 楼 amoszhou 2012-05-03  
妹子做前端的?

你这博客名,霸气。。。

相关推荐

    Google粘土动画Doodle代码

    【Google粘土动画Doodle代码】是Google为了庆祝或纪念某个特殊事件或人物,而特别设计的一种互动式Logo,通常会在Google主页上展示。这些Doodles不仅富有创意,还经常包含一些趣味性的交互元素,例如这次提到的粘土...

    2011google圣诞节doodle源码

    标题 "2011google圣诞节doodle源码" 指的是谷歌在2011年圣诞节期间在其首页上展示的特殊Logo,也就是Doodle的编程代码。Doodle是Google为了纪念节日、重要人物或事件而设计的特殊Logo,通常会以互动或动画的形式呈现...

    Google首页电吉他Doodle源码

    标题 "Google首页电吉他Doodle源码" 涉及的是Google在其首页上展示的一款特别设计的互动式电吉他动画,通常称为"Doodle"。Doodles是Google为了纪念重要人物、事件或节日而制作的创意搜索logo。在这个特定的Doodle中...

    Google创意动画Doodle代码.zip

    【Google创意动画Doodle代码】是一个集合了JavaScript特效与图片相册展示的项目,它展示了谷歌如何用富有创意的方式庆祝特殊事件或纪念日。在这个压缩包中,我们有以下几个关键文件: 1. **说明.htm**:这个文件...

    简单模拟Google感恩节的大公鸡Doodle

    【标题】"简单模拟Google感恩节的大公鸡Doodle"是一个关于编程的实践项目,旨在重现Google在其感恩节特别版首页Doodle中的大公鸡动画效果。这个项目可以帮助开发者了解和学习如何用代码来实现动态图形,特别是对于...

    Doodle

    【Doodle】是一种独特的字体设计风格,它通常包含手绘、涂鸦或卡通元素,为文本增添了一种轻松、随性和创意的视觉效果。在IT领域,Doodle字体被广泛应用于各种图形设计、网站设计、应用程序界面(UI)以及数字营销...

    Doodle Jump 源代码

    Doodle Jump 源代码,需要的请下载,Doodle Jump 是 app store排名前20的游戏,与之前发放的tiny wings一样,有需要参考的下载吧,放出两个链接: Doodle Jump: ...

    Google首页电吉他Doodle源代码

    为了纪念电吉他之父莱斯·保罗(Les Paul,1915年6月9日-2009年8月13日)诞辰96周年,Google Doodle又出神作,首页的Logo被设计成一个电吉他形,并且鼠标滑过会弹出美妙的音乐,当你按下键盘图标时,还可以直接用...

    Google粘土动画Doodle代码.zip

    在Google粘土动画Doodle中,jQuery可能被用于绑定事件处理器,当用户与Doodle交互时触发相应的动画或行为。此外,jQuery的动画函数可以帮助开发者轻松创建平滑的动画序列,无需处理复杂的计时和帧率问题。 总结来说...

    js写的doodle-library

    《JS实现的Doodle Library:在Canvas上的绘图探索》 在现代网页开发中,JavaScript是一种不可或缺的语言,它为开发者提供了丰富的功能,特别是在人机交互领域。本项目“js写的doodle-library”就是一个很好的例子,...

    Doodle Jump源代码

    通过学习Doodle Jump的源代码,开发者不仅可以提升C++编程技能,还能了解到游戏开发的基本流程和设计思想,包括游戏循环、碰撞检测、物理模拟、图形渲染、音频处理以及游戏逻辑的实现。这不仅对个人技术成长有益,也...

    google-doodle:我的Google Doodle

    我的主题Google Doodle关于您的Google Doodle的50多个字词。我正在制作一个带有熊猫的Google Doodle。我还没有为Google Doodle制定最终的计划。它可能是lofi学习图像的仿冒品,也可能是动画熊猫,有一定几率出现白化...

    简单模拟Google的大马跑啊跑的Doodle

    NULL 博文链接:https://bun-ny.iteye.com/blog/1481208

    C++ Doodle Jump源码

    这是一款益智类,考验反应力和决断力的游戏,游戏名叫Doodle Jump。玩家控制小人,小人是不断往上跳的,玩家需要控制它不让它掉落下去,并找板子让小人跳的更高。跳的越高得分越多,但越到后面板子越稀少,同时还有...

    Doodle+Bubble

    Doodle+Bubble老版本软件,体验很不错。

    前端项目-css-doodle.zip

    【前端项目-CSS Doodle】是一个创新的Web组件,它为开发者提供了一种利用CSS来绘制复杂图案的强大工具。这个项目的核心在于通过CSS的灵活性和创造性,让开发者能够设计出富有艺术感和个性化的图形。在本文中,我们将...

Global site tag (gtag.js) - Google Analytics