add promo popup for mobile users

This commit is contained in:
Pavel Dobryakov
2020-03-31 15:26:08 +03:00
parent ab1ca45f88
commit 93cad8a40b
6 changed files with 145 additions and 6 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

BIN
app_badge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
gp_badge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -23,6 +23,11 @@
<script type="text/javascript" src="dat.gui.min.js"></script> <script type="text/javascript" src="dat.gui.min.js"></script>
<style> <style>
@font-face {
font-family: 'iconfont';
src: url('iconfont.ttf') format('truetype');
}
* { * {
user-select: none; user-select: none;
} }
@@ -52,11 +57,6 @@
overflow: visible; overflow: visible;
} }
@font-face {
font-family: 'iconfont';
src: url('iconfont.ttf') format('truetype');
}
.bigFont { .bigFont {
font-size: 150%; font-size: 150%;
color: #8C8C8C; color: #8C8C8C;
@@ -99,16 +99,126 @@
.discord:before { .discord:before {
content: 'd'; content: 'd';
} }
.promo {
display: none;
/* display: table; */
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
overflow: auto;
color: lightblue;
background-color: rgba(0,0,0,0.4);
animation: promo-appear-animation 0.35s ease-out;
}
.promo-middle {
display: table-cell;
vertical-align: middle;
}
.promo-content {
width: 80vw;
height: 80vh;
max-width: 80vh;
max-height: 80vw;
margin: auto;
padding: 0;
font-size: 2.8vmax;
font-family: Futura, "Trebuchet MS", Arial, sans-serif;
text-align: center;
background-image: url("promo_back.png");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
border-radius: 15px;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
}
.promo-header {
height: 10%;
padding: 2px 16px;
}
.promo-close {
width: 10%;
height: 100%;
text-align: left;
float: left;
font-size: 1.3em;
/* transition: 0.2s; */
}
.promo-close:hover {
/* transform: scale(1.25); */
cursor: pointer;
}
.promo-body {
padding: 8px 16px 16px 16px;
margin: auto;
}
.promo-body p {
margin-top: 0;
mix-blend-mode: color-dodge;
}
.link {
width: 100%;
display: inline-block;
}
.link img {
width: 100%;
}
@keyframes promo-appear-animation {
0% {
transform: scale(2.0);
opacity: 0;
}
100% {
transform: scale(1.0);
opacity: 1;
}
}
</style> </style>
<script> <script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-105392568-1', 'auto'); ga('create', 'UA-105392568-1', 'auto');
ga('send', 'pageview'); ga('send', 'pageview');
</script> </script>
<script async src='https://www.google-analytics.com/analytics.js'></script> <script async src="https://www.google-analytics.com/analytics.js"></script>
</head> </head>
<body> <body>
<canvas></canvas> <canvas></canvas>
<!-- Mother of God, pls forgive me -->
<div class="promo">
<div class="promo-middle">
<div class="promo-content">
<div class="promo-header">
<span class="promo-close">&times;</span>
</div>
<div class="promo-body">
<p>Try Fluid Simulation app!</p>
<div class="links-container">
<a class="link" id="apple_link" target="_blank">
<img class="link-img" alt="Download on the App Store" src="app_badge.png"/>
</a>
<a class="link" id="google_link" target="_blank">
<img class="link-img" alt="Get it on Google Play" src="gp_badge.png"/>
</a>
</div>
</div>
</div>
</div>
</div>
<script src="./script.js"></script> <script src="./script.js"></script>
</body> </body>
</html> </html>

BIN
promo_back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 KiB

View File

@@ -24,6 +24,35 @@ SOFTWARE.
'use strict'; 'use strict';
// Promo code
const promoPopup = document.getElementsByClassName('promo')[0];
const promoPopupClose = document.getElementsByClassName('promo-close')[0];
if (isMobile()) {
setTimeout(() => {
promoPopup.style.display = 'table';
}, 20000);
}
promoPopupClose.addEventListener('click', e => {
promoPopup.style.display = 'none';
});
const appleLink = document.getElementById('apple_link');
appleLink.addEventListener('click', e => {
ga('send', 'event', 'link promo', 'app');
window.open('https://apps.apple.com/us/app/fluid-simulation/id1443124993');
});
const googleLink = document.getElementById('google_link');
googleLink.addEventListener('click', e => {
ga('send', 'event', 'link promo', 'app');
window.open('https://play.google.com/store/apps/details?id=games.paveldogreat.fluidsimfree');
});
// Simulation code
const canvas = document.getElementsByTagName('canvas')[0]; const canvas = document.getElementsByTagName('canvas')[0];
resizeCanvas(); resizeCanvas();