forked from afrizalyogi/random-quotes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
88 lines (76 loc) · 2.08 KB
/
main.js
1
2
3
4
5
6
7
8
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
const projectName = "random-quotes";
let quotesData;
var colors = [
"#16a085",
"#27ae60",
"#2c3e50",
"#f39c12",
"#e74c3c",
"#9b59b6",
"#fb6964",
"#342224",
"#472e32",
"#007aff",
"#73a857"
];
var currentQuote = "",
currentAuthor = "";
function getQuotes() {
return $.ajax( {
headers: {
Accept: "application/json"
},
url:
"https://raw.githubusercontent.com/gustavoberman/frases-titus/main/quotes.json",
success: function(jsonQuotes) {
if ( typeof jsonQuotes === "string" ) {
quotesData = JSON.parse(jsonQuotes);
console.log("quotesData");
console.log(quotesData);
}
}
} );
}
function getRandomQuote() {
return quotesData.quotes[
Math.floor( Math.random() * quotesData.quotes.length )
];
}
function getQuote() {
let randomQuote = getRandomQuote();
currentQuote = randomQuote.quote;
currentAuthor = randomQuote.author;
$("#tweet-quote").attr(
"href",
"https://twitter.com/intent/tweet?hashtags=quotes&related=freecodecamp&text=" +
encodeURIComponent('"' + currentQuote + '" ' + currentAuthor)
);
$(".quote-text").animate( { opacity: 0 }, 500, function() {
$(this).animate( { opacity: 1 }, 500 );
$("#text").text(randomQuote.quote);
} );
$(".quote-author").animate( { opacity: 0 }, 500, function() {
$(this).animate( { opacity: 1 }, 500 );
$("#author").html(randomQuote.author);
} );
var color = Math.floor( Math.random() * colors.length );
$("html body").animate( {
backgroundColor: colors[color],
color: colors[color]
}, 1000 );
$(".button").animate( {
backgroundColor: colors[color]
}, 1000 );
$("#credit").animate( {
color: colors[color]
}, 1000 );
$("#credit a").animate( {
color: colors[color]
}, 1000 );
}
$(document).ready( function() {
getQuotes().then( () => {
getQuote();
} );
$("#new-quote").on("click", getQuote);
} );