├── b1.png ├── b2.png ├── b3.png ├── b4.png ├── b5.png ├── b6.png ├── b7.png ├── bd1.jpg ├── hbd.mp3 ├── bulb.png ├── vine.png ├── banner.png ├── bulb_red.png ├── cake128.png ├── favicon.ico ├── uggreen.png ├── bulb_blue.png ├── bulb_green.png ├── bulb_pink.png ├── bulb_orange.png ├── bulb_yellow.png ├── Balloon-Border.png ├── README.md ├── package.json ├── .gitignore ├── loading.css ├── cake.less ├── effect.js ├── index.html └── stylesheet.css /b1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b1.png -------------------------------------------------------------------------------- /b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b2.png -------------------------------------------------------------------------------- /b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b3.png -------------------------------------------------------------------------------- /b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b4.png -------------------------------------------------------------------------------- /b5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b5.png -------------------------------------------------------------------------------- /b6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b6.png -------------------------------------------------------------------------------- /b7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/b7.png -------------------------------------------------------------------------------- /bd1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bd1.jpg -------------------------------------------------------------------------------- /hbd.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/hbd.mp3 -------------------------------------------------------------------------------- /bulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb.png -------------------------------------------------------------------------------- /vine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/vine.png -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/banner.png -------------------------------------------------------------------------------- /bulb_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_red.png -------------------------------------------------------------------------------- /cake128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/cake128.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/favicon.ico -------------------------------------------------------------------------------- /uggreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/uggreen.png -------------------------------------------------------------------------------- /bulb_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_blue.png -------------------------------------------------------------------------------- /bulb_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_green.png -------------------------------------------------------------------------------- /bulb_pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_pink.png -------------------------------------------------------------------------------- /bulb_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_orange.png -------------------------------------------------------------------------------- /bulb_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/bulb_yellow.png -------------------------------------------------------------------------------- /Balloon-Border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayusharma/birthday/HEAD/Balloon-Border.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Happy Birthday 2 | 3 | A Happy Birthday animation design in CSS3, HTML5. 4 | 5 | URL: http://ayusharma.github.io/birthday/ 6 | 7 | Technology Used: HTML5 CSS3 jQuery GNU/Linux Digital Ocean as VPS GIMP 8 | 9 | # Setup 10 | 11 | ## If you have python installed: 12 | ``` 13 | cd Birthday 14 | ``` 15 | 16 | && 17 | 18 | ``` 19 | python -m SimpleHTTPServer --port 8081 20 | ``` 21 | 22 | visit http://localhost:8081 in your browser. 23 | 24 | ## If you have nodejs installed 25 | ``` 26 | npm install 27 | ``` 28 | && 29 | 30 | ``` 31 | npm run server-node 32 | ``` 33 | visit http://localhost:8081 in your browser. 34 | 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "birthday", 3 | "version": "1.0.0", 4 | "description": "Birthday greetings..", 5 | "main": " ", 6 | "scripts": { 7 | "server-node": "http-server -p 8081" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/ayusharma/birthday.git" 12 | }, 13 | "keywords": [ 14 | "Birthday" 15 | ], 16 | "author": "Ayush Sharma", 17 | "license": "WTFPL", 18 | "bugs": { 19 | "url": "https://github.com/ayusharma/birthday/issues" 20 | }, 21 | "homepage": "https://github.com/ayusharma/birthday#readme", 22 | "dependencies": { 23 | "http-server": "^0.11.1" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # parcel-bundler cache (https://parceljs.org/) 61 | .cache 62 | 63 | # next.js build output 64 | .next 65 | 66 | # nuxt.js build output 67 | .nuxt 68 | 69 | # vuepress build output 70 | .vuepress/dist 71 | 72 | # Serverless directories 73 | .serverless/ 74 | 75 | # FuseBox cache 76 | .fusebox/ 77 | 78 | #DynamoDB Local files 79 | .dynamodb/ -------------------------------------------------------------------------------- /loading.css: -------------------------------------------------------------------------------- 1 | /* Absolute Center CSS Spinner */ 2 | .loading { 3 | position: fixed; 4 | z-index: 99999; 5 | height: 2em; 6 | width: 2em; 7 | overflow: show; 8 | margin: auto; 9 | top: 0; 10 | left: 0; 11 | bottom: 0; 12 | right: 0; 13 | } 14 | 15 | /* Transparent Overlay */ 16 | .loading:before { 17 | content: ''; 18 | display: block; 19 | position: fixed; 20 | top: 0; 21 | left: 0; 22 | width: 100%; 23 | height: 100%; 24 | background-color: rgba(0,0,0,0.3); 25 | } 26 | 27 | /* :not(:required) hides these rules from IE9 and below */ 28 | .loading:not(:required) { 29 | /* hide "loading..." text */ 30 | font: 0/0 a; 31 | color: transparent; 32 | text-shadow: none; 33 | background-color: transparent; 34 | border: 0; 35 | } 36 | 37 | .loading:not(:required):after { 38 | content: ''; 39 | display: block; 40 | font-size: 10px; 41 | width: 1em; 42 | height: 1em; 43 | margin-top: -0.5em; 44 | -webkit-animation: spinner 1500ms infinite linear; 45 | -moz-animation: spinner 1500ms infinite linear; 46 | -ms-animation: spinner 1500ms infinite linear; 47 | -o-animation: spinner 1500ms infinite linear; 48 | animation: spinner 1500ms infinite linear; 49 | border-radius: 0.5em; 50 | -webkit-box-shadow: #FFF 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, #FFF -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0; 51 | box-shadow: #FFF 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, #FFF -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0; 52 | } 53 | 54 | /* Animation */ 55 | 56 | @-webkit-keyframes spinner { 57 | 0% { 58 | -webkit-transform: rotate(0deg); 59 | -moz-transform: rotate(0deg); 60 | -ms-transform: rotate(0deg); 61 | -o-transform: rotate(0deg); 62 | transform: rotate(0deg); 63 | } 64 | 100% { 65 | -webkit-transform: rotate(360deg); 66 | -moz-transform: rotate(360deg); 67 | -ms-transform: rotate(360deg); 68 | -o-transform: rotate(360deg); 69 | transform: rotate(360deg); 70 | } 71 | } 72 | @-moz-keyframes spinner { 73 | 0% { 74 | -webkit-transform: rotate(0deg); 75 | -moz-transform: rotate(0deg); 76 | -ms-transform: rotate(0deg); 77 | -o-transform: rotate(0deg); 78 | transform: rotate(0deg); 79 | } 80 | 100% { 81 | -webkit-transform: rotate(360deg); 82 | -moz-transform: rotate(360deg); 83 | -ms-transform: rotate(360deg); 84 | -o-transform: rotate(360deg); 85 | transform: rotate(360deg); 86 | } 87 | } 88 | @-o-keyframes spinner { 89 | 0% { 90 | -webkit-transform: rotate(0deg); 91 | -moz-transform: rotate(0deg); 92 | -ms-transform: rotate(0deg); 93 | -o-transform: rotate(0deg); 94 | transform: rotate(0deg); 95 | } 96 | 100% { 97 | -webkit-transform: rotate(360deg); 98 | -moz-transform: rotate(360deg); 99 | -ms-transform: rotate(360deg); 100 | -o-transform: rotate(360deg); 101 | transform: rotate(360deg); 102 | } 103 | } 104 | @keyframes spinner { 105 | 0% { 106 | -webkit-transform: rotate(0deg); 107 | -moz-transform: rotate(0deg); 108 | -ms-transform: rotate(0deg); 109 | -o-transform: rotate(0deg); 110 | transform: rotate(0deg); 111 | } 112 | 100% { 113 | -webkit-transform: rotate(360deg); 114 | -moz-transform: rotate(360deg); 115 | -ms-transform: rotate(360deg); 116 | -o-transform: rotate(360deg); 117 | transform: rotate(360deg); 118 | } 119 | } -------------------------------------------------------------------------------- /cake.less: -------------------------------------------------------------------------------- 1 | 2 | 3 | //////////////////////////////////////////// var 4 | 5 | @D:300px; // Control diameter 6 | 7 | /////////////////////////////////////////// 8 | 9 | 10 | 11 | /* ============================================== POSITION 12 | */ 13 | 14 | .cake{ 15 | position:absolute; 16 | display:none; 17 | // top:30%; 18 | left:50%; 19 | margin-left:-(@D/2); 20 | width:@D; height:@D; 21 | } 22 | 23 | /* ============================================== BASE 24 | */ 25 | 26 | .cake:after{ 27 | background:rgba(255,255,255,1); 28 | border-radius:@D; 29 | content:""; 30 | position:absolute; 31 | bottom:0; left:0; 32 | width:@D; height:@D/50; 33 | } 34 | 35 | .cake:before{ 36 | 37 | } 38 | 39 | /* ============================================== Candle 40 | */ 41 | 42 | .velas{ 43 | background:rgba(255,255,255,1); 44 | border-radius:100%; 45 | position:absolute; 46 | top:50%; left:50%; 47 | margin-left:-(@D/2)/20; 48 | margin-top:-(@D/2)/6; 49 | width:@D/20; height:@D/6; 50 | } 51 | 52 | .velas:after, 53 | .velas:before{ 54 | background:rgba(255,0,0,0.4); 55 | content:""; 56 | position:absolute; 57 | width:100%; height:@D/45; 58 | } 59 | 60 | .velas:after{ 61 | top:25%; left:0; 62 | } 63 | 64 | .velas:before{ 65 | top:45%; left:0; 66 | } 67 | 68 | /* ============================================== Fire 69 | */ 70 | 71 | .fuego{ 72 | display:none; 73 | border-radius:100%; 74 | box-shadow:0 0 40px 10px rgba(248,233,209,0.2); 75 | position:absolute; 76 | top:-12px; left:50%; 77 | margin-left:-(@D/2)/15; 78 | //margin-top:-(@D/2)/10; 79 | width:@D/15; height:@D/8; 80 | } 81 | 82 | .fuego:nth-child(1){ 83 | -webkit-animation:fuego 2s infinite; 84 | -moz-animation:fuego 2s infinite; 85 | -o-animation:fuego 2s infinite; 86 | -ms-animation:fuego 2s infinite; 87 | animation:fuego 2s infinite; 88 | 89 | } 90 | 91 | .fuego:nth-child(2){ 92 | -webkit-animation:fuego 1.5s infinite; 93 | -moz-animation:fuego 1.5s infinite; 94 | -o-animation:fuego 1.5s infinite; 95 | -ms-animation:fuego 1.5s infinite; 96 | animation:fuego 1.5s infinite; 97 | 98 | } 99 | 100 | .fuego:nth-child(3){ 101 | -webkit-animation:fuego 1s infinite; 102 | -moz-animation:fuego 1s infinite; 103 | -o-animation:fuego 1s infinite; 104 | -ms-animation:fuego 1s infinite; 105 | animation:fuego 1s infinite; 106 | } 107 | 108 | .fuego:nth-child(4){ 109 | -webkit-animation:fuego 0.5s infinite; 110 | -moz-animation:fuego 0.5s infinite; 111 | -o-animation:fuego 0.5s infinite; 112 | -ms-animation:fuego 0.5s infinite; 113 | animation:fuego 0.5s infinite; 114 | } 115 | 116 | .fuego:nth-child(5){ 117 | -webkit-animation:fuego 0.2s infinite; 118 | -moz-animation:fuego 0.2s infinite; 119 | -o-animation:fuego 0.2s infinite; 120 | -ms-animation:fuego 0.2s infinite; 121 | animation:fuego 0.2s infinite; 122 | } 123 | 124 | /* ============================================== Animation Fire 125 | */ 126 | 127 | @-webkit-keyframes fuego{ 128 | 0%{ 129 | background:rgba(254,248,97,0.5); 130 | -webkit-transform:translateY(0) scale(1); 131 | } 132 | 50%{ 133 | background:rgba(255,50,0,0.1); 134 | -webkit-transform:translateY(-(@D/5)) scale(0); 135 | } 136 | 100%{ 137 | background:rgba(254,248,97,0.5); 138 | -webkit-transform:translateY(0) scale(1); 139 | } 140 | } 141 | @-moz-keyframes fuego{ 142 | 0%{ 143 | background:rgba(254,248,97,0.5); 144 | -moz-transform:translateY(0) scale(1); 145 | } 146 | 50%{ 147 | background:rgba(255,50,0,0.1); 148 | -moz-transform:translateY(-(@D/5)) scale(0); 149 | } 150 | 100%{ 151 | background:rgba(254,248,97,0.5); 152 | -moz-transform:translateY(0) scale(1); 153 | } 154 | } 155 | @-o-keyframes fuego{ 156 | 0%{ 157 | background:rgba(254,248,97,0.5); 158 | -o-transform:translateY(0) scale(1); 159 | } 160 | 50%{ 161 | background:rgba(255,50,0,0.1); 162 | -o-transform:translateY(-(@D/5)) scale(0); 163 | } 164 | 100%{ 165 | background:rgba(254,248,97,0.5); 166 | -o-transform:translateY(0) scale(1); 167 | } 168 | } 169 | @-ms-keyframes fuego{ 170 | 0%{ 171 | background:rgba(254,248,97,0.5); 172 | -ms-transform:translateY(0) scale(1); 173 | } 174 | 50%{ 175 | background:rgba(255,50,0,0.1); 176 | -ms-transform:translateY(-(@D/5)) scale(0); 177 | } 178 | 100%{ 179 | background:rgba(254,248,97,0.5); 180 | -ms-transform:translateY(0) scale(1); 181 | } 182 | } 183 | 184 | @keyframes fuego{ 185 | 0%{ 186 | background:rgba(254,248,97,0.5); 187 | transform:translateY(0) scale(1); 188 | } 189 | 50%{ 190 | background:rgba(255,50,0,0.1); 191 | transform:translateY(-(@D/5)) scale(0); 192 | } 193 | 100%{ 194 | background:rgba(254,248,97,0.5); 195 | transform:translateY(0) scale(1); 196 | } 197 | } 198 | 199 | /* ============================================== Frosting 200 | */ 201 | 202 | .cobertura{ 203 | background:rgba(236,231,227,1); 204 | border-radius:@D/2; 205 | position:absolute; 206 | top:60%; left:50%; 207 | margin-left:-(@D/2)/1.8; 208 | margin-top:-(@D/2)/10; 209 | width:@D/1.8; height:@D/8; 210 | z-index:10; 211 | } 212 | 213 | .cobertura:after, 214 | .cobertura:before{ 215 | background:rgba(236,231,227,1); 216 | border-radius:@D; 217 | content:""; 218 | position:absolute; 219 | width:@D/20; height:@D/10; 220 | } 221 | 222 | .cobertura:after{ 223 | top:@D/15; right:@D/7; 224 | } 225 | 226 | .cobertura:before{ 227 | top:@D/10; right:@D/11; 228 | } 229 | 230 | /* ============================================== BIZCOCHO 231 | */ 232 | 233 | .bizcocho{ 234 | background:rgba(109,56,38,1); 235 | position:absolute; 236 | bottom:0; left:50%; 237 | margin-left:-(@D/2)/2; 238 | width:@D/2; height:@D/3; 239 | } 240 | 241 | .bizcocho:after, 242 | .bizcocho:before{ 243 | background:rgba(236,231,227,0.6); 244 | content:""; 245 | position:absolute; 246 | width:100%; height:@D/20; 247 | } 248 | 249 | .bizcocho:after{ 250 | top:30%; left:0; 251 | } 252 | 253 | .bizcocho:before{ 254 | top:60%; left:0; 255 | } 256 | 257 | /* ============================================== TEXT 258 | */ 259 | 260 | h1, 261 | p{ 262 | font-family: 'Lato', sans-serif; 263 | font-weight: 300; 264 | font-style:italic; 265 | text-align:center; 266 | width:100%; 267 | -webkit-user-select: none; 268 | -moz-user-select: none; 269 | -ms-user-select: none; 270 | user-select: none; 271 | } 272 | -------------------------------------------------------------------------------- /effect.js: -------------------------------------------------------------------------------- 1 | $(window).load(function(){ 2 | $('.loading').fadeOut('fast'); 3 | $('.container').fadeIn('fast'); 4 | }); 5 | $('document').ready(function(){ 6 | var vw; 7 | $(window).resize(function(){ 8 | vw = $(window).width()/2; 9 | $('#b1,#b2,#b3,#b4,#b5,#b6,#b7').stop(); 10 | $('#b11').animate({top:240, left: vw-350},500); 11 | $('#b22').animate({top:240, left: vw-250},500); 12 | $('#b33').animate({top:240, left: vw-150},500); 13 | $('#b44').animate({top:240, left: vw-50},500); 14 | $('#b55').animate({top:240, left: vw+50},500); 15 | $('#b66').animate({top:240, left: vw+150},500); 16 | $('#b77').animate({top:240, left: vw+250},500); 17 | }); 18 | 19 | $('#turn_on').click(function(){ 20 | $('#bulb_yellow').addClass('bulb-glow-yellow'); 21 | $('#bulb_red').addClass('bulb-glow-red'); 22 | $('#bulb_blue').addClass('bulb-glow-blue'); 23 | $('#bulb_green').addClass('bulb-glow-green'); 24 | $('#bulb_pink').addClass('bulb-glow-pink'); 25 | $('#bulb_orange').addClass('bulb-glow-orange'); 26 | $('body').addClass('peach'); 27 | $(this).fadeOut('slow').delay(5000).promise().done(function(){ 28 | $('#play').fadeIn('slow'); 29 | }); 30 | }); 31 | $('#play').click(function(){ 32 | var audio = $('.song')[0]; 33 | audio.play(); 34 | $('#bulb_yellow').addClass('bulb-glow-yellow-after'); 35 | $('#bulb_red').addClass('bulb-glow-red-after'); 36 | $('#bulb_blue').addClass('bulb-glow-blue-after'); 37 | $('#bulb_green').addClass('bulb-glow-green-after'); 38 | $('#bulb_pink').addClass('bulb-glow-pink-after'); 39 | $('#bulb_orange').addClass('bulb-glow-orange-after'); 40 | $('body').css('backgroud-color','#FFF'); 41 | $('body').addClass('peach-after'); 42 | $(this).fadeOut('slow').delay(6000).promise().done(function(){ 43 | $('#bannar_coming').fadeIn('slow'); 44 | }); 45 | }); 46 | 47 | $('#bannar_coming').click(function(){ 48 | $('.bannar').addClass('bannar-come'); 49 | $(this).fadeOut('slow').delay(6000).promise().done(function(){ 50 | $('#balloons_flying').fadeIn('slow'); 51 | }); 52 | }); 53 | 54 | function loopOne() { 55 | var randleft = 1000*Math.random(); 56 | var randtop = 500*Math.random(); 57 | $('#b1').animate({left:randleft,bottom:randtop},10000,function(){ 58 | loopOne(); 59 | }); 60 | } 61 | function loopTwo() { 62 | var randleft = 1000*Math.random(); 63 | var randtop = 500*Math.random(); 64 | $('#b2').animate({left:randleft,bottom:randtop},10000,function(){ 65 | loopTwo(); 66 | }); 67 | } 68 | function loopThree() { 69 | var randleft = 1000*Math.random(); 70 | var randtop = 500*Math.random(); 71 | $('#b3').animate({left:randleft,bottom:randtop},10000,function(){ 72 | loopThree(); 73 | }); 74 | } 75 | function loopFour() { 76 | var randleft = 1000*Math.random(); 77 | var randtop = 500*Math.random(); 78 | $('#b4').animate({left:randleft,bottom:randtop},10000,function(){ 79 | loopFour(); 80 | }); 81 | } 82 | function loopFive() { 83 | var randleft = 1000*Math.random(); 84 | var randtop = 500*Math.random(); 85 | $('#b5').animate({left:randleft,bottom:randtop},10000,function(){ 86 | loopFive(); 87 | }); 88 | } 89 | 90 | function loopSix() { 91 | var randleft = 1000*Math.random(); 92 | var randtop = 500*Math.random(); 93 | $('#b6').animate({left:randleft,bottom:randtop},10000,function(){ 94 | loopSix(); 95 | }); 96 | } 97 | function loopSeven() { 98 | var randleft = 1000*Math.random(); 99 | var randtop = 500*Math.random(); 100 | $('#b7').animate({left:randleft,bottom:randtop},10000,function(){ 101 | loopSeven(); 102 | }); 103 | } 104 | 105 | $('#balloons_flying').click(function(){ 106 | $('.balloon-border').animate({top:-500},8000); 107 | $('#b1,#b4,#b5,#b7').addClass('balloons-rotate-behaviour-one'); 108 | $('#b2,#b3,#b6').addClass('balloons-rotate-behaviour-two'); 109 | // $('#b3').addClass('balloons-rotate-behaviour-two'); 110 | // $('#b4').addClass('balloons-rotate-behaviour-one'); 111 | // $('#b5').addClass('balloons-rotate-behaviour-one'); 112 | // $('#b6').addClass('balloons-rotate-behaviour-two'); 113 | // $('#b7').addClass('balloons-rotate-behaviour-one'); 114 | loopOne(); 115 | loopTwo(); 116 | loopThree(); 117 | loopFour(); 118 | loopFive(); 119 | loopSix(); 120 | loopSeven(); 121 | 122 | $(this).fadeOut('slow').delay(5000).promise().done(function(){ 123 | $('#cake_fadein').fadeIn('slow'); 124 | }); 125 | }); 126 | 127 | $('#cake_fadein').click(function(){ 128 | $('.cake').fadeIn('slow'); 129 | $(this).fadeOut('slow').delay(3000).promise().done(function(){ 130 | $('#light_candle').fadeIn('slow'); 131 | }); 132 | }); 133 | 134 | $('#light_candle').click(function(){ 135 | $('.fuego').fadeIn('slow'); 136 | $(this).fadeOut('slow').promise().done(function(){ 137 | $('#wish_message').fadeIn('slow'); 138 | }); 139 | }); 140 | 141 | 142 | $('#wish_message').click(function(){ 143 | vw = $(window).width()/2; 144 | 145 | $('#b1,#b2,#b3,#b4,#b5,#b6,#b7').stop(); 146 | $('#b1').attr('id','b11'); 147 | $('#b2').attr('id','b22') 148 | $('#b3').attr('id','b33') 149 | $('#b4').attr('id','b44') 150 | $('#b5').attr('id','b55') 151 | $('#b6').attr('id','b66') 152 | $('#b7').attr('id','b77') 153 | $('#b11').animate({top:240, left: vw-350},500); 154 | $('#b22').animate({top:240, left: vw-250},500); 155 | $('#b33').animate({top:240, left: vw-150},500); 156 | $('#b44').animate({top:240, left: vw-50},500); 157 | $('#b55').animate({top:240, left: vw+50},500); 158 | $('#b66').animate({top:240, left: vw+150},500); 159 | $('#b77').animate({top:240, left: vw+250},500); 160 | $('.balloons').css('opacity','0.9'); 161 | $('.balloons h2').fadeIn(3000); 162 | $(this).fadeOut('slow').delay(3000).promise().done(function(){ 163 | $('#story').fadeIn('slow'); 164 | }); 165 | }); 166 | 167 | $('#story').click(function(){ 168 | $(this).fadeOut('slow'); 169 | $('.cake').fadeOut('fast').promise().done(function(){ 170 | $('.message').fadeIn('slow'); 171 | }); 172 | 173 | var i; 174 | 175 | function msgLoop (i) { 176 | $("p:nth-child("+i+")").fadeOut('slow').delay(800).promise().done(function(){ 177 | i=i+1; 178 | $("p:nth-child("+i+")").fadeIn('slow').delay(1000); 179 | if(i==50){ 180 | $("p:nth-child(49)").fadeOut('slow').promise().done(function () { 181 | $('.cake').fadeIn('fast'); 182 | }); 183 | 184 | } 185 | else{ 186 | msgLoop(i); 187 | } 188 | 189 | }); 190 | // body... 191 | } 192 | 193 | msgLoop(0); 194 | 195 | }); 196 | }); 197 | 198 | 199 | 200 | 201 | //alert('hello'); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Happy Birthday 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 38 |
39 |

