اصدقائي الكرام ومتابعي مدونه شروحات بالعربي اهلا ومرحبا بكم اعتذر عن عدم التدوين ومشاركه موضوعات جديده هذه الايام نظرا لظروف الانتقال من الدومين المجاني القديم للمدونه www.arabytoutrials.blogsopot.com الي الدومين المدفوع www.arabtoutrial.comوما يتبع ذلك من اعاده الضبط والهيكله لكامل المدونه من جديد.
وكما تلاحظون تم تغير القالب بقالب اخر افضل في التصفح للزائر والمتابع الكريم مع اضافه بعض الاضافات المهمه لسهوله التواصل مع اصدقائنا المتابعين كما قمنا بازاله اي اضافه تعيق الزائر والمتابع الكريم عن التصفح. لذا ارجو من كل متابعي وزوار المدونه الكرام ان يتسع صدرهم لحين الانتهاء من التحسينات في القريب العاجل والعوده مره اخري لكتابه المواضيع والمقالات والنصائح شكرا لكم لتفهمكم الامر...
مطور واجهات أمامية وصانع محتوى لدي شغف بتصميم وتطوير مواقع الويب وتطوير ووردبريس وكتابة المقالات. متابع لأحدث اتجاهات التصميم والتطوير على الويب. لدي خبره سابقا في منتديات الدعم الفني والمدونات ، احترف كتابه المحتوي من عام 2017 لتقديم محتوي راقي ومفيد.
مقالات قد تهمك
function initializeIntersectionObserver(elements,options={threshold:0.1,rootMargin:'0px 0px -50px 0px'}){const observer=new IntersectionObserver((entries)=>{entries.forEach(entry=>{if(entry.isIntersecting){entry.target.style.opacity='1';entry.target.style.transform='translateY(0)'}})},options);elements.forEach(el=>{el.style.opacity='0';el.style.transform='translateY(30px)';el.style.transition='opacity 0.6s ease, transform 0.6s ease';observer.observe(el)})}
function initializeSmoothScrolling(){document.querySelectorAll('a[href^="#"]').forEach(anchor=>{anchor.addEventListener('click',function(e){e.preventDefault();const target=document.querySelector(this.getAttribute('href'));if(target){target.scrollIntoView({behavior:'smooth',block:'start'})}})})}
function initializeLazyLoading(images){const imageObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.isIntersecting){const img=entry.target;img.src=img.dataset.src||img.src;img.classList.remove('lazy');imageObserver.unobserve(img)}})});images.forEach(img=>{img.dataset.src=img.src;img.classList.add('lazy');imageObserver.observe(img)})}
function debounce(func,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);func(...args)};clearTimeout(timeout);timeout=setTimeout(later,wait)}}
document.addEventListener('DOMContentLoaded',()=>{initializeSmoothScrolling();initializeLazyLoading(document.querySelectorAll('img'));initializeHeroSection();initializeFeaturedLessons();initializeBeginnersGuide();initializeRecentProjects();initializeNewsletter();initializeFAQ();initializeLatestArticles()})
function copyCode(btn){const codeBlock=btn.closest('.code-block');const code=codeBlock.querySelector('code').innerText;navigator.clipboard.writeText(code).then(()=>{const originalText=btn.innerText;btn.innerText="تم النسخ! ✅";setTimeout(()=>{btn.innerText=originalText},2000)}).catch(err=>{alert("فشل النسخ!")})}