اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك ذلك من خلال css باستخدام الأمر التالي

html {
  scroll-behavior: smooth;
}

أو اذا كنت تستخدم jquery فيمكننا ذلك باستخدام animate وميزة هذه الطريقة أننا نستطيع التحكم في سرعة المتصفح أثناء الصعود والنزول 

<script>
$(document).ready(function(){
  $("a").on('click', function(event) {

    if (this.hash !== "") {
      event.preventDefault();

      var hash = this.hash;

      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){

        window.location.hash = hash;
      });
    } 
  });
});
</script>

 

  • 0
نشر

يمكنك القيام بذلك بأكثر من طريقة، 

إحداها استخدام الخاصية scroll-behavior في css و لكن هذه الخاصية ليست مدعومة بالكامل من قبل جميع المتصفحات الآن، لذلك ستحتاج لاستخدام جافاسكريبت، و يمكنك القيام بذلك باستخدام التابع scrollIntoView كما يلي:

const ScrollToAnchor = () => {
  
  // نقوم بتحديد عناصر قائمة التنقل
  const navLinks = document.querySelectorAll(".menu__link");
  
  // للاستماع لحدث النقر على عنصر قائمة التنقل event listener  نقوم بإضافة 
  
  navLinks.forEach((link) => {
    
    link.addEventListener("click", (e) => {
      e.preventDefault();
      
      // نقوم بتحديد العنصر الذي تم النقر عليه
      const linkParentElement = e.target.parentElement;
      
      // نقوم بالانتقال بسلاسة إلى القسم المرتبط بالعنصر الذي تم النقر عليه
      document
        .getElementById(linkParentElement.dataset.link)
        .scrollIntoView({ block: "center", behavior: "smooth" });
    });
  });
};

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...