• 【网页插件】热气球漂浮的效果


    热气球运动效果大致实现细节如下:

     1 /*
     2 /*
     3 @function 热气球移动
     4 @update by julying , 2012/7/25
     5 */
     6 function airBalloon(balloon){
     7     var viewSize = [] , viewWidth = 0 , viewHeight = 0 ;
     8     resize();    
     9     $(balloon).each(function(){
    10         //首先对热气球进行随机定位
    11         $(this).css({
    12             //初始 top 取随机值
    13             top: rand(40, viewHeight * 0.5 ) , 
    14             left : rand( 10 , viewWidth - $(this).width() )
    15         });
    16         fly(this);
    17     });
    18     // 当浏览器窗口变化时候,重新计算热气球的坐标    
    19     $(window).resize(function(){
    20         resize()
    21         $(balloon).each(function(){
    22             //取消之前的动画事件,重新定义移动方式
    23             $(this).stop().animate(
    24                 {top: rand(40, viewHeight * 0.5 ) , 
    25                 left : rand( 10 , viewWidth - $(this).width())} ,
    26                 1000 , 
    27                 function(){
    28                     fly(this);
    29                 }
    30             );
    31         });
    32     });
    33     //计算窗体大小,可视范围区域
    34     function resize(){
    35         viewSize = getViewSize();
    36         viewWidth = $(document).width() ;
    37         viewHeight = viewSize[1] ;
    38     }
    39     function fly(obj){
    40         var $obj = $(obj);
    41         var currentTop = parseInt($obj.css('top'));
    42         var currentLeft = parseInt($obj.css('left') );
    43         var targetLeft = rand( 10 , viewWidth - $obj.width() );
    44         var targetTop = rand(40, viewHeight /2 );
    45         /*求两点之间的距离,利用勾股定理*/
    46         var removing = Math.sqrt( Math.pow( targetLeft - currentLeft,2 )
    47             + Math.pow( targetTop - currentTop , 2 ) );        
    48         /*每秒移动24px 。计算所需要的时间,从而保持 气球的速度恒定*/
    49         var moveTime = removing / 24;        
    50         $obj.animate({ top : targetTop ,left:targetLeft} ,moveTime*1000,function(){
    51             setTimeout(function(){
    52                 fly(obj);
    53             }, rand(1000, 3000) );
    54         });    
    55     }
    56 };

    补充:其中的 PNG透明图片,采用了DD_belatedPNG.js插件,其原理是 IE6中利用 VML使用PNG24格式图片透明。
    输入框的圆角、阴影效果用了PIE(CSS3 rendering for IE)插件,其原理也是利用IE浏览器对VML的支持。

    具体可以查看原址(包括源文件下载):http://julying.com/blog/a-system-login-screen-background-effects-jquery/

  • 相关阅读:
    cd 好吃的 收藏
    2011 无代码无意义…test 指针 v1
    转 云中漫步的 电子书 from simon
    2011无代码无意义 test_gets_scanf连用 等
    svn—relocate 的原因
    转 CString,string,char*的综合比较
    2011 无代码无意义 test_内存之 变量的边界 (图)
    转 解决"应用程序配置不正确,程序无法启动"
    转 删除已存在的SVN账户信息
    C#中IO类FileInfo和Directory操作实例
  • 原文地址:https://www.cnblogs.com/kojya/p/2949721.html
Copyright © 2020-2023  润新知