简单的放天灯动画

公司中秋节要上线一个线上的活动:放天灯,简单的动画,所以花费不了很多时间

先上一下放天灯的动画代码,代码是根据一个下雪花代码改编的,直接操作dom当然效率不会很高,不过正好使用我们的业务

    var windowHeight = $(window).height();;
    var starAreaBottomHeight = parseInt(windowHeight / 2); //灯笼出现的基本位置
    var zindex = 0; //最高层数
    var docWidth = $(window).width(); //文档宽度

    $(function () {

        $(".starbg,.allbody").height($(window).height());
        var d = "<div class=‘star‘><div>";

        function Tideng() {
            var x = Math.random() * docWidth; //出现位置偏移量,随机
            var y = starAreaBottomHeight + (starAreaBottomHeight / 5) - Math.random() * starAreaBottomHeight; //出现位置y方向坐标

            var o = 1 - y / windowHeight; //透明度,随机(位置越靠下透明度越高)

            var fon = 80 - y / windowHeight * 100; //大小,随机(位置月靠下-y越大 越小)

            var l = x + 20 * Math.random(); //终止位置偏移量,
            var z = 1000 - (y / windowHeight * 100); //层
            var filter = (5 * (y / windowHeight) - 1) * (5 * (y / windowHeight) - 1);
            var k = 10000 + 5000 * Math.random(); //速度,随机
            var tw = 40 + Math.random() * 50;

            $(d).clone().appendTo(".starbg").css({

                left: x + "px",
                top: y + "px",
                "-webkit-filter": "blur(" + filter + "px)", //模糊效果

                // opacity: o,
                width: fon,
                height: fon,
                zindex: z

            }).animate({

                top: (-fon),
                left: l + "px",

                //opacity: 0.1,

            }, k, "linear", function () {
                $(this).remove()
            })
        }

        Tideng();
        setInterval(function () {
            Tideng();
        }, 2000);

    })
 

根据天灯出现位置计算天灯的大小和模糊度来实现一些立体效果,可惜公司美工给的背景图不是很好。

放一个我自己坐的demo效果

图中的效果与给出的代码有些区别,并且没有为天灯做模糊效果,仅供参考

在开发的过程中遇到了几个问题不太好解决,这里写出做为备注

问题1:

文本框在安卓手机上不能被键盘顶上去或者隐藏,经过调试观察室因为外层div(@A)的position设置的问题和高度的问题。

现象1:整个div  A 下半部分不见了(向上滑动页面时候可以看到)。 解决方案:因为A未设置高度,并且是overflow:hidden  ,所以键盘顶上去时候,A的下部分被隐藏掉了,设置A的绝对高度解决。

现象2:文本框被键盘遮挡到了,不会再获取焦点的时候被顶到键盘顶部。解决方案:设置A的Position为绝对定位absolute即可,其他几种定位方式未测试,但是不能是fixed ,正是因为这种定位方式,导致它无法被顶上去

问题2:

页面中有背景音乐,有多个页面,但是想在A页面跳转到B页面时候能够继续A页面的播放

解决方案

Audio有一个currentTime特性,可以获取或设置当前播放的位置。配合  Audio的oncanplay事件可以设置其播放起始位置

          var audio = $("audio")[0];

            //获取cookiet
            var tiv = $.cookie("tiv");

            if (tiv > 0) {
                try {
                    audio.oncanplay = function () {
                        audio.currentTime = tiv;
                    };
                }
                catch (err) {

                }
            }

在A页面记录当前播放位置,在B页面获取即可,我用cookie做存储。当然这种方法在长音频中是有重大bug的。

问题3:

jquery自带动画,是比较坑的本来要执行两个动画动作,但是对  animate 的了解不够,无法实现,于是自己写了一个按中心点缩放div的动画,然后移动div到顶部的实现

 trg.animate({ "width": w + "px", "top": top + "px", left: left + "px" }, 1000, function () {

            setTimeout(function () {

                var topH = trg.offset().top; //当前图片距离父元素顶部的高度
                var parentOffTop = trg.parent().offset().top; //父元素距离顶部的高度
                var trgH = trg.height();
                var tou = setInterval(function () {

                    topH -= 1; //调整右侧的值(增大)可以增加上升速度[强烈]
                    trg.get(0).style.top = topH + "px";
                    if (topH < -(trgH + parentOffTop)) {
                        clearInterval(tou);
                        //删除节点

                        var clrT = setInterval(function () { //200ms检测一次是否飞出视窗,飞出后则删除当前结点并显示按钮

                            if (trg.offset().top < -(trgH + parentOffTop)) {
                                $(‘.btns_wrap‘).show();

                                $(".tc_wishes_write").remove();
                                clearInterval(clrT);
                            }
                        }, 200);
                    }

                },
                    15); //调整这里的值(减少),可以增加上升速度[弱]

            },
                400);

        });

