const projectName = "random-quote-machine";
localStorage.setItem('example_project', 'Randowm Quote Machine');
let quotesData;
function inIframe () { try { return window.self !== window.top; } catch (e) { return true; } }
var colors = ['#16a085', '#27ae60', '#2c3e50', '#f39c12', '#e74c3c', '#9b59b6', '#FB6964', '#342224', "#472E32", "#BDBB99", "#77B1A9", "#73A857"];
var currentQuote = '', currentAuthor = '';
function openURL(url){
window.open(url, 'Share', 'width=550, height=400, toolbar=0, scrollbars=1 ,location=0 ,statusbar=0,menubar=0, resizable=0');
}
function getQuotes() {
return $.ajax({
headers: {
Accept: "application/json"
},
url: 'https://gist.githubusercontent.com/camperbot/5a022b72e96c4c9585c32bf6a75f62d9/raw/e3c6895ce42069f0ee7e991229064f167fe8ccdc/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;
if(inIframe())
{
$('#tweet-quote').attr('href', 'https://twitter.com/intent/tweet?hashtags=quotes&related=freecodecamp&text=' + encodeURIComponent('"' + currentQuote + '" ' + currentAuthor));
$('#tumblr-quote').attr('href', 'https://www.tumblr.com/widgets/share/tool?posttype=quote&tags=quotes,freecodecamp&caption='+encodeURIComponent(currentAuthor)+'&content=' + encodeURIComponent(currentQuote)+'&canonicalUrl=https%3A%2F%2Fwww.tumblr.com%2Fbuttons&shareSource=tumblr_share_button');
}
$(".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
);
}
$(document).ready(function() {
getQuotes().then(() => {
getQuote();
});
$('#new-quote').on('click', getQuote);
$('#tweet-quote').on('click', function() {
if(!inIframe()) {
openURL('https://twitter.com/intent/tweet?hashtags=quotes&related=freecodecamp&text=' + encodeURIComponent('"' + currentQuote + '" ' + currentAuthor));
}
});
$('#tumblr-quote').on('click', function() {
if(!inIframe()) {
openURL('https://www.tumblr.com/widgets/share/tool?posttype=quote&tags=quotes,freecodecamp&caption='+encodeURIComponent(currentAuthor)+'&content=' + encodeURIComponent(currentQuote)+'&canonicalUrl=https%3A%2F%2Fwww.tumblr.com%2Fbuttons&shareSource=tumblr_share_button');
}
});
});
why donât you instead explain what you do not understand?
Iâve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.
See this post to find the backtick on your keyboard. The âpreformatted textâ tool in the editor (</>
) will also add backticks around text.
Note: Backticks are not single quotes.
don t understand all these functions. What are they for exactly. What s their purpose and what they do. And this ajax Jquery specialy is confusing.
What is this? Can somebody explain it?
Ok, from the other end, what do you understand about this code?
everything with $ bothers me. Just having hard time looking and understanding it. Those var, cons,let I understand and those functions for random coloro and quote. But everything around that is hard to understand cause it have $.
thatâs jQuery, are you familiar with jQuery?
getQuotes is a function making an Ajax (web request) call:
function getQuotes() { return $.ajax(
The âheadersâ argument tells the recipient (GitHub) what response format you are expecting (JSON):
{ headers: { Accept: âapplication/jsonâ },
the âurlâ argument specifies the destination of the web request (a GitHub Gist):
url: âhttps://gist.githubusercontent.com/camperbot/5a022b72e96c4c9585c32bf6a75f62d9/raw/e3c6895ce42069f0ee7e991229064f167fe8ccdc/quotes.jsonâ,
âsuccessâ is a callback function to be executed if the request is successful:
success: function(jsonQuotes) {
This function first checks if the response is of type âstringâ
if (typeof jsonQuotes === âstringâ) {
if it is, it attempts to parse the string into a Javascript object, then logs it to console (twice).
quotesData = JSON.parse(jsonQuotes); console.log(âquotesDataâ); console.log(quotesData); } } }); }
Not so much. Went through curiculum pretty easy but after finishing it I forget everything.
so this is written already ??
how about this one
function openURL(url){
window.open(url, âShareâ, âwidth=550, height=400, toolbar=0, scrollbars=1 ,location=0 ,statusbar=0,menubar=0, resizable=0â);
}
you will need to know at least one of the frameworks or libraries taught in this certification to complete the projects
you should really try to start from scratch, project this carefully, and research a lot on how your framework or library of choice work so you can complete this
yeah it looks like it s more about libraries then about js xdddddddd