من می خوام در سایت یک دکمه scroll top بگذارم و تمام کدهای آن را نوشته ام کار هم میکند
فقط میخوام سرعت بالا رفتن آن را کمتر کنم، خیلی سریع به بالای صفحه میره.
سلام
می توانید از تابع 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);
امیدوارم این پاسخ مشکل را برطرف کرده باشد.
با استفاده از 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');
});
});
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.