JSFiddle - React, Tailwind, and code Playground
by Miklos Nagy
HTML
<!DOCTYPE html>
<html lang="hu">
<head>
<title>Intelligensweboldal.hu - a keresőt uraljuk. </title>
<meta property="og:title" content="Weboldal készítés" />
<script class="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script class="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.js"></script>
<script class="text/javascript" src="script.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="interface">
<div class="card">
<span class="logo fa-stack fa-4x">
<i class="fa fa-circle fa-stack-2x" style="color: #343434;"></i>
<i class="fa fa-key fa-stack-1x" style="color: #fff;"></i>
</span>
<div class="block">
<span class="email-button fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x" style="color: #FF5569;"></i>
<i class="p-plane fa fa-paper-plane fa-stack-1x" style="color: #fff; font-size: 16px;"></i>
</span>
<svg class="p-plane-smoke none" height="30" width="30">
<path stroke="#fff" fill="none" stroke-width="2px" style="stroke-dasharray:40% 140%; stroke-dashoffset: 220%" d=" M 25 0
L 15 10
Q 11.25 14 7.5 10
5.5 7.5 7.5 5
11 1.5 10 7
M 30 5
L 20 15
Q 15.5 18.75 20 22.5
22.5 24.5 25 22.5
28.5 19 23 20">
</path>
</svg>
<div class="block-content">
<p>Nagy Miklós</p>
<p>Web-designer, UX designer</p>
<ul class="socials">
<li><a href="https://www.facebook.com/intelligensweboldal.hu/"><i class="fa fa-facebook"></i></a> </li>
</ul>
</div>
</div>
</div>
<div class="email none">
<div class="email-outter">
<div class="email-center">
<div class="email-rotate">
<svg height="50px" width="50px" id="email">
<path stroke="#fff" fill="#fff"...
CSS
@import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css");
@import url(https://fonts.googleapis.com/css?family=Roboto:300);
body {
background: #EBEBEB;
font-family: Roboto, 'sans-serif';
}
* {
padding: 0;
margin: 0;
}
body,
html {
margin: 0;
}
.interface {
height: 370px;
width: 270px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 5px;
overflow: hidden;
-webkit-box-shadow: 1px 1px 5px -1px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 1px 1px 5px -1px rgba(0, 0, 0, 0.75);
box-shadow: 1px 1px 5px -1px rgba(0, 0, 0, 0.75);
}
@media only screen and (max-width:667px){
.interface{
transform: translate(-50%, -50%) scale(3.5);
}
}
.card,
.email,
.send {
height: 100%;
width: 100%;
position: absolute;
}
/**********************/
.card {
background: #F7F7F7;
}
.logo {
position: absolute;
left: 50%;
top: 125px;
transform: translate(-50%, -50%);
}
.block {
height: 120px;
width: 270px;
background: #fff;
position: absolute;
bottom: 0px;
}
.block-content {
width: 270px;
text-align: center;
margin-top: 25px;
}
.block-content p:nth-child(1) {
font-weight: bold;
font-size: 1em;
padding: 3px;
}
.block-content p:nth-child(2) {
font-size: 0.8em;
padding: 3px;
}
.socials {
display: block;
max-width: 36px;
margin: 0 auto;
}
.socials li {
display: block;
width: 10px;
text-align: center;
float: left;
padding: 8px 4px 0px 4px;
cursor: pointer;
}
.email-button {
position: absolute;
right: 21px;
top: -21px;
cursor: pointer;
}
.p-plane {
position: relative;
z-index: 101;
}
.p-plane-smoke {
position: absolute;
right: 40px;
top: 5px;
z-index: 105;
}
.p-plane-smoke path.hover {
animation: smoke 1s;
}
@keyframes smoke {
to {
stroke-dashoffset: 40%;
}
}
/**********************/
.email {
background: #FF5569;
width: 25px;
height: 25px;
position: absolute;
right: 30px;
...
JavaScript
$(document).ready(function() {
var $email = $('.email-button'),
$send = $('.send-button');
$email.click(function() {
$('.p-plane-smoke').attr("class", "p-plane-smoke");
$('.p-plane-smoke path').attr("class", "hover");
$('.email').removeClass('none');
$('.email').animate({
bottom: "0px",
right: "0px",
height: "100%",
width: "100%"
});
setTimeout(function() {
$('.p-plane').animate({
left: "50px",
bottom: "50px"
});
}, 300);
setTimeout(function() {
$('.p-plane-smoke').hide();
}, 1100);
setTimeout(function() {
var svg = $('#email'),
path = $('#email path'),
animation = document.createElementNS('http://www.w3.org/2000/svg', 'animate');
animation.setAttributeNS(null, 'id', 'a_email');
animation.setAttributeNS(null, 'attributeName', 'd');
animation.setAttributeNS(null, 'begin', 'indefinite');
animation.setAttributeNS(null, 'dur', '600ms');
animation.setAttributeNS(null, 'fill', 'freeze');
animation.setAttributeNS(null, 'from', 'M 7.5 25 Q 45 7.5 45 7.5 42.5 22.5 42.5 22.5 7.75 25 7.75 25 45 27.5 45 7.5 42.5 29 42.5 29 45 42.5 45 42.5 7.5 25 7.5 25z');
animation.setAttributeNS(null, 'to', 'M 7.5 25 Q 17.5 5 17.5 5 17.5 7.75 17.5 7.75 27.5 25 27.5 25 27.5 25 27.5 25 17.5 42.5 17.5 42.5 17.5 45 17.5 45 7.5 25 7.5 25z');
animation.setAttributeNS(null, 'values', 'M 7.5 25 Q 45 7.5 45 7.5 42.5 22.5 42.5 22.5 7.75 25 7.75 25 45 27.5 5 27.5 42.5 29 42.5 29 45 42.5 45 42.5 7.5 25 7.5 25z;M 7.5 30 Q 15 -10 45 7.5 37.5 15 37.5 15 37.5 15 37.5 15 37.5 15 37.5 15 37.5 15 37.5 15 37.5 22.5 37.5 22.5 20 2.5 7.5 30z;M 7.5 25 Q 45 7.5 45 7.5 42.5 22.5 42.5 22.5 45 27.5 45 27.5 45 27.5 45 27.5 42.5 29 42.5 29 45 42.5 45 42.5 7.5 25 7.5 25z; M 7.5 25 Q 17.5 5 17.5 5 17.5 7.75 17.5 7.75 27.5 25 27.5 25 27.5 25 27.5 25 17.5 42.5 17.5 42.5 17.5 45 17.5 45 7.5 25 7.5 25z');
path.append(animation);
...