کاهش سرعت دکمه scroll top

من می خوام در سایت یک دکمه scroll top بگذارم و تمام کدهای  آن را نوشته ام کار هم میکند

فقط میخوام سرعت بالا رفتن آن را کمتر کنم، خیلی سریع به بالای صفحه میره.

برچسب ها:
پرسیده شده در: 5 سال قبل
آمار بازدید: 1655
samanz (20)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو
0

سلام

می توانید از تابع animate از شی $ استفاده کنید.

$("html , body").animate({ scrollTop: "0px" }, 1000);

آرگومان اول تابع یک شی (object) می باشد که مقدار خاصیت scrollTop را بر حسب پیکسل مشخص می کند. آرگومان دوم زمان طی شده برای حرکت اسکرول بار بر حسب میلی ثانیه است. آرگومان تابع $ انتخاب کننده (selector) های html و body می باشند که بستگی به مرورگر می تواند متفاوت باشد. بهتر است از هر دوی انها استفاده شود.

اگر بخواهیم مقدار اسکرول بار عمودی را تا حد خاصی مثلا تا رسیدن به ابتدای یک عنصر خاص بالا ببریم، ابتدا باید میزان ارتفاع عنصر موردنظر را با استفاده از خاصیت top از متد offset بدست اوریم. سپس از متد animate بصورت زیر استفاده کنیم. مقدار elemID در کد زیر همان شناسه (id) عنصر مزبور است.

var top = $('#elemID').offset().top;
$("html , body").animate({ scrollTop: top + "px" }, 1000);

امیدوارم این پاسخ مشکل را برطرف کرده باشد.

ارسال شده در: 5 سال قبل
Amir1984 (70)
فروشنده یا مدرس فروشنده یا مدرس بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو میانگین امتیازات: 5 میانگین امتیازات: 5
0

با استفاده از jquery میتوانید از کد های زیر برای  smooth Scrolling استفاده کنید.

$(document).ready(function() {

// برای ظاهر شدن دکمه

$(window).scroll(function() {
        if ($(this).scrollTop() > 3000) {
            $('.go-top-btn').fadeIn();
        } else {
            $('.go-top-btn').fadeOut();
        }
    });


// در صورت کلیک شدن بر روی دکمه ای که ظاهر کردیم اسکرول صفحه به 1250 منتقل میشه
 
$('.go-top-btn').click(function() {
        $('html').animate({ scrollTop: 1250 }, 'slow');
    });



});

 

ارسال شده در: 4 سال قبل
p4rh4m (20)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو
جهت ارسال پاسخ ابتدا عضو سایت شوید.