-
Notifications
You must be signed in to change notification settings - Fork 1
/
functions.js
93 lines (84 loc) · 3.29 KB
/
functions.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
89
90
91
92
93
function themeToggle (){
let body = document.querySelector('#body');
let icon = document.querySelector('.fa-solid');
if(body.classList.contains('light')){
body.classList.remove('light');
icon.classList.replace('fa-moon', 'fa-sun');
}else{
body.classList.add('light');
icon.classList.replace('fa-sun', 'fa-moon');
}
}
const themeBtn = document.querySelector('#themeBtn');
themeBtn.addEventListener("click", themeToggle);
async function fetchQuote(){
let tweetLink = document.querySelector('#tweetLink');
let disp = document.querySelector('.quote');
let author = document.querySelector('#author');
let link = 'https://api.quotable.io/random';
let response = await fetch(link);
let quoteObj = await response.json();
disp.textContent = quoteObj['content'];
author.textContent = quoteObj['author'];
let splitContent = quoteObj['content'].split(' ');
let text = "";
for(let i = 0; i < splitContent.length; i++){
text += splitContent[i] + "%20";
}
text = 'https://x.com/intent/tweet?text=' + text + 'written%20by%20' + quoteObj['author'] + '&hashtags=CaveQuotes,Wisdom&url=https://bit.ly/cave-quotes';
tweetLink.setAttribute('href', text);
}
const quoteBtn = document.querySelector('#quoteBtn');
quoteBtn.addEventListener("click", fetchQuote);
function copyInnerText() {
const textToCopy = document.querySelector('.quote').innerText;
const textarea = document.createElement('textarea');
textarea.value = textToCopy;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
alert('Text copied to clipboard: ' + textToCopy);
}
const copyBtn = document.querySelector('#copyBtn');
copyBtn.addEventListener("click", copyInnerText);
const toggleVis = ()=>{
let floatingMenu = document.querySelector('.floatingMenu');
let bellIcon = document.querySelector(".fa-bell");
if((floatingMenu.style.display === 'none') || (floatingMenu.style.display === '')){
floatingMenu.style.display = 'block'
bellIcon.classList.replace("fa-bell", "fa-x");
}else{
let bellIcon = document.querySelector(".fa-x");
floatingMenu.style.display = 'none'
bellIcon.classList.replace("fa-x", "fa-bell");
}
event.preventDefault();
}
const bellDiv = document.querySelector('.bellDiv');
bellDiv.addEventListener("click", toggleVis);
function takeImg2(imgId){
html2canvas(document.getElementById(imgId), {
onrendered: function(canvas){
return canvas2Image.saveAsPNG(canvas);
}
});
}
document.querySelector('#camera').addEventListener('click', function() {
html2canvas(document.querySelector('.quoteDiv'), {
onrendered: function(canvas) {
// document.body.appendChild(canvas);
return Canvas2Image.saveAsPNG(canvas);
}
});
});
function shuffleStyle(){
const quoteDiv = document.querySelector('.quoteDiv');
let styles = ['circle', 'square', 'cyan', 'regular'];
let index = Math.floor(Math.random() * styles.length);
quoteDiv.classList.remove(...styles);
quoteDiv.classList.add(styles[index]);
// alert(styles[index])
}
const shuffle = document.querySelector('#shuffle');
shuffle.addEventListener("click", shuffleStyle);