H

40 |
41 |
42 |

B

43 |
44 |
45 |

D

46 |
47 |
48 |

X

49 |
50 |
51 |

O

52 |
53 |
54 |

L

55 |
56 |
57 |

A

58 |
59 | 60 | 61 | 62 | 63 |
64 | 65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | 88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |

Today is...

108 |

as beautiful as other days

109 |

but you realize

110 |

another year has gone

111 |

in a blink of the eyes

112 |

however

113 |

Do you know..?

114 |

today is just special

115 |

so special to you

116 |

that's why

117 |

Let's make it...

118 |

the best celebration ever

119 |

and let me share...

120 |

a piece of happiness to you

121 |

I made all this...

122 |

as a birthday present to you

123 |

thanks for being there

124 |

thanks for the friendship we made

125 |

thanks for everything

126 |

I wish you all the best

127 |

May your life be at ease

128 |

May all your wishes come true

129 |

Remember

130 |

your ambitions

131 |

you live as a free bird...

132 |

flying in the blue sky

133 |

Now things are different...

134 |

real story of your life

135 |

is just about to begin

136 |

indeed..

137 |

but...

138 |

don't worry

139 |

because...

140 |

God has your back

141 |

and

142 |

this year will be better

143 |

and I hope

144 |

you'll find...

