velocity官方的一个示例动画效果代码

代码语言:html

所属分类:动画

代码描述:velocity官方的一个示例动画效果代码

代码标签: 一个 示例 动画 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">

<head>

   
<meta charset="UTF-8">





   
<style>
       
* {
           
box-sizing: border-box;
       
}

        html
, body {
           
height: 100%;
           
overflow: hidden;
       
}
        body
{
           
background: #383838;
           
font-family: 'Open sans',sans-serif;
       
}

       
.lego {
           
border-width: 3px;
           
border-style: solid;
           
border-color: #ffc37b;
           
color: #ffc37b;
           
width: 79px;
           
height: 79px;
           
display: block;
           
border-radius: 50%;
           
position: absolute;
           
margin-left: -39.5px;
           
margin-top: -39.5px;
           
bottom: 45px;
           
right: 30px;
         
           
opacity: 0;
       
}

       
.lego__text {
           
bottom: -25px;
           
width: 100%;
           
text-align: center;
           
margin-left: -13px;
           
font-size: 12px;
       
}

       
.lego__text--header {
           
top: -25px;
           
font-size: 10px;
           
margin-left: 0;
       
}

       
.restart {
           
top: 50%;
           
left: 50%;
           
border-radius: 50%;
           
width: 32px;
           
height: 32px;
           
margin-left: -16px;
           
margin-top: 128px;
           
background: url(//repo.bfw.wiki/bfwrepo/icon/5e7a050749c06.png) no-repeat center 42.5%;
           
background-size: 50% auto;
           
opacity: 0;
           
border-width: 2px;
           
border-style: solid;
           
border-color: #fff;
       
}

       
.restart:hover {
           
cursor: pointer;
           
border-color: #ccc;
       
}

     

       
.my-logo {
           
top: 50%;
           
left: 50%;
           
z-index: 20;
           
display: inline-block;
           
color: #fcf7c0;
           
text-align: center;
       
}

       
.my-logo__header {
           
width: 108px;
           
font-size: 14px;
       
}

       
.my-logo__img {
           
margin-top: 25px;
           
border-width: 4px;
           
border-style: solid;
           
border-color: #ff6664;
           
width: 108px;
           
height: 108px;
           
border-radius: 50%;
           
background: #fcf7c0 url(//repo.bfw.wiki/bfwrepo/image/5d6539613d08b.png?x-oss-process=image/auto-orient,1/resize,m_fill,w_100,h_100,/quality,q_90);
       
}

       
.my-logo__text {
           
color: #fcf7c0;
           
bottom: -160px;
           
left: -4px;
           
font-size: 14px;
       
}

       
.line {
           
width: 2px;
           
height: 0;
           
top: 50%;
           
left: 50%;
           
margin-left: -1px;
           
background: #00ffc6;
           
transform-origin: center bottom;
       
}

       
.bubble {
           
width: 24px;
           
height: 24px;
           
border-width: 12px;
           
border-style: solid;
           
border-color: #00ffc6;
           
border-radius: 50%;
           
top: 50%;
           
left: 50%;
           
opacity: 0;
       
}

       
.bubbles {
           
width: 100%;
           
height: 100%;
           
top: 0;
           
left: 0;
           
margin-top: -100px;
           
margin-left: -10px;
       
}

       
.easy {
           
top: 50%;
           
left: 50%;
           
line-height: 240px;
           
background: #00ffc6;
           
border-radius: 50%;
           
text-align: center;
           
transform: translate(-50%,-50%);
           
font-size: 60px;
           
color: #383838;
           
text-transform: uppercase;
           
z-index: 11;
           
width: 0;
           
height: 0;
           
overflow: hidden;
       
}

       
.easy__wrapper {
           
width: 100%;
           
height: 100%;
           
top: 0;
           
left: 0;
       
}

       
.easy__text {
           
width: 100%;
           
height: 100%;
       
}

       
.easy__line {
           
width: 100%;
           
height: 100%;
           
border-radius: 50%;
           
border-width: 4px;
           
border-style: solid;
           
border-color: #383838;
           
z-index: 0;
           
transform: translate(-50%);
       
}

       
.drop {
           
width: 4px;
           
height: 4px;
           
top: 50%;
           
left: 50%;
           
opacity: 0;
       
}

       
.spark {
           
background: #00ffc6;
           
opacity: 0;
           
border-radius: 50%;
       
}

       
.thunder-bg {
           
background: #00ffc6;
           
opacity: 0;
           
width: 100%;
           
height: 100%;
           
top: 0;
           
left: 0;
           
z-index: 0;
       
}

       
.arrow {
           
width: 2px;
           
height: 200px;
           
transform-origin: center bottom;
           
background: #00ffc6;
           
top: -100%;
           
left: 100%;
           
margin-top: -175px;
       
}

       
.arrow--center {
           
margin-left: -28px;
           
margin-top: -120px;
       
}

       
.arrow--wrap {
           
width: 100%;
           
height: 100%;
           
top: 0;
           
left: 0;
           
margin-top: 0;
           
background: 0 0;
       
}

       
.car {
           
height: 10px;
           
width: 40%;
           
opacity: 0;
       
}

       
.car--1 {
           
right: 100%;
           
top: 40%;
           
border-top-left-radius: 50%;
           
border-bottom-left-radius: 50%;
       
}

       
.car--2 {
           
left: 100%;
           
top: 60%;
           
border-top-right-radius: 50%;
           
border-bottom-right-radius: 50%;
       
}

       
.text {
           
font-family: 'Open Sans';
           
font-size: 60px;
           
text-transform: uppercase;
           
font-weight: 100;
           
text-align: center;
           
letter-spacing: 10px;
       
}

       
.text--fast {
           
width: 100%;
           
height: 100%;
           
top: 0;
           
left: 0;
       
}

       
.text--robust {
           
top: 50%;
           
left: 50%;
           
margin-left: -200px;
           
z-index: 8;
           
overflow: hidden;
           
transform-origin: left bottom;
       
}

       
.text--robust__shade {
           
background: #383838;
           
top: 0;
           
width: 100%;
           
height: 100%;
       
}

       
.text--robust__shade--1 {
           
transform: skew(-20deg) translateX(-4px);
           
left: -90px;
       
}

       
.text--robust__shade--2 {
           
width: 90px;
           
right: 0;
       
}

       
.text__bit {
           
top: 50%;
           
left: 50%;
       
}

       
.text__bit--1 {
           
margin-left: -90px;
       
}

       
.text__bit--2 {
           
margin-left: -45px;
       
}

       
.text__bit--3 {
           
margin-left: 0;
       
}

       
.text__bit--4 {
           
margin-left: 45px;
       
}

       
.text__bit__inner {
           
display: inline-block;
           
position: static;
           
transform-origin: center bottom;
       
}

       
.text__bit span {
           
display: inline-block;
           
margin-top: -30px;
       
}

       
.c-green-g {
           
background: #00ffc6;
       
}

       
.c-green-c-g {
           
color: #00ffc6;
       
}

       
.c-grey-g {
           
background: #383838;
       
}

       
.c-red-g {
           
background: #ff1493;
       
}

       
.circle {
           
border-radius: 50%;
       
}

       
.center {
           
top: 50%;
           
left: 50%;
       
}

       
.a-g {
           
position: absolute;
       
}

        div
{
           
position: absolute;
           
z-index: 10;
           
font-family: 'Open sans',sans-serif;
       
}

       
.screen {
           
position: absolute;
           
top: 0;
           
left: 0;
           
width: 100%;
           
height: 100%;
       
}

       
.screen--robust {
           
z-index: 1;
       
}

       
.screen--easy {
           
z-index: 12;
       
}

       
.screen--logos {
           
z-index: 20;
       
}

       
.inherit-bg {
           
background: inherit;
       
}

       
.velocity {
           
position: absolute;
           
top: 50%;
           
left: 50%;
           
color: #00ffc6;
           
font-size: 70px;
           
text-transform: uppercase;
           
font-weight: 100;
           
margin-left: 1320px;
           
min-width: 400px;
           
margin-top: -40px;
           
transform: translateX(-160px);
       
}

       
.velocity span {
           
display: inline-block;
       
}
   
</style>




</head>

<body translate="no">
   
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,600,700,800" rel="stylesheet" type="text/css">

   
<div id="js-car1" class="car car--1 c-green-g"></div>
   
<div id="js-car2" class="car car--2 c-green-g"></div>
   
<div id="js-fast" class="c-green-c-g text text--fast">
       
<div class="text__bit text__bit--1">
           
<div id="js-bit-inner" class="text__bit__inner">
               
<span id="js-span">f</span>
           
</div>
       
</div>
       
<div class="text__bit text__bit--2">
           
<div id="js-bit-inner" class="text__bit__inner">
               
<span id="js-span">a</span>
           
</div>
       
</div>
       
<div class="text__bit text__bit--3">
           
<div id="js-bit-inner" class="text__bit__inner">
               
<span id="js-span">s</span>
           
</div>
       
</div>
       
<div class="text__bit text__bit--4">
           
<div id="js-bit-inner" class="text__bit__inner">
               
<span id="js-span">t</span>
           
</div>
       
</div>
   
</div>
   
<div id="js-arrow1" class="arrow"></div>
   
<div id="js-arrow2" class="arrow"></div>
   
<div id="js-arrow3" class="arrow"></div>
   
<div id="js-arrow-wrap" class="arrow arrow--wrap">
       
<div id="js-arrow4" class="arrow arrow--center"></div>
   
</div>
   
<div id="js-robust-screen2" class="screen screen--robust">
       
<div id="js-robust-screen" class="screen screen--robust">
           
<div id="js-robust" class="text text--robust c-green-c-g">
                robust
               
<div id="js-robust-shade1" class="text--robust__shade text--robust__shade--1"></div>
               
<div id="js-robust-shade2" class="text--robust__shade text--robust__shade--2"></div>
           
</div>
       
</div>
   
</div>
   
<div id="js-thunder-bg" class="thunder-bg"></div>
   
<div id="js-easy-screen" class="screen screen--easy">
       
<div id="js-easy" class="text easy">
           
<div id="js-easy-wrapper" class="easy__wrapper">
               
<div id="js-easy-text" class="easy__text">
                    easy
               
</div>
           
</div>
       
</div>
   
</div>
   
<div id="js-screen1" class="screen">
       
<div id="js-line" class="line"></div>
   
</div>
   
<div id="js-screen2" class="screen"></div>
   
<div id="js-velocity" class="velocity">
       
<span>v</span><span>e</span><span>l</span><span>o</span><span>c</span><span>i</span><span>t</span><span>y</span><span>.</span><span>j</span><span>s</span>
   
</div>
   
<div id="js-logos-screen" class="screen screen--logos">
       
<a id="js-github" class="github">
           
<div class="github__text">
                VelocityJS on GitHub
           
</div>
       
</a>
       
<div id="js-restart" class="restart"></div>
       
<a id="js-lego" class="lego">
           
<div class="lego__text lego__text--header">
                Demo by:
           
</div>
           
<div class="lego__text lego__text">
                @legomushroom
           
</div>
       
</a>
   
</div>
   
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
   
<script>
        (function () {
            var Helpers;

            Helpers = function () {
                function Helpers() {}

                Helpers.prototype.createDiv = function (o) {
                    var $cont, $el;
                    if (o == null) {
                        o = {};
                    }
                    $el = $('
<div />');
                    o["class"] != null && $el.addClass(o["class"]);
                    $cont = (o != null ? o.container: void 0) || $(document.body);
                    $cont.append($el);
                    return $el;
                };

                Helpers.prototype.cloneBits = function ($proto, cnt, $container) {
                    var $cont,
                    $new,
                    circles,
                    i,
                    _i;
                    if (cnt == null) {
                        cnt = 20;
                    }
                    circles = [];
                    for (i = _i = 0; 0 <= cnt ? _i < cnt: _i > cnt; i = 0 <= cnt ? ++_i: --_i) {
                        $new = $proto.clone();
                        $cont = $container || $(document.body);
                        $cont.append($new);
                        circles.push($new);
                    }
                    return circles;
                };

                Helpers.prototype.rand = function (min, max) {
                    return Math.floor(Math.random() * (max + 1 - min) + min);
                };

                return Helpers;

            }();

            window.helpers = new Helpers();

            $.easing.quake = function (t) {
                var b;
                b = Math.exp(-t * 10) * Math.cos(Math.PI * 2 * t * 10);
                if (t >= 1) {
                    return 1;
                }
                return 1 - b;
            };

            $.easing.elasticOut = function (t) {
                var a,
                p,
                s;
                s = void 0;
                a = 0.1;
                p = 0.4;
                if (t === 0) {
                    return 0;
                }
                if (t === 1) {
                    return 1;
                }
                if (!a || a < 1) {
                    a = 1;
                    s = p / 4;
                } else {
                    s = p * Math.asin(1 / a) / (2 * Math.PI);
                }
                return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;
            };

        }).call(this);

        (function () {
            var Spark;

            Spark = function () {
                function Spark(o) {
                    this.o = o != null ? o: {};
                    this.vars();
                    this.init();
                }

                Spark.prototype.vars = function () {};

                Spark.prototype.init = function () {
                    var $proto,
                    $spark,
                    i,
                    size,
                    _i,
                    _len,
                    _ref,
                    _results;
                    $proto = helpers.createDiv({
                        "class": 'spark'
                    });

                    this.sparks = helpers.cloneBits($proto, this.o.cnt || helpers.rand(10, 20));
                    size = this.o.size || 2;
                    _ref = this.sparks;
                    _results = [];
                    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
                        $spark = _ref[i];
                        _results.push($spark.css({
                            width: size + helpers.rand(0, size),
                            height: size + helpers.rand(0, size),
                            left: this.o.left || '50%',
                            top: "" + (this.o.top || 50) + "%",
                            marginTop: this.o.shiftY,
                            marginLeft: this.o.shiftX
                        }));

                    }
                    return _results;
                };

                Spark.prototype.run = function () {
                    var $spark,
                    blowSize,
                    i,
                    top,
                    _i,
                    _len,
                    _ref,
                    _results;
                    _ref = this.sparks;
                    _results = [];
                    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
                        $spark = _ref[i];
                        blowSize = this.o.blowSize || 100;
                        top = 2 * this.o.top || 100;
                        if (top < 100) {
                            top = 100;
                        }
                        _results.push($spark.velocity({
                            translateX: helpers.rand(-blowSize, blowSize),
                            translateY: helpers.rand(-blowSize, blowSize),
                            opacity: 1
                        },
                            {
                                duration: 500 + blowSize,
                                easing: 'easeInOutQuad',
                                delay: (this.o.delay || 0) + helpers.rand(0, 100)
                            }).
                            velocity({
                                top: "" + top + "%",
                                translateY: 0,
                                marginTop: 0,
                                opacity: -2
                            },
                                {
                                    duration: this.o.duration || 2500,
                                    easing: 'easeInOutExp'
                                }));

                    }
                    return _results;
                };

                return Spark;

            }();

            window.Spark = Spark;

        }).call(this);

        (function () {
            var Bubbles;

            Bubbles = function () {
                function Bubbles(o) {
                    this.o = o != null ? o: {};
                    this.vars();
                    this.init();
                }

                Bubbles.prototype.vars = function () {
                    this.$el = helpers.createDiv({
                        "class": "bubbles"
                    });

                    return this.$proto = $('
<div class="bubble" />');
                };

                Bubbles.prototype.init = function () {
                    var $bit,
                    i,
                    size,
                    _i,
                    _len,
                    _ref,
                    _results;
                    this.bits = helpers.cloneBits(this.$proto, 30, this.$el);
                    _ref = this.bits;
                    _results = [];
                    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
                        $bit = _ref[i];
                        size = helpers.rand(12, 24);
                        _results.push($bit.css({
                            width: size,
                            height: size,
                            borderWidth: size / 2
                        }));

                    }
                    return _results;
                };

                Bubbles.prototype.run = function (delay) {
                    var $bit,
                    i,
                    _i,
                    _len,
                    _ref;
                    _ref = this.bits;
                    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
                        $bit = _ref[i];
                        $bit.velocity({
                            top: '-10%',
                            borderWidth: 0,
                            translateX: helpers.rand(-120, 120),
                            translateY: helpers.rand(0, 300),
                            opacity: 100
                        },
                            {
                                duration: 1400,
                                delay: helpers.rand(i * 25, i * 25 + 1000) + delay
                            });

                    }
                    return this.$el.velocity({
                        marginTop: 0
                    },
                        {
                            duration: 1000,
                            delay: delay
                        });

                };

                return Bubbles;

            }();

            window.Bubbles = Bubbles;

        }).call(this);

        (function () {
            var Drop;

            Drop = function () {
                function Drop(o) {
                    this.o = o != null ? o: {};
                    this.vars();
                    this.init();
                }

                Drop.prototype.vars = function () {
                    return this.$proto = $('
<div class="circle c-green-g drop" />');
                };

                Drop.prototype.init = function () {
                    this.radius = this.o.radius;
                    if (this.radius == null) {
                        this.radius = 200;
                    }
                    this.cnt = this.radius / 10;
                    return this.$els = helpers.cloneBits(this.$proto, this.cnt, this.o.$container);
                };

                Drop.prototype.run = function () {
                    var $el,
                    angle,
                    centerX,
                    centerY,
                    coef,
                    delay,
                    delayStep,
                    i,
                    left,
                    left2,
                    step,
                    stepCalc,
                    top,
                    top2,
                    _i,
                    _j,
                    _k,
                    _len,
                    _ref,
                    _results;
                    step = 2 * Math.PI / this.cnt;
                    angle = 0;
                    centerX = 0;
                    centerY = 0;
                    _ref = this.$els;
                    _results = [];
                    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
                        $el = _ref[i];
                        left = parseInt(centerX + Math.cos(angle) * (this.radius / 1.25), 10);
                        top = parseInt(centerY + Math.sin(angle) * (this.radius / 1.25), 10);
                        $el.css({
                            marginLeft: left,
                            marginTop: top
                        });

                        left2 = parseInt(centerY + Math.cos(angle) * (1.1 * this.radius), 10);
                        top2 = parseInt(centerY + Math.sin(angle) * (1.1 * this.radius), 10);
                        left2 -= left;
                        top2 -= top;
                        $el.velocity({
                            translateX: left2,
                            translateY: top2,
                            opacity: 1
                        },
                            {
                                delay: this.o.i * 15,
                                easing: 'easeOutElastic',
                                duration: 1500
                            });

                        coef = 1;
                        if (left >= 0) {
                            delayStep = 100 * coef;
                            stepCalc = 50;
                            for (i = _j = 0; _j <= 1200; i = _j += stepCalc) {
                                if (top >= i && top <= i + stepCalc) {
                                    delay = i / stepCalc * delayStep;
                                }
                            }
                            delayStep = 20 * coef;
                            for (i = _k = 0; _k <= 1200; i = _k += stepCalc) {
                                if (top <= -i && top >= -i - stepCalc) {
                                    delay = i / stepCalc * delayStep;
                                }
                            }
                            if (delay == null) {
                                delay = 100 * coef;
                            }
                            $el.velocity({
                .........完整代码请登录后点击上方下载按钮下载查看

网友评论0