由于是公司的项目,因此不能够上源码,但是放天灯部分,我自己做了demo是可以供下载查看的

=》这里不是图片丢失了,是因为他就不是一个正经图片,将图片右键另存为修改为rar后缀解压即可。懒得上传附件,就这样了

时间: 2024-10-16 04:15:07

简单的放天灯动画的相关文章

简单的UIButton按钮动画效果ios源码下载

这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性. 效果图: <ignore_js_op> 使用方法: 详细说明:http://ios.662p.com/thread-2272-1-1.html

C# WPF 简单自定义菜单切换动画

微信公众号:Dotnet9,网站:Dotnet9,问题或建议,请网站留言: 如果您觉得Dotnet9对您有帮助,欢迎赞赏 C# WPF 简单自定义菜单切换动画 内容目录 实现效果 业务场景 编码实现 本文参考 源码下载 1.实现效果 自定义菜单切换动画 2.业务场景 菜单切换动画 3.编码实现 3.1 添加Nuget库 使用 .Net Core 3.1 创建名为"CustomMenu"的WPF解决方案,添加两个Nuget库:MaterialDesignThemes和MaterialDe

一个简单的加载动画,js实现

简单效果图: html: <div class="box"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> css: .box{ width: 200px; height: 80px; margin: 200px auto; bor

iOS block-base 动画简单用法+关键帧动画设置线性变化速度的问题

本文转载至 http://www.tuicool.com/articles/aANBF3m 时间 2014-12-07 20:13:37  segmentfault-博客原文  http://segmentfault.com/blog/alan/1190000002411296 iOS的各种动画相漂亮,相信这是吸引很多人买iPhone的原因之一.不仅如此,这还是吸引我做iOS开发的一大原因,因为在iOS上给界面实现一些像样的动画实在是太轻松了! 这里就介绍一下iOS的block-based an

简单的CSS3 Loading动画

最终效果如图一,gif图片稍微有点卡顿,事实上代码在浏览器里执行得很流畅.这里面用到的css3技术非常简单,分别是border-radius.伪元素.css3关键帧以及animation动画. 首先整理一下大概的思路:整个圆分为AB两部分,左右都是半圆,上面盖了一个背景色为白色的小圆,如右图,简单布局如下: <style> .loading{margin:100px auto; width: 8em; height: 8em; position: relative;} .loading .pr

一个简单的循环往复的动画效果

1.概述:在我们编程时会用到一些简单的动画效果,下面介绍一个: 2.代码如下: <!DOCTYPE HTML> <HTML> <HEAD> <TITLE> By ShaZhou </TITLE> </HEAD> <BODY> <div class="dotA" style="position:absolute">a</div> <div class=&q

cocos2d-x step by step(3) Doub le Kill简单的一些小动画

在触控厮混了两年多,不过达到了自己的初衷以及目的. 目前从事cocos2d的更改和调优移植工作. 1 简单的一个图片放大和缩小 auto sprite = Sprite::create("langren1.png"); 这里定义了一个精灵sprite,图片随意 cocos2d里有scale函数进行缩放或者放大 CCActionInterval* actionTo = CCScaleTo::create(2, 0.2f) ; sprite->runAction(actionTo);

Swift实现一个简单的加载动画,以及动画的详解

一.组动画的创建 首先创建一个组动画,也就是大小变化和透明度变化的动画. // 大小变化 let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale") scaleAnimation.keyTimes = [0, 0.5, 1] scaleAnimation.values = [1, 0.4, 1] scaleAnimation.duration = duration // 透明度变化 let opacityAn

jQuery简单实用的图片标题动画效果插件

CaptionerJs是一款简单实用的jQuery图片标题动画效果插件.网上有许多图片标题插件,但是CaptionerJs可以为你创建干净整洁并且带有语义的图片标题HTML代码. CaptionerJs不使用div作为图片层,而是使用figure和figcaption元素来转换图片,使图片和图片标题有明确的语义. 你可以在书写图片代码的时候使用标准的HTML图片代码,CaptionerJs会使用title和alt属性来制作图片的标题. 效果演示:http://www.htmleaf.com/De