API Featured

We have now a Google Login system


Hello, people lets learn and write.

Did you find this tutorial helpful? Let us know!

About the Author
martinmattias

Passionate about helping people create amazing websites for free. Sharing knowledge and tutorials to make web development accessible to everyone.

About this Category
API

Learn how to use APIs to power your free websites. Step-by-step guides, examples, and best practices for integrating third-party services.

View Category

Discussion

Join the Discussion

Sign in to leave comments and connect with other website builders.

No comments yet

Be the first to share your thoughts about this tutorial!

Found This Tutorial Helpful?

Explore more free tutorials and guides to build amazing websites without spending a penny.

// Copy to clipboard function function copyToClipboard(text) { if (navigator.clipboard) { navigator.clipboard.writeText(text).then(() => { showAlert('Link copied to clipboard!', 'success', 2000); }); } else { // Fallback for older browsers const textArea = document.createElement('textarea'); textArea.value = text; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); showAlert('Link copied to clipboard!', 'success', 2000); } } // Reading progress indicator document.addEventListener('DOMContentLoaded', function() { const progressBar = document.createElement('div'); progressBar.style.cssText = ` position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: #f59e0b; z-index: 9999; transition: width 0.1s ease; `; document.body.appendChild(progressBar); window.addEventListener('scroll', function() { const article = document.querySelector('.article-content'); if (article) { const articleTop = article.offsetTop; const articleHeight = article.offsetHeight; const scrollPosition = window.scrollY; const windowHeight = window.innerHeight; const start = articleTop - windowHeight; const end = articleTop + articleHeight; if (scrollPosition >= start && scrollPosition <= end) { const progress = ((scrollPosition - start) / (end - start)) * 100; progressBar.style.width = Math.min(100, Math.max(0, progress)) + '%'; } } }); });