Magic 8-ball
How do I make an magic 8-ball?
With css translation (ru/en). What is a magic 8-ball? How do you make a magic 8-ball? This script and codes were developed by Anton Kalinin on 28 November 2022, Monday.
Magic 8-ball - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Magic 8-ball</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel="stylesheet" href="css/style.css">
</head>
<body> <div class="magic-8-ball"> <div class="reflection"></div> <div class="reflection1"></div> <div class="glass"></div> <div class="ball"> <span></span> </div>
</div>
<div class="shadow"></div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://sugarjs.com/release/current/sugar.min.js'></script> <script src="js/index.js"></script>
</body>
</html>
Magic 8-ball - Script Codes CSS Codes
@charset "UTF-8";
@import url(https://fonts.googleapis.com/css?family=Poiret+One&subset=latin,cyrillic);
@-webkit-keyframes shake { 0% { top: 4px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 10% { top: -3px; left: -4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 20% { top: -5px; left: 0px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 30% { top: 0px; left: 4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 40% { top: 3px; left: -3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 50% { top: -3px; left: 4px; -moz-transform: rotate(4deg); -ms-transform: rotate(4deg); -webkit-transform: rotate(4deg); transform: rotate(4deg); } 60% { top: -5px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 70% { top: 4px; left: 3px; -moz-transform: rotate(-2deg); -ms-transform: rotate(-2deg); -webkit-transform: rotate(-2deg); transform: rotate(-2deg); } 80% { top: -3px; left: -3px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 90% { top: 4px; left: 4px; -moz-transform: rotate(-1deg); -ms-transform: rotate(-1deg); -webkit-transform: rotate(-1deg); transform: rotate(-1deg); } 100% { top: 3px; left: -4px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); }
}
@-moz-keyframes shake { 0% { top: 4px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 10% { top: -3px; left: -4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 20% { top: -5px; left: 0px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 30% { top: 0px; left: 4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 40% { top: 3px; left: -3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 50% { top: -3px; left: 4px; -moz-transform: rotate(4deg); -ms-transform: rotate(4deg); -webkit-transform: rotate(4deg); transform: rotate(4deg); } 60% { top: -5px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 70% { top: 4px; left: 3px; -moz-transform: rotate(-2deg); -ms-transform: rotate(-2deg); -webkit-transform: rotate(-2deg); transform: rotate(-2deg); } 80% { top: -3px; left: -3px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 90% { top: 4px; left: 4px; -moz-transform: rotate(-1deg); -ms-transform: rotate(-1deg); -webkit-transform: rotate(-1deg); transform: rotate(-1deg); } 100% { top: 3px; left: -4px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); }
}
@-ms-keyframes shake { 0% { top: 4px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 10% { top: -3px; left: -4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 20% { top: -5px; left: 0px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 30% { top: 0px; left: 4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 40% { top: 3px; left: -3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 50% { top: -3px; left: 4px; -moz-transform: rotate(4deg); -ms-transform: rotate(4deg); -webkit-transform: rotate(4deg); transform: rotate(4deg); } 60% { top: -5px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 70% { top: 4px; left: 3px; -moz-transform: rotate(-2deg); -ms-transform: rotate(-2deg); -webkit-transform: rotate(-2deg); transform: rotate(-2deg); } 80% { top: -3px; left: -3px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 90% { top: 4px; left: 4px; -moz-transform: rotate(-1deg); -ms-transform: rotate(-1deg); -webkit-transform: rotate(-1deg); transform: rotate(-1deg); } 100% { top: 3px; left: -4px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); }
}
@keyframes shake { 0% { top: 4px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 10% { top: -3px; left: -4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 20% { top: -5px; left: 0px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 30% { top: 0px; left: 4px; -moz-transform: rotate(2deg); -ms-transform: rotate(2deg); -webkit-transform: rotate(2deg); transform: rotate(2deg); } 40% { top: 3px; left: -3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 50% { top: -3px; left: 4px; -moz-transform: rotate(4deg); -ms-transform: rotate(4deg); -webkit-transform: rotate(4deg); transform: rotate(4deg); } 60% { top: -5px; left: 3px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); } 70% { top: 4px; left: 3px; -moz-transform: rotate(-2deg); -ms-transform: rotate(-2deg); -webkit-transform: rotate(-2deg); transform: rotate(-2deg); } 80% { top: -3px; left: -3px; -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -webkit-transform: rotate(0deg); transform: rotate(0deg); } 90% { top: 4px; left: 4px; -moz-transform: rotate(-1deg); -ms-transform: rotate(-1deg); -webkit-transform: rotate(-1deg); transform: rotate(-1deg); } 100% { top: 3px; left: -4px; -moz-transform: rotate(1deg); -ms-transform: rotate(1deg); -webkit-transform: rotate(1deg); transform: rotate(1deg); }
}
body { background-color: #000; overflow: hidden;
}
.magic-8-ball { box-shadow: 0px 0px 20px rgba(168, 0, 119, 0.2) inset; background: #000; width: 300px; height: 300px; border-radius: 9999px;
}
.magic-8-ball:hover { -o-animation: shake 0.8s infinite linear; -moz-animation: shake 0.8s infinite linear; -webkit-animation: shake 0.8s infinite linear; animation: shake 0.8s infinite linear;
}
.magic-8-ball:hover span { top: -55px; left: 0; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; -webkit-transition: all 0.5s ease; transition: all 0.5s ease;
}
.magic-8-ball span { position: absolute; top: 55px; left: 0; right: 0; margin: auto; width: 100px; height: 100px; text-align: center; word-wrap: break-word; -moz-transition: all 0.5s ease; -o-transition: all 0.5s ease; -webkit-transition: all 0.5s ease; transition: all 0.5s ease;
}
.magic-8-ball span:before { content: "Shake me";
}
.middle, .magic-8-ball, .glass, .reflection, .reflection1, .ball { -moz-transform: translate3D(0, 0, 0); -ms-transform: translate3D(0, 0, 0); -webkit-transform: translate3D(0, 0, 0); transform: translate3D(0, 0, 0); position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;
}
.glass { box-shadow: 0px 0px 20px 5px #000 inset; width: 140px; height: 140px; z-index: 2; border-radius: 9999px; overflow: hidden;
}
.glass:before { position: absolute; width: inherit; height: inherit; content: ""; background-size: 100% 80%; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IiIgcj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2YyZjZmOCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwOTlmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjUxJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g'); background-size: 100%; background-image: -moz-radial-gradient(center, ellipse cover, rgba(242, 246, 248, 0.1) 0%, rgba(0, 153, 255, 0.1) 50%, rgba(255, 255, 255, 0) 51%, rgba(255, 255, 255, 0) 100%); background-image: -webkit-radial-gradient(center, ellipse cover, rgba(242, 246, 248, 0.1) 0%, rgba(0, 153, 255, 0.1) 50%, rgba(255, 255, 255, 0) 51%, rgba(255, 255, 255, 0) 100%); background-image: radial-gradient(ellipse cover at center, rgba(242, 246, 248, 0.1) 0%, rgba(0, 153, 255, 0.1) 50%, rgba(255, 255, 255, 0) 51%, rgba(255, 255, 255, 0) 100%);
}
.shadow { position: absolute; bottom: 0; left: 0; right: 0; width: 280px; height: 100px; background: #520037; border-radius: 50%; z-index: -1; margin: auto; -webkit-filter: blur(20px) opacity(0.3); filter: blur(20px) opacity(0.3);
}
.reflection { width: 300px; height: 300px; border-radius: 9999px; border-bottom: 10px solid #a80077; opacity: 0.1; top: -10px;
}
.reflection1 { width: 230px; height: 280px; border-radius: 50%; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E4MDA3NyIvPjxzdG9wIG9mZnNldD0iNDAlIiBzdG9wLWNvbG9yPSIjZWRlZGVkIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #a80077), color-stop(40%, rgba(237, 237, 237, 0))); background-image: -moz-linear-gradient(top, #a80077 0%, rgba(237, 237, 237, 0) 40%); background-image: -webkit-linear-gradient(top, #a80077 0%, rgba(237, 237, 237, 0) 40%); background-image: linear-gradient(to bottom, #a80077 0%, rgba(237, 237, 237, 0) 40%); opacity: 0.2;
}
.ball { color: #fff; font-family: "Poiret One", normal; font-size: 16px; width: 140px; height: 140px; border-radius: 9999px; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzk4MWI2ZSIvPjxzdG9wIG9mZnNldD0iMzklIiBzdG9wLWNvbG9yPSIjNmIwMDRiIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g'); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #981b6e), color-stop(39%, #6b004b), color-stop(100%, #000000)); background-image: -moz-linear-gradient(top, #981b6e 0%, #6b004b 39%, #000000 100%); background-image: -webkit-linear-gradient(top, #981b6e 0%, #6b004b 39%, #000000 100%); background-image: linear-gradient(to bottom, #981b6e 0%, #6b004b 39%, #000000 100%); overflow: hidden; cursor: pointer; border: 5px solid #080808; box-shadow: 0px 0px 10px 5px #000;
}
.ru:before { content: "Перевод не найден";
}
.ru.very_doubtful:before { content: "Весьма сомнительно";
}
.ru.outlook_not_so_good:before { content: "Перспективы не очень хорошие";
}
.ru.my_sources_say_no:before { content: "По моим данным - нет";
}
.ru.my_reply_is_no:before { content: "Мой ответ - нет";
}
.ru.dont_count_on_it:before { content: "Даже не думай";
}
.ru.reply_hazy_try_again:before { content: "Пока не ясно, попробуй снова";
}
.ru.ask_again_later:before { content: "Спроси позже";
}
.ru.better_not_tell_you_now:before { content: "Лучше не рассказывать";
}
.ru.concentrate_and_ask_again:before { content: "Сконцентрируйся и спроси опять";
}
.ru.cannot_predict_now:before { content: "Сейчас нельзя предсказать";
}
.ru.it_is_certain:before { content: "Бесспорно";
}
.ru.it_is_decidedly_so:before { content: "Предрешено";
}
.ru.without_a_doubt:before { content: "Никаких сомнений";
}
.ru.yes_definitely:before { content: "Определённо да";
}
.ru.you_may_rely_on_it:before { content: "Можешь быть уверен в этом";
}
.ru.as_i_see_it_yes:before { content: "Мне кажется - да";
}
.ru.most_likely:before { content: "Вероятнее всего";
}
.ru.outlook_good:before { content: "Хорошие перспективы";
}
.ru.signs_point_to_yes:before { content: "Знаки говорят - да";
}
.ru.yes:before { content: "Да";
}
.en:before { content: "Translate missing";
}
.en.very_doubtful:before { content: "Very doubtful";
}
.en.outlook_not_so_good:before { content: "Outlook not so good";
}
.en.my_sources_say_no:before { content: "My sources say no";
}
.en.my_reply_is_no:before { content: "My reply is no";
}
.en.dont_count_on_it:before { content: "Don’t count on it";
}
.en.reply_hazy_try_again:before { content: "Reply hazy, try again";
}
.en.ask_again_later:before { content: "Ask again later";
}
.en.better_not_tell_you_now:before { content: "Better not tell you now";
}
.en.concentrate_and_ask_again:before { content: "Concentrate and ask again";
}
.en.cannot_predict_now:before { content: "Cannot predict now";
}
.en.it_is_certain:before { content: "It is certain";
}
.en.it_is_decidedly_so:before { content: "It is decidedly so";
}
.en.without_a_doubt:before { content: "Without a doubt";
}
.en.yes_definitely:before { content: "Yes - definitely";
}
.en.you_may_rely_on_it:before { content: "You may rely on it";
}
.en.as_i_see_it_yes:before { content: "As I see it, yes";
}
.en.most_likely:before { content: "Most likely";
}
.en.outlook_good:before { content: "Outlook good";
}
.en.signs_point_to_yes:before { content: "Signs point to yes";
}
.en.yes:before { content: "Yes";
}
Magic 8-ball - Script Codes JS Codes
(function() { var Magic8Ball, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; Magic8Ball = (function() { Magic8Ball.prototype.language = 'en'; Magic8Ball.prototype.$ball = $('.magic-8-ball'); Magic8Ball.prototype.available_translations = ['ru', 'en']; Magic8Ball.prototype.answers = ['it_is_certain', 'it_is_decidedly_so', 'without_a_doubt', 'yes_definitely', 'you_may_rely_on_it', 'as_i_see_it_yes', 'most_likely', 'outlook_good', 'signs_point_to_yes', 'yes', 'reply_hazy_try_again', 'ask_again_later', 'better_not_tell_you_now', 'concentrate_and_ask_again', 'cannot_predict_now', 'very_doubtful', 'outlook_not_so_good', 'my_sources_say_no', 'my_reply_is_no', 'dont_count_on_it']; function Magic8Ball() { this.get_browser_language = bind(this.get_browser_language, this); this.get_answers = bind(this.get_answers, this); this.handle_clicks = bind(this.handle_clicks, this); this.language = this.get_browser_language(); this.handle_clicks(); } Magic8Ball.prototype.handle_clicks = function() { return this.$ball.on('mouseleave', this.get_answers); }; Magic8Ball.prototype.get_answers = function() { var $answer; $answer = this.$ball.find('span'); $answer.removeClass(); return $answer.addClass(this.language + " " + (this.answers.sample())); }; Magic8Ball.prototype.get_browser_language = function() { var lang; lang = navigator.language || navigator.userLanguage; if (!this.available_translations.any(lang)) { return 'en'; } return lang; }; return Magic8Ball; })(); $(function() { return new Magic8Ball; });
}).call(this);
Developer | Anton Kalinin |
Username | ssh |
Uploaded | November 28, 2022 |
Rating | 3 |
Size | 8,040 Kb |
Views | 14,168 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Thing | 4,534 Kb |
Battlefield 4 | 2,888 Kb |
Memo | 1,984 Kb |
A Pen by Anton Kalinin | 5,156 Kb |
Thermostat | 5,307 Kb |
Aurora | 2,695 Kb |
Octagon load animation | 4,778 Kb |
Schulte Table | 4,555 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Main page display | BarryKe | 4,562 Kb |
A Pen by boilzzz | Boilzzz | 2,761 Kb |
Animate a paper plane along an SVG path, looking ahead | PotatoDie | 3,734 Kb |
JS Beispiel getElementsByClassName 3 | HSZG-Frontend-Kurs | 1,988 Kb |
Light Switch | Bartuc | 4,933 Kb |
Kut D3 | Jellevrswk | 3,687 Kb |
Mega menu | DimaZubkov | 5,066 Kb |
Brian The CSS Bee | Jonitrythall | 3,922 Kb |
Simple Carousel Pure CSS | Dangvanthanh | 4,080 Kb |
Eunice A | Ejbronze | 2,203 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!