Skip to content

Commit 1fdf74b

Browse files
committed
finish js, looking nice
1 parent 64a770f commit 1fdf74b

File tree

5 files changed

+59
-34
lines changed

5 files changed

+59
-34
lines changed

src/scripts/main.js

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
function getTemplate(isogram) {
4-
var template = _.template("&lt;script&gt;<br/>&nbsp;&nbsp;(function(<%=isogram[0]%>,<%=isogram[1]%>,<%=isogram[2]%>,<%=isogram[3]%>,<%=isogram[4]%>,<%=isogram[5]%>,<%=isogram[6]%>){<%=isogram[0]%>[&#039;GoogleAnalyticsObject&#039;]=<%=isogram[4]%>;<%=isogram[0]%>[<%=isogram[4]%>]=<%=isogram[0]%>[<%=isogram[4]%>]||function(){<br/>&nbsp;&nbsp;(<%=isogram[0]%>[<%=isogram[4]%>].q=<%=isogram[0]%>[<%=isogram[4]%>].q||[]).push(arguments)},<%=isogram[0]%>[r].l=1*new Date();<%=isogram[5]%>=<%=isogram[1]%>.createElement(<%=isogram[2]%>),<br/>&nbsp;&nbsp;<%=isogram[6]%>=<%=isogram[1]%>.getElementsByTagName(<%=isogram[2]%>)[0];<%=isogram[5]%>.async=1;<%=isogram[5]%>.src=<%=isogram[3]%>;<%=isogram[6]%>.parentNode.insertBefore(<%=isogram[5]%>,<%=isogram[6]%>)<br/>&nbsp;&nbsp;})(window,document,&#039;script&#039;,&#039;//www.google-analytics.com/analytics.js&#039;,&#039;ga&#039;);<br/><br/>&nbsp;&nbsp;ga(&#039;create&#039;, &#039;UIDHERE&#039;, &#039;auto&#039;);<br/>&nbsp;&nbsp;ga(&#039;send&#039;, &#039;pageview&#039;);<br/>&lt;/script&gt;");
4+
var template = _.template('&lt;script&gt;<br/>&nbsp;&nbsp;(function(<span class="char-0"><%=isogram[0]%></span>,<span class="char-1"><%=isogram[1]%></span>,<span class="char-2"><%=isogram[2]%></span>,<span class="char-3"><%=isogram[3]%></span>,<span class="char-4"><%=isogram[4]%></span>,<span class="char-5"><%=isogram[5]%></span>,<span class="char-6"><%=isogram[6]%></span>){<span class="char-0"><%=isogram[0]%></span>[&#039;GoogleAnalyticsObject&#039;]=<span class="char-4"><%=isogram[4]%></span>;<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>]=<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>]||function(){<br/>&nbsp;&nbsp;(<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>].q=<span class="char-0"><%=isogram[0]%></span>[<span class="char-4"><%=isogram[4]%></span>].q||[]).push(arguments)},<span class="char-0"><%=isogram[0]%></span>[r].l=1*new Date();<span class="char-5"><%=isogram[5]%></span>=<span class="char-1"><%=isogram[1]%></span>.createElement(<span class="char-2"><%=isogram[2]%></span>),<br/>&nbsp;&nbsp;<span class="char-6"><%=isogram[6]%></span>=<span class="char-1"><%=isogram[1]%></span>.getElementsByTagName(<span class="char-2"><%=isogram[2]%></span>)[0];<span class="char-5"><%=isogram[5]%></span>.async=1;<span class="char-5"><%=isogram[5]%></span>.src=<span class="char-3"><%=isogram[3]%></span>;<span class="char-6"><%=isogram[6]%></span>.parentNode.insertBefore(<span class="char-5"><%=isogram[5]%></span>,<span class="char-6"><%=isogram[6]%></span>)<br/>&nbsp;&nbsp;})(window,document,&#039;script&#039;,&#039;//www.google-analytics.com/analytics.js&#039;,&#039;ga&#039;);<br/><br/>&nbsp;&nbsp;ga(&#039;create&#039;, &#039;UIDHERE&#039;, &#039;auto&#039;);<br/>&nbsp;&nbsp;ga(&#039;send&#039;, &#039;pageview&#039;);<br/>&lt;/script&gt;');
55

66
return template({isogram: isogram});
77
}
@@ -28,39 +28,31 @@ function isIsogram(word){
2828
return is;
2929
}
3030