145 |

happiness along the way

146 |

keep your spirit up

147 |

enjoy every single moment...

148 |

that you experience today

149 |

fill it with your most beautiful smile

150 |

and make it the best memory..

151 |

lastly...

152 |

I'd like to wish you one more time

153 |

a very happy birthday Xola Mathembisa

154 |
155 |
156 | 181 | 182 | 183 |
184 | 185 | 186 | 187 | 188 | 198 | 199 | -------------------------------------------------------------------------------- /stylesheet.css: -------------------------------------------------------------------------------- 1 | body { 2 | /*background-color: #FFDAB9; */ 3 | background-color: #000; 4 | -webkit-transition:background-color linear 5s; 5 | -moz-transition:background-color linear 5s; 6 | -o-transition:background-color linear 5s; 7 | -ms-transition:background-color linear 5s; 8 | transition:background-color linear 5s; 9 | overflow-x:hidden; 10 | } 11 | .container { 12 | display: none; 13 | } 14 | .peach { 15 | background-color: #FFDAB9; 16 | 17 | } 18 | .peach-after { 19 | -webkit-animation:peach_alive linear 8s infinite; 20 | -moz-animation:peach_alive linear 8s infinite; 21 | -o-animation:peach_alive linear 8s infinite; 22 | -ms-animation:peach_alive linear 8s infinite; 23 | animation:peach_alive linear 8s infinite; 24 | } 25 | 26 | @-webkit-keyframes peach_alive { 27 | 0%{ 28 | background-color: #FFDAB9; 29 | } 30 | 25%{ 31 | background-color: #FFE4B5; 32 | } 33 | 50%{ 34 | background-color: #FFDAB9; 35 | } 36 | 75%{ 37 | background-color: #FFEFD5; 38 | } 39 | 100%{ 40 | background-color: #FFDAB9; 41 | } 42 | } 43 | @-moz-keyframes peach_alive { 44 | 0%{ 45 | background-color: #FFDAB9; 46 | } 47 | 25%{ 48 | background-color: #FFE4B5; 49 | } 50 | 50%{ 51 | background-color: #FFDAB9; 52 | } 53 | 75%{ 54 | background-color: #FFEFD5; 55 | } 56 | 100%{ 57 | background-color: #FFDAB9; 58 | } 59 | } 60 | 61 | @-o-keyframes peach_alive { 62 | 0%{ 63 | background-color: #FFDAB9; 64 | } 65 | 25%{ 66 | background-color: #FFE4B5; 67 | } 68 | 50%{ 69 | background-color: #FFDAB9; 70 | } 71 | 75%{ 72 | background-color: #FFEFD5; 73 | } 74 | 100%{ 75 | background-color: #FFDAB9; 76 | } 77 | } 78 | 79 | @-ms-keyframes peach_alive { 80 | 0%{ 81 | background-color: #FFDAB9; 82 | } 83 | 25%{ 84 | background-color: #FFE4B5; 85 | } 86 | 50%{ 87 | background-color: #FFDAB9; 88 | } 89 | 75%{ 90 | background-color: #FFEFD5; 91 | } 92 | 100%{ 93 | background-color: #FFDAB9; 94 | } 95 | } 96 | 97 | @keyframes peach_alive { 98 | 0%{ 99 | background-color: #FFDAB9; 100 | } 101 | 25%{ 102 | background-color: #FFE4B5; 103 | } 104 | 50%{ 105 | background-color: #FFDAB9; 106 | } 107 | 75%{ 108 | background-color: #FFEFD5; 109 | } 110 | 100%{ 111 | background-color: #FFDAB9; 112 | } 113 | } 114 | 115 | 116 | .bulb { 117 | width: 50px; 118 | height: 50px; 119 | margin: auto; 120 | background-repeat: no-repeat no-repeat; 121 | background-position:center 0px; 122 | background-size: 50px 50px; 123 | } 124 | 125 | .bulb-holder { 126 | height: 70px; 127 | } 128 | 129 | .bulb-glow-yellow { 130 | background-image: url('bulb_yellow.png'); 131 | -webkit-animation: bulb_glow_yellow linear 5s; 132 | -moz-animation: bulb_glow_yellow linear 5s; 133 | -o-animation: bulb_glow_yellow linear 5s; 134 | -ms-animation: bulb_glow_yellow linear 5s; 135 | animation: bulb_glow_yellow linear 5s; 136 | } 137 | 138 | @-webkit-keyframes bulb_glow_yellow { 139 | 0%{ 140 | background-image: url('bulb.png'); 141 | opacity: 0; 142 | } 143 | 50%{ 144 | opacity: 1; 145 | } 146 | 100%{ 147 | background-image: url('bulb_yellow.png'); 148 | opacity: 1; 149 | } 150 | } 151 | @-moz-keyframes bulb_glow_yellow { 152 | 0%{ 153 | background-image: url('bulb.png'); 154 | opacity: 0; 155 | } 156 | 50%{ 157 | opacity: 1; 158 | } 159 | 100%{ 160 | background-image: url('bulb_yellow.png'); 161 | opacity: 1; 162 | } 163 | } 164 | @-o-keyframes bulb_glow_yellow { 165 | 0%{ 166 | background-image: url('bulb.png'); 167 | opacity: 0; 168 | } 169 | 50%{ 170 | opacity: 1; 171 | } 172 | 100%{ 173 | background-image: url('bulb_yellow.png'); 174 | opacity: 1; 175 | } 176 | } 177 | @-ms-keyframes bulb_glow_yellow { 178 | 0%{ 179 | background-image: url('bulb.png'); 180 | opacity: 0; 181 | } 182 | 50%{ 183 | opacity: 1; 184 | } 185 | 100%{ 186 | background-image: url('bulb_yellow.png'); 187 | opacity: 1; 188 | } 189 | } 190 | @keyframes bulb_glow_yellow { 191 | 0%{ 192 | background-image: url('bulb.png'); 193 | opacity: 0; 194 | } 195 | 50%{ 196 | opacity: 1; 197 | } 198 | 100%{ 199 | background-image: url('bulb_yellow.png'); 200 | opacity: 1; 201 | } 202 | } 203 | 204 | .bulb-glow-red { 205 | background-image: url('bulb_red.png'); 206 | -webkit-animation: bulb_glow_red linear 5s; 207 | -moz-animation: bulb_glow_red linear 5s; 208 | -o-animation: bulb_glow_red linear 5s; 209 | -ms-animation: bulb_glow_red linear 5s; 210 | animation: bulb_glow_red linear 5s; 211 | } 212 | 213 | @-webkit-keyframes bulb_glow_red { 214 | 0%{ 215 | background-image: url('bulb.png'); 216 | opacity: 0; 217 | } 218 | 50%{ 219 | opacity: 1; 220 | } 221 | 100%{ 222 | background-image: url('bulb_red.png'); 223 | opacity: 1; 224 | } 225 | } 226 | @-moz-keyframes bulb_glow_red { 227 | 0%{ 228 | background-image: url('bulb.png'); 229 | opacity: 0; 230 | } 231 | 50%{ 232 | opacity: 1; 233 | } 234 | 100%{ 235 | background-image: url('bulb_red.png'); 236 | opacity: 1; 237 | } 238 | } 239 | @-o-keyframes bulb_glow_red { 240 | 0%{ 241 | background-image: url('bulb.png'); 242 | opacity: 0; 243 | } 244 | 50%{ 245 | opacity: 1; 246 | } 247 | 100%{ 248 | background-image: url('bulb_red.png'); 249 | opacity: 1; 250 | } 251 | } 252 | @-ms-keyframes bulb_glow_red { 253 | 0%{ 254 | background-image: url('bulb.png'); 255 | opacity: 0; 256 | } 257 | 50%{ 258 | opacity: 1; 259 | } 260 | 100%{ 261 | background-image: url('bulb_red.png'); 262 | opacity: 1; 263 | } 264 | } 265 | @keyframes bulb_glow_red { 266 | 0%{ 267 | background-image: url('bulb.png'); 268 | opacity: 0; 269 | } 270 | 50%{ 271 | opacity: 1; 272 | } 273 | 100%{ 274 | background-image: url('bulb_red.png'); 275 | opacity: 1; 276 | } 277 | } 278 | .bulb-glow-blue { 279 | background-image: url('bulb_blue.png'); 280 | -webkit-animation: bulb_glow_blue linear 5s; 281 | -moz-animation: bulb_glow_blue linear 5s; 282 | -o-animation: bulb_glow_blue linear 5s; 283 | -ms-animation: bulb_glow_blue linear 5s; 284 | animation: bulb_glow_blue linear 5s; 285 | } 286 | 287 | @-webkit-keyframes bulb_glow_blue { 288 | 0%{ 289 | background-image: url('bulb.png'); 290 | opacity: 0; 291 | } 292 | 50%{ 293 | opacity: 1; 294 | } 295 | 100%{ 296 | background-image: url('bulb_blue.png'); 297 | opacity: 1; 298 | } 299 | } 300 | @-moz-keyframes bulb_glow_blue { 301 | 0%{ 302 | background-image: url('bulb.png'); 303 | opacity: 0; 304 | } 305 | 50%{ 306 | opacity: 1; 307 | } 308 | 100%{ 309 | background-image: url('bulb_blue.png'); 310 | opacity: 1; 311 | } 312 | } 313 | @-o-keyframes bulb_glow_blue { 314 | 0%{ 315 | background-image: url('bulb.png'); 316 | opacity: 0; 317 | } 318 | 50%{ 319 | opacity: 1; 320 | } 321 | 100%{ 322 | background-image: url('bulb_blue.png'); 323 | opacity: 1; 324 | } 325 | } 326 | @-ms-keyframes bulb_glow_blue { 327 | 0%{ 328 | background-image: url('bulb.png'); 329 | opacity: 0; 330 | } 331 | 50%{ 332 | opacity: 1; 333 | } 334 | 100%{ 335 | background-image: url('bulb_blue.png'); 336 | opacity: 1; 337 | } 338 | } 339 | @keyframes bulb_glow_blue { 340 | 0%{ 341 | background-image: url('bulb.png'); 342 | opacity: 0; 343 | } 344 | 50%{ 345 | opacity: 1; 346 | } 347 | 100%{ 348 | background-image: url('bulb_blue.png'); 349 | opacity: 1; 350 | } 351 | } 352 | 353 | .bulb-glow-green { 354 | background-image: url('bulb_green.png'); 355 | -webkit-animation: bulb_glow_green linear 5s; 356 | -moz-animation: bulb_glow_green linear 5s; 357 | -o-animation: bulb_glow_green linear 5s; 358 | -ms-animation: bulb_glow_green linear 5s; 359 | animation: bulb_glow_green linear 5s; 360 | } 361 | 362 | @-webkit-keyframes bulb_glow_green { 363 | 0%{ 364 | background-image: url('bulb.png'); 365 | opacity: 0; 366 | } 367 | 50%{ 368 | opacity: 1; 369 | } 370 | 100%{ 371 | background-image: url('bulb_green.png'); 372 | opacity: 1; 373 | } 374 | } 375 | @-moz-keyframes bulb_glow_green { 376 | 0%{ 377 | background-image: url('bulb.png'); 378 | opacity: 0; 379 | } 380 | 50%{ 381 | opacity: 1; 382 | } 383 | 100%{ 384 | background-image: url('bulb_green.png'); 385 | opacity: 1; 386 | } 387 | } 388 | @-o-keyframes bulb_glow_green { 389 | 0%{ 390 | background-image: url('bulb.png'); 391 | opacity: 0; 392 | } 393 | 50%{ 394 | opacity: 1; 395 | } 396 | 100%{ 397 | background-image: url('bulb_green.png'); 398 | opacity: 1; 399 | } 400 | } 401 | @-ms-keyframes bulb_glow_green { 402 | 0%{ 403 | background-image: url('bulb.png'); 404 | opacity: 0; 405 | } 406 | 50%{ 407 | opacity: 1; 408 | } 409 | 100%{ 410 | background-image: url('bulb_green.png'); 411 | opacity: 1; 412 | } 413 | } 414 | @keyframes bulb_glow_green { 415 | 0%{ 416 | background-image: url('bulb.png'); 417 | opacity: 0; 418 | } 419 | 50%{ 420 | opacity: 1; 421 | } 422 | 100%{ 423 | background-image: url('bulb_green.png'); 424 | opacity: 1; 425 | } 426 | } 427 | 428 | .bulb-glow-pink { 429 | background-image: url('bulb_pink.png'); 430 | -webkit-animation: bulb_glow_pink linear 5s; 431 | -moz-animation: bulb_glow_pink linear 5s; 432 | -o-animation: bulb_glow_pink linear 5s; 433 | -ms-animation: bulb_glow_pink linear 5s; 434 | animation: bulb_glow_pink linear 5s; 435 | } 436 | 437 | @-webkit-keyframes bulb_glow_pink { 438 | 0%{ 439 | background-image: url('bulb.png'); 440 | opacity: 0; 441 | } 442 | 50%{ 443 | opacity: 1; 444 | } 445 | 100%{ 446 | background-image: url('bulb_pink.png'); 447 | opacity: 1; 448 | } 449 | } 450 | @-moz-keyframes bulb_glow_pink { 451 | 0%{ 452 | background-image: url('bulb.png'); 453 | opacity: 0; 454 | } 455 | 50%{ 456 | opacity: 1; 457 | } 458 | 100%{ 459 | background-image: url('bulb_pink.png'); 460 | opacity: 1; 461 | } 462 | } 463 | @-o-keyframes bulb_glow_pink { 464 | 0%{ 465 | background-image: url('bulb.png'); 466 | opacity: 0; 467 | } 468 | 50%{ 469 | opacity: 1; 470 | } 471 | 100%{ 472 | background-image: url('bulb_pink.png'); 473 | opacity: 1; 474 | } 475 | } 476 | @-ms-keyframes bulb_glow_pink { 477 | 0%{ 478 | background-image: url('bulb.png'); 479 | opacity: 0; 480 | } 481 | 50%{ 482 | opacity: 1; 483 | } 484 | 100%{ 485 | background-image: url('bulb_pink.png'); 486 | opacity: 1; 487 | } 488 | } 489 | @keyframes bulb_glow_pink { 490 | 0%{ 491 | background-image: url('bulb.png'); 492 | opacity: 0; 493 | } 494 | 50%{ 495 | opacity: 1; 496 | } 497 | 100%{ 498 | background-image: url('bulb_pink.png'); 499 | opacity: 1; 500 | } 501 | } 502 | 503 | .bulb-glow-orange { 504 | background-image: url('bulb_orange.png'); 505 | -webkit-animation: bulb_glow_orange linear 5s; 506 | -moz-animation: bulb_glow_orange linear 5s; 507 | -o-animation: bulb_glow_orange linear 5s; 508 | -ms-animation: bulb_glow_orange linear 5s; 509 | animation: bulb_glow_orange linear 5s; 510 | } 511 | 512 | @-webkit-keyframes bulb_glow_orange { 513 | 0%{ 514 | background-image: url('bulb.png'); 515 | opacity: 0; 516 | } 517 | 50%{ 518 | opacity: 1; 519 | } 520 | 100%{ 521 | background-image: url('bulb_orange.png'); 522 | opacity: 1; 523 | } 524 | } 525 | @-moz-keyframes bulb_glow_orange { 526 | 0%{ 527 | background-image: url('bulb.png'); 528 | opacity: 0; 529 | } 530 | 50%{ 531 | opacity: 1; 532 | } 533 | 100%{ 534 | background-image: url('bulb_orange.png'); 535 | opacity: 1; 536 | } 537 | } 538 | @-o-keyframes bulb_glow_orange { 539 | 0%{ 540 | background-image: url('bulb.png'); 541 | opacity: 0; 542 | } 543 | 50%{ 544 | opacity: 1; 545 | } 546 | 100%{ 547 | background-image: url('bulb_orange.png'); 548 | opacity: 1; 549 | } 550 | } 551 | @-ms-keyframes bulb_glow_orange { 552 | 0%{ 553 | background-image: url('bulb.png'); 554 | opacity: 0; 555 | } 556 | 50%{ 557 | opacity: 1; 558 | } 559 | 100%{ 560 | background-image: url('bulb_orange.png'); 561 | opacity: 1; 562 | } 563 | } 564 | @keyframes bulb_glow_orange { 565 | 0%{ 566 | background-image: url('bulb.png'); 567 | opacity: 0; 568 | } 569 | 50%{ 570 | opacity: 1; 571 | } 572 | 100%{ 573 | background-image: url('bulb_orange.png'); 574 | opacity: 1; 575 | } 576 | } 577 | 578 | 579 | /*after music*/ 580 | .bulb-glow-yellow-after { 581 | background-image: url('bulb_yellow.png'); 582 | -webkit-animation: bulb_glow_yellow_after linear 1s infinite; 583 | -moz-animation: bulb_glow_yellow_after linear 1s infinite; 584 | -o-animation: bulb_glow_yellow_after linear 1s infinite; 585 | -ms-animation: bulb_glow_yellow_after linear 1s infinite; 586 | animation: bulb_glow_yellow_after linear 1s infinite; 587 | } 588 | 589 | @-webkit-keyframes bulb_glow_yellow_after { 590 | 0%{ 591 | background-image: url('bulb.png'); 592 | } 593 | 50%{ 594 | background-image: url('bulb_yellow.png'); 595 | } 596 | 100%{ 597 | background-image: url('bulb.png'); 598 | } 599 | } 600 | @-moz-keyframes bulb_glow_yellow_after { 601 | 0%{ 602 | background-image: url('bulb.png'); 603 | } 604 | 50%{ 605 | background-image: url('bulb_yellow.png'); 606 | } 607 | 100%{ 608 | background-image: url('bulb.png'); 609 | } 610 | } 611 | @-o-keyframes bulb_glow_yellow_after { 612 | 0%{ 613 | background-image: url('bulb.png'); 614 | } 615 | 50%{ 616 | background-image: url('bulb_yellow.png'); 617 | } 618 | 100%{ 619 | background-image: url('bulb.png'); 620 | } 621 | } 622 | @-ms-keyframes bulb_glow_yellow_after { 623 | 0%{ 624 | background-image: url('bulb.png'); 625 | } 626 | 50%{ 627 | background-image: url('bulb_yellow.png'); 628 | } 629 | 100%{ 630 | background-image: url('bulb.png'); 631 | } 632 | } 633 | @keyframes bulb_glow_yellow_after { 634 | 0%{ 635 | background-image: url('bulb.png'); 636 | } 637 | 50%{ 638 | background-image: url('bulb_yellow.png'); 639 | } 640 | 100%{ 641 | background-image: url('bulb.png'); 642 | } 643 | } 644 | 645 | .bulb-glow-red-after { 646 | background-image: url('bulb_red.png'); 647 | -webkit-animation: bulb_glow_red_after linear 1.2s infinite; 648 | -moz-animation: bulb_glow_red_after linear 1.2s infinite; 649 | -o-animation: bulb_glow_red_after linear 1.2s infinite; 650 | -ms-animation: bulb_glow_red_after linear 1.2s infinite; 651 | animation: bulb_glow_red_after linear 1.2s infinite; 652 | } 653 | 654 | @-webkit-keyframes bulb_glow_red_after { 655 | 0%{ 656 | background-image: url('bulb.png'); 657 | } 658 | 50%{ 659 | background-image: url('bulb_red.png'); 660 | } 661 | 100%{ 662 | background-image: url('bulb.png'); 663 | } 664 | } 665 | @-moz-keyframes bulb_glow_red_after { 666 | 0%{ 667 | background-image: url('bulb.png'); 668 | } 669 | 50%{ 670 | background-image: url('bulb_red.png'); 671 | } 672 | 100%{ 673 | background-image: url('bulb.png'); 674 | } 675 | } 676 | @-o-keyframes bulb_glow_red_after { 677 | 0%{ 678 | background-image: url('bulb.png'); 679 | } 680 | 50%{ 681 | background-image: url('bulb_red.png'); 682 | } 683 | 100%{ 684 | background-image: url('bulb.png'); 685 | } 686 | } 687 | @-ms-keyframes bulb_glow_red_after { 688 | 0%{ 689 | background-image: url('bulb.png'); 690 | } 691 | 50%{ 692 | background-image: url('bulb_red.png'); 693 | } 694 | 100%{ 695 | background-image: url('bulb.png'); 696 | } 697 | } 698 | @keyframes bulb_glow_red_after { 699 | 0%{ 700 | background-image: url('bulb.png'); 701 | } 702 | 50%{ 703 | background-image: url('bulb_red.png'); 704 | } 705 | 100%{ 706 | background-image: url('bulb.png'); 707 | } 708 | } 709 | 710 | .bulb-glow-blue-after { 711 | background-image: url('bulb_blue.png'); 712 | -webkit-animation: bulb_glow_blue_after linear 1.4s infinite; 713 | -moz-animation: bulb_glow_blue_after linear 1.4s infinite; 714 | -o-animation: bulb_glow_blue_after linear 1.4s infinite; 715 | -ms-animation: bulb_glow_blue_after linear 1.4s infinite; 716 | animation: bulb_glow_blue_after linear 1.4s infinite; 717 | } 718 | 719 | @-webkit-keyframes bulb_glow_blue_after { 720 | 0%{ 721 | background-image: url('bulb.png'); 722 | } 723 | 50%{ 724 | background-image: url('bulb_blue.png'); 725 | } 726 | 100%{ 727 | background-image: url('bulb.png'); 728 | } 729 | } 730 | @-moz-keyframes bulb_glow_blue_after { 731 | 0%{ 732 | background-image: url('bulb.png'); 733 | } 734 | 50%{ 735 | background-image: url('bulb_blue.png'); 736 | } 737 | 100%{ 738 | background-image: url('bulb.png'); 739 | } 740 | } 741 | @-o-keyframes bulb_glow_blue_after { 742 | 0%{ 743 | background-image: url('bulb.png'); 744 | } 745 | 50%{ 746 | background-image: url('bulb_blue.png'); 747 | } 748 | 100%{ 749 | background-image: url('bulb.png'); 750 | } 751 | } 752 | @-ms-keyframes bulb_glow_blue_after { 753 | 0%{ 754 | background-image: url('bulb.png'); 755 | } 756 | 50%{ 757 | background-image: url('bulb_blue.png'); 758 | } 759 | 100%{ 760 | background-image: url('bulb.png'); 761 | } 762 | } 763 | @keyframes bulb_glow_blue_after { 764 | 0%{ 765 | background-image: url('bulb.png'); 766 | } 767 | 50%{ 768 | background-image: url('bulb_blue.png'); 769 | } 770 | 100%{ 771 | background-image: url('bulb.png'); 772 | } 773 | } 774 | .bulb-glow-green-after { 775 | background-image: url('bulb_green.png'); 776 | -webkit-animation: bulb_glow_green_after linear 1.8s infinite; 777 | -moz-animation: bulb_glow_green_after linear 1.8s infinite; 778 | -o-animation: bulb_glow_green_after linear 1.8s infinite; 779 | -ms-animation: bulb_glow_green_after linear 1.8s infinite; 780 | animation: bulb_glow_green_after linear 1.8s infinite; 781 | } 782 | 783 | @-webkit-keyframes bulb_glow_green_after { 784 | 0%{ 785 | background-image: url('bulb.png'); 786 | } 787 | 50%{ 788 | background-image: url('bulb_green.png'); 789 | } 790 | 100%{ 791 | background-image: url('bulb.png'); 792 | } 793 | } 794 | 795 | @-moz-keyframes bulb_glow_green_after { 796 | 0%{ 797 | background-image: url('bulb.png'); 798 | } 799 | 50%{ 800 | background-image: url('bulb_green.png'); 801 | } 802 | 100%{ 803 | background-image: url('bulb.png'); 804 | } 805 | } 806 | @-o-keyframes bulb_glow_green_after { 807 | 0%{ 808 | background-image: url('bulb.png'); 809 | } 810 | 50%{ 811 | background-image: url('bulb_green.png'); 812 | } 813 | 100%{ 814 | background-image: url('bulb.png'); 815 | } 816 | } 817 | @-ms-keyframes bulb_glow_green_after { 818 | 0%{ 819 | background-image: url('bulb.png'); 820 | } 821 | 50%{ 822 | background-image: url('bulb_green.png'); 823 | } 824 | 100%{ 825 | background-image: url('bulb.png'); 826 | } 827 | } 828 | @keyframes bulb_glow_green_after { 829 | 0%{ 830 | background-image: url('bulb.png'); 831 | } 832 | 50%{ 833 | background-image: url('bulb_green.png'); 834 | } 835 | 100%{ 836 | background-image: url('bulb.png'); 837 | } 838 | } 839 | .bulb-glow-pink-after { 840 | background-image: url('bulb_pink.png'); 841 | -webkit-animation: bulb_glow_pink_after linear 2s infinite; 842 | -moz-animation: bulb_glow_pink_after linear 2s infinite; 843 | -o-animation: bulb_glow_pink_after linear 2s infinite; 844 | -ms-animation: bulb_glow_pink_after linear 2s infinite; 845 | animation: bulb_glow_pink_after linear 2s infinite; 846 | } 847 | 848 | @-webkit-keyframes bulb_glow_pink_after { 849 | 0%{ 850 | background-image: url('bulb.png'); 851 | } 852 | 50%{ 853 | background-image: url('bulb_pink.png'); 854 | } 855 | 100%{ 856 | background-image: url('bulb.png'); 857 | } 858 | } 859 | @-moz-keyframes bulb_glow_pink_after { 860 | 0%{ 861 | background-image: url('bulb.png'); 862 | } 863 | 50%{ 864 | background-image: url('bulb_pink.png'); 865 | } 866 | 100%{ 867 | background-image: url('bulb.png'); 868 | } 869 | } 870 | @-o-keyframes bulb_glow_pink_after { 871 | 0%{ 872 | background-image: url('bulb.png'); 873 | } 874 | 50%{ 875 | background-image: url('bulb_pink.png'); 876 | } 877 | 100%{ 878 | background-image: url('bulb.png'); 879 | } 880 | } 881 | @-ms-keyframes bulb_glow_pink_after { 882 | 0%{ 883 | background-image: url('bulb.png'); 884 | } 885 | 50%{ 886 | background-image: url('bulb_pink.png'); 887 | } 888 | 100%{ 889 | background-image: url('bulb.png'); 890 | } 891 | } 892 | @keyframes bulb_glow_pink_after { 893 | 0%{ 894 | background-image: url('bulb.png'); 895 | } 896 | 50%{ 897 | background-image: url('bulb_pink.png'); 898 | } 899 | 100%{ 900 | background-image: url('bulb.png'); 901 | } 902 | } 903 | .bulb-glow-orange-after { 904 | background-image: url('bulb_orange.png'); 905 | -webkit-animation: bulb_glow_orange_after linear 2.2s infinite; 906 | -moz-animation: bulb_glow_orange_after linear 2.2s infinite; 907 | -o-animation: bulb_glow_orange_after linear 2.2s infinite; 908 | -ms-animation: bulb_glow_orange_after linear 2.2s infinite; 909 | animation: bulb_glow_orange_after linear 2.2s infinite; 910 | } 911 | 912 | @-webkit-keyframes bulb_glow_orange_after { 913 | 0%{ 914 | background-image: url('bulb.png'); 915 | } 916 | 50%{ 917 | background-image: url('bulb_orange.png'); 918 | } 919 | 100%{ 920 | background-image: url('bulb.png'); 921 | } 922 | } 923 | @-moz-keyframes bulb_glow_orange_after { 924 | 0%{ 925 | background-image: url('bulb.png'); 926 | } 927 | 50%{ 928 | background-image: url('bulb_orange.png'); 929 | } 930 | 100%{ 931 | background-image: url('bulb.png'); 932 | } 933 | } 934 | @-o-keyframes bulb_glow_orange_after { 935 | 0%{ 936 | background-image: url('bulb.png'); 937 | } 938 | 50%{ 939 | background-image: url('bulb_orange.png'); 940 | } 941 | 100%{ 942 | background-image: url('bulb.png'); 943 | } 944 | } 945 | @-ms-keyframes bulb_glow_orange_after { 946 | 0%{ 947 | background-image: url('bulb.png'); 948 | } 949 | 50%{ 950 | background-image: url('bulb_orange.png'); 951 | } 952 | 100%{ 953 | background-image: url('bulb.png'); 954 | } 955 | } 956 | @keyframes bulb_glow_orange_after { 957 | 0%{ 958 | background-image: url('bulb.png'); 959 | } 960 | 50%{ 961 | background-image: url('bulb_orange.png'); 962 | } 963 | 100%{ 964 | background-image: url('bulb.png'); 965 | } 966 | } 967 | audio { 968 | display: none; 969 | } 970 | 971 | .bannar { 972 | max-width: 100%; 973 | -webkit-transform:translate(0px,-500px); 974 | -moz-transform:translate(0px,-500px); 975 | -o-transform:translate(0px,-500px); 976 | -ms-transform:translate(0px,-500px); 977 | transform:translate(0px,-500px); 978 | 979 | } 980 | .bannar-come { 981 | -webkit-animation: bannar_come linear 6s; 982 | -webkit-transform:translate(0px,0px); 983 | -moz-animation: bannar_come linear 6s; 984 | -moz-transform:translate(0px,0px); 985 | -o-animation: bannar_come linear 6s; 986 | -o-transform:translate(0px,0px); 987 | -ms-animation: bannar_come linear 6s; 988 | -ms-transform:translate(0px,0px); 989 | animation: bannar_come linear 6s; 990 | transform:translate(0px,0px); 991 | } 992 | @-webkit-keyframes bannar_come { 993 | 0%{ 994 | -webkit-transform:translate(0px,-1000px); 995 | } 996 | 33%{ 997 | -webkit-transform:translate(0px,0px); 998 | -webkit-transform:rotate(10deg); 999 | /*-webkit-transform:scale(1.5);*/ 1000 | } 1001 | 66% { 1002 | -webkit-transform:translate(0px,100px); 1003 | -webkit-transform:rotate(-10deg); 1004 | } 1005 | 100% { 1006 | -webkit-transform:translate(0px,0px); 1007 | } 1008 | } 1009 | @-moz-keyframes bannar_come { 1010 | 0%{ 1011 | -moz-transform:translate(0px,-1000px); 1012 | } 1013 | 33%{ 1014 | -moz-transform:translate(0px,0px); 1015 | -moz-transform:rotate(10deg); 1016 | /*-webkit-transform:scale(1.5);*/ 1017 | } 1018 | 66% { 1019 | -moz-transform:translate(0px,100px); 1020 | -moz-transform:rotate(-10deg); 1021 | } 1022 | 100% { 1023 | -moz-transform:translate(0px,0px); 1024 | } 1025 | } 1026 | @-o-keyframes bannar_come { 1027 | 0%{ 1028 | -o-transform:translate(0px,-1000px); 1029 | } 1030 | 33%{ 1031 | -o-transform:translate(0px,0px); 1032 | -o-transform:rotate(10deg); 1033 | /*-webkit-transform:scale(1.5);*/ 1034 | } 1035 | 66% { 1036 | -o-transform:translate(0px,100px); 1037 | -o-transform:rotate(-10deg); 1038 | } 1039 | 100% { 1040 | -o-transform:translate(0px,0px); 1041 | } 1042 | } 1043 | @-ms-keyframes bannar_come { 1044 | 0%{ 1045 | -ms-transform:translate(0px,-1000px); 1046 | } 1047 | 33%{ 1048 | -ms-transform:translate(0px,0px); 1049 | -ms-transform:rotate(10deg); 1050 | /*-webkit-transform:scale(1.5);*/ 1051 | } 1052 | 66% { 1053 | -ms-transform:translate(0px,100px); 1054 | -ms-transform:rotate(-10deg); 1055 | } 1056 | 100% { 1057 | -ms-transform:translate(0px,0px); 1058 | } 1059 | }o 1060 | @keyframes bannar_come { 1061 | 0%{ 1062 | transform:translate(0px,-1000px); 1063 | } 1064 | 33%{ 1065 | transform:translate(0px,0px); 1066 | transform:rotate(10deg); 1067 | /*-webkit-transform:scale(1.5);*/ 1068 | } 1069 | 66% { 1070 | transform:translate(0px,100px); 1071 | transform:rotate(-10deg); 1072 | } 1073 | 100% { 1074 | transform:translate(0px,0px); 1075 | } 1076 | } 1077 | 1078 | .balloons { 1079 | position: fixed; 1080 | bottom: -200px; 1081 | opacity: 0.6; 1082 | z-index: 99; 1083 | width: 100px; 1084 | height: 183px; 1085 | background-repeat: no-repeat no-repeat; 1086 | background-size: 100px 183px; 1087 | } 1088 | .balloons h2 { 1089 | text-transform: uppercase; 1090 | font-family: 'Signika', sans-serif; 1091 | font-size: 50px; 1092 | color: #BF4136; 1093 | text-shadow: 5px 5px 5px #FFF; 1094 | display: none; 1095 | } 1096 | #b1,#b11 { 1097 | background-image: url('b1.png'); 1098 | } 1099 | #b2,#b22 { 1100 | background-image: url('b2.png'); 1101 | } 1102 | #b3,#b33 { 1103 | background-image: url('b3.png'); 1104 | } 1105 | #b4,#b44{ 1106 | background-image: url('b4.png'); 1107 | } 1108 | #b5,#b55{ 1109 | background-image: url('b5.png'); 1110 | } 1111 | #b6,#b66{ 1112 | background-image: url('b6.png'); 1113 | } 1114 | #b7,#b77{ 1115 | background-image: url('b7.png'); 1116 | } 1117 | .balloons-rotate-behaviour-one { 1118 | -webkit-animation: balloons_rotate_one linear 10s infinite; 1119 | -webkit-transform: rotate(30deg); 1120 | -moz-animation: balloons_rotate_one linear 10s infinite; 1121 | -moz-transform: rotate(30deg); 1122 | -o-animation: balloons_rotate_one linear 10s infinite; 1123 | -o-transform: rotate(30deg); 1124 | -ms-animation: balloons_rotate_one linear 10s infinite; 1125 | -ms-transform: rotate(30deg); 1126 | animation: balloons_rotate_one linear 10s infinite; 1127 | transform: rotate(30deg); 1128 | } 1129 | @-webkit-keyframes balloons_rotate_one { 1130 | 0% { 1131 | -webkit-transform: rotate(30deg); 1132 | } 1133 | 50% { 1134 | -webkit-transform: rotate(-30deg); 1135 | } 1136 | 100% { 1137 | -webkit-transform: rotate(30deg); 1138 | } 1139 | } 1140 | @-moz-keyframes balloons_rotate_one { 1141 | 0% { 1142 | -moz-transform: rotate(30deg); 1143 | } 1144 | 50% { 1145 | -moz-transform: rotate(-30deg); 1146 | } 1147 | 100% { 1148 | -moz-transform: rotate(30deg); 1149 | } 1150 | } 1151 | @-o-keyframes balloons_rotate_one { 1152 | 0% { 1153 | -o-transform: rotate(30deg); 1154 | } 1155 | 50% { 1156 | -o-transform: rotate(-30deg); 1157 | } 1158 | 100% { 1159 | -o-transform: rotate(30deg); 1160 | } 1161 | } 1162 | @-ms-keyframes balloons_rotate_one { 1163 | 0% { 1164 | -ms-transform: rotate(30deg); 1165 | } 1166 | 50% { 1167 | -ms-transform: rotate(-30deg); 1168 | } 1169 | 100% { 1170 | -ms-transform: rotate(30deg); 1171 | } 1172 | } 1173 | @keyframes balloons_rotate_one { 1174 | 0% { 1175 | transform: rotate(30deg); 1176 | } 1177 | 50% { 1178 | transform: rotate(-30deg); 1179 | } 1180 | 100% { 1181 | transform: rotate(30deg); 1182 | } 1183 | } 1184 | .balloons-rotate-behaviour-two { 1185 | -webkit-animation: balloons_rotate_two linear 10s infinite; 1186 | -webkit-transform: rotate(-20deg); 1187 | -moz-animation: balloons_rotate_two linear 10s infinite; 1188 | -moz-transform: rotate(-20deg); 1189 | -o-animation: balloons_rotate_two linear 10s infinite; 1190 | -o-transform: rotate(-20deg); 1191 | -ms-animation: balloons_rotate_two linear 10s infinite; 1192 | -ms-transform: rotate(-20deg); 1193 | animation: balloons_rotate_two linear 10s infinite; 1194 | transform: rotate(-20deg); 1195 | } 1196 | @-webkit-keyframes balloons_rotate_two { 1197 | 0% { 1198 | -webkit-transform: rotate(-20deg); 1199 | } 1200 | 50% { 1201 | -webkit-transform: rotate(20deg); 1202 | } 1203 | 100% { 1204 | -webkit-transform: rotate(-20deg); 1205 | } 1206 | } 1207 | @-moz-keyframes balloons_rotate_two { 1208 | 0% { 1209 | -moz-transform: rotate(-20deg); 1210 | } 1211 | 50% { 1212 | -moz-transform: rotate(20deg); 1213 | } 1214 | 100% { 1215 | -moz-transform: rotate(-20deg); 1216 | } 1217 | } 1218 | @-o-keyframes balloons_rotate_two { 1219 | 0% { 1220 | -o-transform: rotate(-20deg); 1221 | } 1222 | 50% { 1223 | -o-transform: rotate(20deg); 1224 | } 1225 | 100% { 1226 | -o-transform: rotate(-20deg); 1227 | } 1228 | } 1229 | @-ms-keyframes balloons_rotate_two { 1230 | 0% { 1231 | -ms-transform: rotate(-20deg); 1232 | } 1233 | 50% { 1234 | -ms-transform: rotate(20deg); 1235 | } 1236 | 100% { 1237 | -ms-transform: rotate(-20deg); 1238 | } 1239 | } 1240 | @keyframes balloons_rotate_two { 1241 | 0% { 1242 | transform: rotate(-20deg); 1243 | } 1244 | 50% { 1245 | transform: rotate(20deg); 1246 | } 1247 | 100% { 1248 | transform: rotate(-20deg); 1249 | } 1250 | } 1251 | 1252 | .balloon-border{ 1253 | position: fixed; 1254 | top:100%; 1255 | opacity: 0.5; 1256 | z-index: 9999; 1257 | } 1258 | .control-panel { 1259 | position: fixed; 1260 | bottom: 0; 1261 | padding:10px 0px 10px 0px; 1262 | } 1263 | #play, #bannar_coming, #balloons_flying,#cake_fadein,#light_candle,#wish_message,#story { 1264 | display: none; 1265 | } 1266 | 1267 | .cake-cover { 1268 | margin-top: 50px; 1269 | } 1270 | .message { 1271 | margin-top: 200px; 1272 | display: none; 1273 | } 1274 | .message p { 1275 | font-family: 'Signika', sans-serif; 1276 | font-size: 30px; 1277 | text-transform: uppercase; 1278 | color: #C4515C; 1279 | text-shadow: 2px 2px 2px #FFF; 1280 | display: none; 1281 | font-weight: bold; 1282 | } 1283 | 1284 | .btn-primary { 1285 | border-color: #466baf; 1286 | padding: 10px; 1287 | text-transform: uppercase; 1288 | font-family: 'Signika', sans-serif; 1289 | font-weight: 700; 1290 | color: #fff; 1291 | background-color: #466baf; 1292 | } 1293 | .btn-primary:hover, 1294 | .btn-primary:focus, 1295 | .btn-primary:active, 1296 | .btn-primary.active, 1297 | .open .dropdown-toggle.btn-primary { 1298 | border-color: #fff; 1299 | color: #fff; 1300 | background-color: #466baf; 1301 | } 1302 | 1303 | 1304 | 1305 | /*controlling tablet width*/ 1306 | /*@media only screen and (max-width: 720px){ 1307 | .container { 1308 | -webkit-transform: scale(0.9); 1309 | } 1310 | }*/ --------------------------------------------------------------------------------