31-
function isValid(input) {
32-
if (input.val().length === 7 && isIsogram(input.val())) {
33-
return true;
34-
}
35-
else {
36-
return false;
37-
}
38-
}
39-
40-
4131
$(document).on('ready', function() {
4232
var initChars = ['i','s','o','g','r','a','m'];
4333
var $input = $('.isogram-input');
4434
var $output = $('.output-bottom');
35+
var $warning = $('.warning');
4536
$output.html(getTemplate(initChars));
4637

47-
$input.on('input', function() {
38+
$input.on('input', function(e) {
4839
var currChars = $input.val().split('');
49-
var currLength = currChars.length;
40+
var currIndex = currChars.length -1;
5041

51-
if (currLength < 7) {
52-
currChars = currChars.concat(initChars.slice(currLength));
42+
if ($input.val().length > 7) {
43+
$warning.text('Cannot be longer than 7 characters.');
44+
$input.prop('disabled', true);
45+
}
46+
else if (!isIsogram($input.val())) {
47+
$input.attr('maxlength', currIndex + 1);
48+
$warning.text('Cannot have repeat characters, not an isogram.');
49+
}
50+
else {
51+
$input.attr('maxlength', 7);
52+
$warning.text('')
53+
$output.html(getTemplate(currChars));
54+
$('.output-bottom span.char-'+currIndex).addClass('active');
5355
}
5456

55-
$output.html(getTemplate(currChars));
5657
});
57-
5858
});
59-
60-
61-
62-
63-
64-
65-
66-

src/style/_animations.scss

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
@include keyframes(flash) {
2+
0% {
3+
opacity: 1;
4+
}
5+
6+
25% {
7+
opacity: 0;
8+
}
9+
10+
50% {
11+
opacity: 1;
12+
}
13+
14+
75% {
15+
opacity: 0;
16+
}
17+
18+
100% {
19+
opacity: 1;
20+
}
21+
}
22+
23+
@include keyframes(fadeIn) {
24+
from {
25+
color: red;
26+
}
27+
to {
28+
color: black;
29+
}
30+
}

src/style/_home.scss

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
@include clearfix;
99
margin-bottom: 80px;
1010
}
11-
.red {
12-
color: red;
13-
}
11+
1412
.isogrammer {
1513
@include hide-text;
1614
@include size(174px 34px);
@@ -33,13 +31,18 @@
3331
color: white;
3432
padding: 15px 5px;
3533
font-size: 50px;
36-
margin-bottom: 200px;
3734
width: 410px;
3835
@include placeholder {
3936
color: white;
4037
}
4138
}
4239

40+
.warning {
41+
margin: 20px auto 180px auto;
42+
height: 20px;
43+
@include animation(flash 4s ease-in-out infinite);
44+
}
45+
4346
.credits {
4447
font-size: 14px;
4548
}
@@ -70,8 +73,6 @@
7073
letter-spacing: -0.8px;
7174
}
7275

73-
74-
75-
76-
77-
76+
.active {
77+
@include animation(fadeIn 0.75s ease-in-out);
78+
}

src/style/main.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@import "normalize";
22
@import "bourbon/bourbon";
3+
@import "animations";
34

45
$red: #FF2750;
56

src/views/index.jade

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ html
1616
h1.isogrammer isogrammer
1717
h3.tagline Isogram analytics generator
1818
input.isogram-input(placeholder="isogram", maxlength="7", autofocus)
19+
p.warning
1920

2021
p.credits by&nbsp;
2122
a(href="https://twitter.com/jaxgeller") @jaxgeller

0 commit comments

Comments
 (0)