آگهی
article

ساخت دکمه رفتن به بالای صفحه (Scroll to Top) با جاوا اسکریپت

javascript-go-to-top

یکی از کاربردهای جاوا اسکریپت (JavaScript) در صفحات وب امکان ساخت دکمه های کنترلی برای ایجاد رابط کاربری (User Interface) بهینه است، طراحان وب جهت زیباسازی و تجهیز قالب ها معمولا از امکانات مبتنی بر قابلیت های سمت کاربر و مرورگر استفاده می کنند که یکی از این قابلیت های پرکاربرد ساخت دکمه رفتن به بالای صفحه یا در اصطلاح اسکرول به بالا (Scroll to Top) در گوشه پائین نمایشگر است که بخصوص در مورد صفحات با ارتفاع خیلی زیاد می تواند ابزاری خوب و کاربردی باشد، خوشبختانه برای ایجاد این قابلیت چند روش مختلف از قبیل لینک ساده، کدهای صرف جاوا اسکریپت و توابع جی کئوری قابل استفاده است که در این آموزش به صورت موردی به آنها خواهیم پرداخت.

رفتن به بالای صفحه با آی دی و لینک ساده


ساده ترین روش ساخت قابلیت رفتن به بالای صفحه استفاده از پارامتر آی دی و تگ a در HTML است، در این روش ابتدا به تگ div مورد نظر (یا هر تگ مشابه دیگری) در بالای صفحه id اختصاص داده و سپس در انتهای صفحه با تگ a و پارامتر href به آی دی مورد نظر ارجاع می دهیم، در این حالت با کلیک کاربر بر روی لینک، مرورگر محدوده نمایش صفحه را به محل آی دی تعیین شده هدایت می کند، نمونه کد زیر گویا است.
<div id="block"></div>
<a href="#block">رفتن به بالای صفحه</a>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | رفتن به بالای صفحه با لینک ساده و آی دی</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    direction: rtl;
}
.block{
    display: block;
    height: 1500px;
    width: 80%;
    color: #FFFFFF;
    background-color: #528CDB;
    border:1px solid #2C40B4;
    clear: both;
    padding: 4px;
    margin-left: auto;
    margin-right: auto;
}
a{
    text-decoration:none;
}
</style>
</head>
<body>
<div id="block" class="block">برای تست کد، به پائین صفحه اسکرول کنید!</div>
<a href="#block">&uarr; رفتن به بالای صفحه</a>
<hr>
از روش آی دی و لینک ساده می توانیم برای موارد مشابه و هدایت کاربر به بخش خاصی از صفحه نیز استفاده کنیم، به طور مثال این روش برای ارجاع به پاراگراف یا یادداشت خاصی در صفحه کاربرد دارد.
</body>
</html>
پیش نمایش
این روش ساده  ترین شکل ارجاع به بخش خاصی از صفحه است که در جای خود می تواند بسیار کاربردی باشد.

رفتن به بالای صفحه با لینک و جاوا اسکریپت


استفاده از تگ a و ایجاد لینک ارجاع به بالای صفحه محدود به تعریف آی دی نمی شود، با استفاده از متد window.scroll در جاوا اسکریپت نیز می توانیم حالت مشابه را در صفحات وب ایجاد کنیم، این روش در حالتی که به هر دلیلی نخواهیم یا نتوانیم از آی دی استفاده کنیم کاربرد دارد، متد window.scroll با دو آرگیومنت جهت تعیین مختصات فراخوانی می شود که عدد اول محور X ها و عدد دوم محور Y ها را مشخص می کند.
<a href="#" onclick="window.scroll(0, 0); return false;">رفتن به بالای صفحه</a>

<a href="JavaScript:void(0);" onclick="window.scroll(0, 0); return false;">رفتن به بالای صفحه</a>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | رفتن به بالای صفحه با لینک ساده و جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    direction: rtl;
}
.block{
    display: block;
    height: 1500px;
    width: 80%;
    color: #FFFFFF;
    background-color: #9A2F99;
    border:1px solid #5D055F;
    clear: both;
    padding: 4px;
    margin-left: auto;
    margin-right: auto;
}
a{
    text-decoration:none;
}
</style>
</head>
<body>
<noscript>جاوا اسکریپت در مرورگر شما غیر فعال است!</noscript>
<div id="block" class="block">برای تست کد، به پائین صفحه اسکرول کنید!</div>
<a href="JavaScript:void(0);" onclick="window.scroll(0, 0); return false;">&uarr; رفتن به بالای صفحه - روش JavaScript:void</a>
<br>
<br>
<a href="#" onclick="window.scroll(0, 0); return false;">&uarr; رفتن به بالای صفحه - روش آی دی خالی</a>
<br>
<br>
<a href="#block" onclick="window.scroll(0, 0); return false;">&uarr; رفتن به بالای صفحه - روش ترکیبی</a>
<hr>
اشکال استفاده از روش جاوا اسکریپت این است که اگر این امکان در مرورگر کاربر غیرفعال باشد لینک عمل نخواهد کرد، برای رفع مشکل می توانیم علاوه بر نمایش پیام غیرفعال بودن جاوا اسکریپت، روش آی دی را با این روش ترکیب کنیم!
</body>
</html>
پیش نمایش
توضیح:
- هر دو کد بالا کارکردی مشابه دارند و تنها تفاوت نمایش عبارتی است که در هنگام کلیک کاربر در نوار وضعیت مرورگر نمایش داده می شود، لذا انتخاب یک حالت اختیاری است.
- در کد اول برای پارامتر href مقدار # را قرار داده ایم  که در واقع ارجاع به آی دی خالی و لینک غیر واقعی است، این نوع لینک توسط ربات های جستجوگر نیز دنبال نمی شود، همین کار در کد دوم با استفاده از جاوا اسکریپت خطی و عبارت JavaScript:void با مقادیر صفر انجام شده است، void به معنی پوچ و بدون مصرف است که این متد معمولا در مواقعی که نخواهیم عملیاتی توسط مفسر صورت گیرد یا حالت پیش فرض نادیده گرفته شود، استفاده می شود.
- متد window.scroll با رویداد onclick (یک بار کلیک کاربر) مقادیر X برابر صفر و Y برابر صفر را به مرورگر می دهد (نقطه صفر از محور X و Y که در واقع همان بالای صفحه است).
- عبارت return false برای غیر فعال کردن حالت پیش فرض رفتار مرورگر در مورد لینک ها است، در حالت معمول مرورگرها از مقادیر href لینک ها پیروی و کاربر را به آدرس تعیین شده هدایت می کنند، اما با قرار دادن عبارت return false در انتهای دستور رفتار پیش فرض مروگرها تغییر کرده و کاربر را به صفحه دیگر منتقل نمی کنند (مگر اینکه در دستورات جاوا اسکریپت دستور دیگری بدین منظور در نظر گرفته شده باشد).

رفتن به بالای صفحه به همراه افکت اسکرول با لینک و جاوا اسکریپت


روش هایی که بررسی شدند ساده و کاربردی هستند اما علاوه بر این حالت ساده و معمول، می توانیم با کمک دستورات جاوا اسکریپت توابعی بنویسیم که جلوه ای زیبا و به اصطلاح افکتی نیز در هنگام اسکرول کاربر به بالای صفحه ایجاد کنند، برای ایجاد این جلوه انیمیشنی از متدهای صرف جاوا اسکریپت (JavaScript Pure) استفاده کرده ایم.
ابتدا توابع جاوا اسکریپتی زیر را ترجیحا بین تگ head صفحه وب کپی می کنیم، این توابع برای انجام محاسبات و ایجاد اسکرول به اصطلاح نرم (Smooth) نوشته شده اند، این کد با تمام مرورگرها سازگار شده است.
<script type="text/javascript">
function currentYPosition(){
    //Firefox, Chrome, Opera, Safari
    if(self.pageYOffset){
        return self.pageYOffset;
    }
    
    //Internet Explorer 6
    if(document.documentElement && document.documentElement.scrollTop){
        return document.documentElement.scrollTop;
    }
    
    //Internet Explorer 6, 7 and 8
    if(document.body.scrollTop){
        return document.body.scrollTop;
    }
    
    return 0;
}

function elmYPosition(id){
    var elm = document.getElementById(id);
    var y = elm.offsetTop;
    var node = elm;
    
    while(node.offsetParent && node.offsetParent != document.body){
        node = node.offsetParent;
        y += node.offsetTop;
    }
    
    return y;
}
function smoothScroll(id) {
    var startY = currentYPosition();
    var stopY = elmYPosition(id);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    
    if(distance < 100){
        scrollTo(0, stopY);
        return;
    }
    
    var speed = Math.round(distance / 100);
    
    if(speed >= 20){
        speed = 20;
    }
    
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    
    if(stopY > startY){
        for(var i = startY; i < stopY; i += step){
            setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
            leapY += step;
            if(leapY > stopY){
                leapY = stopY;
                timer++;
            }
        }
        
        return;
    }
    
    for(var i = startY; i > stopY; i -= step) {
        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
        leapY -= step;
        
        if(leapY < stopY){
            leapY = stopY;
            timer++;
        }
    }
}
</script>
سپس در بالاترین قسمت صفحه خود بعد از تگ body بلاکی با آی دی دلخواه می سازیم، به طور مثال در زیر بلاک div با آی دی فرضی block را ساخته ایم.
<div id="block"></div>
در نهایت در پائین ترین قسمت صفحه وب خود لینک یا دکمه ای می سازیم و تابع smoothScroll را با آن فراخوانی می کنیم.
<a href="#block" onclick="smoothScroll('block'); return false;">رفتن به بالای صفحه</a>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | رفتن به بالای صفحه با لینک ساده و جاوا اسکریپت به همراه افکت اسکرول</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    direction: rtl;
}
.block{
    display: block;
    height: 1500px;
    width: 80%;
    color: #FFFFFF;
    background-color: #51A235;
    border:1px solid #0E6B00;
    clear: both;
    padding: 4px;
    margin-left: auto;
    margin-right: auto;
}
a{
    text-decoration:none;
}
</style>
<script type="text/javascript">
function currentYPosition(){
    //Firefox, Chrome, Opera, Safari
    if(self.pageYOffset){
        return self.pageYOffset;
    }
    
    //Internet Explorer 6
    if(document.documentElement && document.documentElement.scrollTop){
        return document.documentElement.scrollTop;
    }
    
    //Internet Explorer 6, 7 and 8
    if(document.body.scrollTop){
        return document.body.scrollTop;
    }
    
    return 0;
}

function elmYPosition(id){
    var elm = document.getElementById(id);
    var y = elm.offsetTop;
    var node = elm;
    
    while(node.offsetParent && node.offsetParent != document.body){
        node = node.offsetParent;
        y += node.offsetTop;
    }
    
    return y;
}
function smoothScroll(id) {
    var startY = currentYPosition();
    var stopY = elmYPosition(id);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    
    if(distance < 100){
        scrollTo(0, stopY);
        return;
    }
    
    var speed = Math.round(distance / 100);
    
    if(speed >= 20){
        speed = 20;
    }
    
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    
    if(stopY > startY){
        for(var i = startY; i < stopY; i += step){
            setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
            leapY += step;
            
            if(leapY > stopY){
                leapY = stopY;
            }
            
            timer++;
        }
        
        return;
    }
    
    for(var i = startY; i > stopY; i -= step) {
        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
        leapY -= step;
        
        if(leapY < stopY){
            leapY = stopY;
        }
        
        timer++;
    }
}
</script>
</head>
<body>
<noscript>جاوا اسکریپت در مرورگر شما غیر فعال است!</noscript>
<div id="block" class="block">برای تست کد، به پائین صفحه اسکرول کنید!</div>
<a href="#block" onclick="smoothScroll('block'); return false;">&uarr; رفتن به بالای صفحه</a>
<hr>
برای ایجاد حالت فریم به فریم در این کد از تابع setTimeout استفاده شده است، این تابع با ایجاد وقفه های  پی در پی  مشخص شده در آرگیومنت دوم، اسکرول به بالا را انجام می دهد که نتیجه به صورت انیمیشن نرم خواهد بود.
</body>
</html>
پیش نمایش
توضیح:
- کد بالا از سه تابع تشکیل شده که تابع currentYPosition موقعیت کنونی محور Y را محاسبه، تابع elmYPosition موقعیت بلاک مقصد را تعیین و در نهایت smoothScroll حالت اسکرولی نرم از پائین به بالای صفحه را ایجاد می کند.
- سرعت اسکرول در تابع smoothScroll در متغیر speed قابل دستکاری است که بهتر است حالت پیش فرض را تغییر ندهیم.

اسکرول به بالای صفحه با توابع جی کئوری (jQuery)


روش دیگر اسکرول به بالای صفحات وب استفاده از توابع کتابخانه جاوا اسکریپتی جی کئوری (jQuery) است، این کتابخانه مجموعه ای از توابع از پیش تعریف شده با هدف تسهیل در ایجاد قابلیت های مبتنی بر جاوا اسکریپت در صفحات وب است که بر همین اساس در مورد ساخت دکمه رفتن به بالای صفحه نیز کاربرد دارد، برای دریافت جی کئوری می توانیم نسخه کم حجم و فشرده شده این کتابخانه را از لینک زیر یا سایت مرجع آن دانلود و در سورس صفحات مورد نظر درج کنیم.
دانلود کتابخانه جاوا اسکریپتی جی کئوری (jQuery) - نسخه 3.3.1 فشرده شده 
(حجم فایل ZIP شده: 30 کیلوبایت، به روزرسانی فایل دانلود: 1397/4/10)
https://jquery.com/download
جی کئوری قابلیت های متنوعی برای ایجاد جلوه های افکت و سفارشی سازی عناصر صفحات وب دارد، برای استفاده از این کتابخانه ابتدا در قسمت هدر سایت خود (بین تگ head) فایل کتابخانه را ایمپورت می کنیم (در حال حاضر می توانیم از سرویس هایی مانند گوگل نیز استفاده کنیم).
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
یا
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
کد زیر را نیز بعد از آن کپی می کنیم، این کد شامل توابعی است که وظیفه ایجاد اسکرول نرم و به اصطلاح هوشمند سازی دکمه رفتن به بالای صفحه را بر عهده دارد.
<script type="text/javascript">
$(document).ready(function(){
    $("#back-top").hide();
    
    $(function(){
        $(window).scroll(function(){
            if($(this).scrollTop() > 500){
                $('#back-top').fadeIn();
            } else {
                $('#back-top').fadeOut();
            }
        });

        $('#back-top a').click(function(){
            $('body,html').animate({
                scrollTop: 0
            }, 800);
            
            return false;
        });
    });
});
</script>
سپس استایل CSS زیر را در صفحه وب خود ایمپورت کرده یا بین تگ style درج می کنیم، امکان سفارشی سازی تمام موارد در فایل CSS وجود دارد اما بهتر است پس از تسلط کامل بر جزئیات این روش، تغییرات دلخواه را اعمال کنیم.
<style type="text/css">
.block{
    display: block;
    height: 1500px;
    width: 80%;
    color: #FFFFFF;
    background-color: #119F9D;
    border:1px solid #006738;
    clear: both;
    padding: 4px;
    margin-left: auto;
    margin-right: auto;
}
#back-top {
    position: fixed;
    bottom: 50px;
    margin-left: -150px;
}
#back-top a {
    width: 108px;
    display: block;
    text-align: center;
    text-decoration: none;
    color: #bbb;
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover {
    color: #000;
}
#back-top span {
    width: 108px;
    height: 108px;
    display: block;
    margin-bottom: 8px;
    background: #ddd url(up-arrow.png) no-repeat center center;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover span {
    background-color: #777;
}
</style>
حال در بالاترین قسمت صفحه بعد از تگ body بلاکی با آی دی فرضی block می سازیم، به طور مثال:
<div id="block" class="block">برای تست کد، به پائین صفحه اسکرول کنید!</div>
اکنون در پائین ترین قسمت صفحه قبل از تگ body کد زیر را جهت نمایش دکمه قرار می دهیم.
<div style="display: block;" id="back-top">
<a href="#block"><span></span>&uarr; رفتن به بالای صفحه</a>
</div>
می توانیم پیش نمایش کار را در مثال زیر مشاهده کنیم.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | رفتن به بالای صفحه با توابع جی کئوری</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    direction: rtl;
}
a{
    text-decoration:none;
}
.block{
    display: block;
    height: 1500px;
    width: 80%;
    color: #FFFFFF;
    background-color: #119F9D;
    border:1px solid #006738;
    clear: both;
    padding: 4px;
    margin-left: auto;
    margin-right: auto;
}
#back-top {
    position: fixed;
    bottom: 50px;
    margin-left: -150px;
}
#back-top a {
    width: 108px;
    display: block;
    text-align: center;
    text-decoration: none;
    color: #bbb;
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover {
    color: #000;
}
#back-top span {
    width: 108px;
    height: 108px;
    display: block;
    margin-bottom: 8px;
    background: #ddd url(up-arrow.png) no-repeat center center;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover span {
    background-color: #777;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#back-top").hide();
    
    $(function(){
        $(window).scroll(function(){
            if($(this).scrollTop() > 500){
                $('#back-top').fadeIn();
            } else {
                $('#back-top').fadeOut();
            }
        });

        $('#back-top a').click(function(){
            $('body,html').animate({
                scrollTop: 0
            }, 800);
            
            return false;
        });
    });
});
</script>
</head>
<body>
<noscript>جاوا اسکریپت در مرورگر شما غیر فعال است!</noscript>
<div id="block" class="block">برای تست کد، به پائین صفحه اسکرول کنید!</div>
<div style="display: block;" id="back-top">
<a href="#block"><span></span>&uarr; رفتن به بالای صفحه</a>
</div>
<hr>
در این روش در قسمت دستورات جی کئوری با استفاده از متد scrollTop مقدار اسکرول کاربر را محاسبه کرده و اگر از میزان تعیین شده بیشتر بود بلاک رفتن به بالا را با افکت محو و آشکارسازی (Fade) نرم نمایش می دهیم.
</body>
</html>
پیش نمایش
(نکته: در این مثال از فایلی که در سرور سایت گوگل قرار دارد استفاده کرده ایم).
sectionدسته بندی: آموزش کاربردی » JavaScript
related مطالب بیشتر:
» چگونه لوگوی حمایتی برای نمایش در سایت یا وبلاگ بسازیم؟
» ساخت افکت رنگی با جاوا اسکریپت (JavaScript)
» کنترل و تغییر اندازه فونت صفحه با جاوا اسکریپت
» اعتبار سنجی فرم های وب با جاوا اسکریپت
» ساخت منوی آکاردئونی با جاوا اسکریپت و CSS
commentنظرات (۲۷ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: alireza
۱۶:۰۰ ۱۳۹۳/۰۸/۳۰
عالی هست
۰۹:۳۲ ۱۳۹۳/۱۰/۲۸
دمت گرم داداش
کدی جی کوری عالی بود
نویسنده: 2015
۰۴:۱۸ ۱۳۹۴/۰۱/۱۰
سلام و خسته نباشید
ببخشید من یه مشکلی دارم
میخوام در سایتم وقتی رو دسته ها کلیک شد بره یکم صفحه نمایش اسکرول بشه به سمت پایین و یعنی محصولات رو نشون بده و وقتی رو دسته ها کلیک شد اسکرول شه به سمت بالا.
ممنون میشم راهتمایی کنید تا بتونم تحربه کسب کنم
با تشکر
پاسخ: 
می توانید با استفاده از jQuery پس از کلیک بر روی لینک یا دکمه به ID یک بلاک اسکرول کنید، مثال:
http://jsfiddle.net/kevinPHPkevin/8tLdq/1
نویسنده: مصطفی
۱۸:۱۵ ۱۳۹۴/۰۴/۱۷
لایک داری
۲۰:۱۵ ۱۳۹۴/۰۴/۲۰
چگونه اسکرول بار همراه با کادر درست کردی ؟
پاسخ: 
اگر با HTML و CSS آشنا باشید، با بررسی سورس کد سایت، می توانید از روش ما الگوبرداری کنید.
نویسنده: محمد
۱۱:۰۳ ۱۳۹۴/۰۸/۰۱
دستتون درد نکنه خیلی خیلی مفید بود.
اگه میشه یه توضیحی بدین که چطور این دستورات جیکوئری و جاوا اسکریپت رو توسط یک لینک به کد HTML اضافه کنیم چون یکم دچار سردرگمی شدم.
پاسخ: 
لطفا آموزش را به دقت مطالعه کنید، توضیح داده شده! همچنین می توانید سورس کد پیش نمایش ها را نیز مشاهده کنید.
نویسنده: khalogh
۱۷:۱۳ ۱۳۹۴/۱۲/۱۴
خلاصه و مفید
نویسنده: ايراني
۱۹:۲۴ ۱۳۹۵/۱۱/۲۰
سلام
شما بدون هيچ چشم داشتي و به صورت كاملا ساده و كامل مطالب رو بيان مي كنيد و به دل مخاطب ميشينه! اين واقعا عاليه، عالي!
ممنونم. واقعا خسته نباشيد.
۲۳:۰۰ ۱۳۹۸/۱۲/۲۲
با سلام
ببخشید میشه همین دکمه برگشت به بالای صفحه رو به زبان HTML 5 کدنویسی کرد؟
پاسخ: 
در کل روش جداگانه ای برای اسکرول به بالای صفحه در HTML5 وجود ندارد، باید یکی از روش های توضیح داده شده در آموزش را با توجه به نیاز صفحه وب انتخاب یا با کدنویسی پیشرفته سفارشی سازی کنید.
نویسنده: امیر
۲۱:۳۸ ۱۳۹۹/۰۱/۱۲
سلام. خیلی خیلی ممنونم از شما
سایتتون خیلی عالی هستش و ممنونم ازتون دقیقا همونی بود که می خواستم عالی... من سایتتونو توی منوی کرومم گذاشتم.
نویسنده: علیرضا
۰۱:۴۲ ۱۳۹۹/۰۵/۰۹
سلام خیلی ممنون بابت مطالب مفیدتون عاالی بودن ان شالله همیشه موفق باشین.
نویسنده: shayan
۲۳:۵۳ ۱۳۹۹/۰۵/۱۷
با سلام وقت به خیر
من میخوام تو یه زبانه ای که در واقع متن قرار دادم لینک اسکرول بالا در حده پیکسل دلخواه ایجاد کنم. میشه کمکم کنید برای کدش.
با سپاس
پاسخ: 
با کمی آشنایی با جاوا اسکریپت می توانیم همین روش را به میزان پیکسل دلخواه بر روی بلاک مورد نظر اعمال کنیم، به فرض:
https://www.w3schools.com/jsref/met_win_scrollby.asp
در نمونه کدهای این صفحه از آبجکت window استفاده شده که تگ body را هدف قرار می دهد اما بر حسب نیاز به جای window می توانیم با متد document.getElementById بلاک هدف را با آی دی آن انتخاب کنیم:
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById
به این صورت میزان اسکرول به جای کل صفحه به تگ مورد نظرمان اعمال می شود، برای راهنمایی بیشتر لطفا کدها را در یک صفحه درج و با ذکر توضیحات تکمیلی آدرس صفحه را قرار دهید یا فایل را به ایمیل ما (موجود در بخش تماس) ارسال نمائید تا بررسی کنیم.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ کوتاه و مختصر داده خواهد شد!
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.





2 × 8
 refresh
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form عاطفه مرادی
در:
سلام. من تازه یادگیری html رو شروع کردم و برای وبسایتمون برروی کنترل پنل html می نویسم. از طراح وبسایت خواستم که دسترسی جاوا را...
۱۳۹۹/۰۵/۱۹

form Amir Rahimi
در:
سلام و خسته نباشید من یک سوالی داشتم که مربوط به این بحث نیست سوال من اینه که یه کد یا . ....
۱۳۹۹/۰۵/۱۸

form محمد
در:
سلام اگر بخواهیم هدر سایت در گوشی های موبایل مخفی بشه از چه کدی باید استفاده کرد. کد زیر کلا مخفی میکنه در صورتیکه من...
۱۳۹۹/۰۵/۱۸

form shayan
در:
با سلام وقت به خیر من میخوام تو یه زبانه ای که در واقع متن قرار دادم لینک اسکرول بالا در حده پیکسل...
۱۳۹۹/۰۵/۱۷

form mahtab
در:
ببخشید اگه انتی ویروس رو غیرفعال کنیم برای باز کردن وب که باز نمیشه دوباره میتونیم آنتی ویروس رو فعال کنیم ؟؟ ...
۱۳۹۹/۰۵/۱۵

form امیرمحمد خلیلی
در:
ببخشید چجوری میتونم یه عکس از کاربر بگیرم و نمایشش بدم؟
۱۳۹۹/۰۵/۱۵

form elias
در:
خسته نباشید کاری که گفته بودید انجام دادم ولی رفرش می کنم همه لینک ها بر می گرده مثل اول می شه
۱۳۹۹/۰۵/۱۴

form سفی
در:
سلام و خسته نباشید من فایل آموزش html مقدماتی رو دیدم اما وقتی روی index.html کلیک راست کردم این گزینه ++edit..c رو ندیدم چه برنامه...
۱۳۹۹/۰۵/۱۰

form dnmax
در:
ببخشید ما اگه بخواهیم در وبلاگ مان به بقیه کدهای جاوا بدهیم وقتی کد رو پست میکنیم کد نشان داده نمیشود مثلا کد پخش آهنگ...
۱۳۹۹/۰۵/۰۹

form علیرضا
در:
سلام خیلی ممنون بابت مطالب مفیدتون عاالی بودن ان شالله همیشه موفق باشین.
۱۳۹۹/۰۵/۰۹

form محمد معین محب
در:
سلام میشه برای من یک اچ تی ام ال با بسازید . ممنون میشم
۱۳۹۹/۰۵/۰۸

form مهدی
در:
سلام و خسته نباشید یه مشکلی دارم که فکر کنم فقط وبگو میتونه کمک کنه سرور دانلود دارم و از اسکریپت دانلود vip...
۱۳۹۹/۰۵/۰۸

form neda
در:
با سلام من سایتی زدم از نظر ریسپانسیو هم اکی هست. فقط ارتفاعش از مانیتورهای مختلف به یک اندازه نیست. برای div اول ارتفاع...
۱۳۹۹/۰۵/۰۷

form الهام
در:
سلام یه سوال داشتم که هرچی سرچ کردم جوابش پیدا نشد چجوری ادامه مطلب رو با کلیک روی کلمه مثلا بیشتر... ببینیم؟ ...
۱۳۹۹/۰۵/۰۶

form فاطمه
در:
سلام و خسته نباشید من اومدم برای وبم کد نظرات جدید درج کنم و اتفاقی یه بخش بزرگی از کدها رو حذف کردم و...
۱۳۹۹/۰۵/۰۵
form دینا
در:
چطور نظرات خصوصی که واسه وبلاگم مینویسن پاسخ بدم
۱۳۹۹/۰۵/۰۳
form میثم
در:
سلام من برای دریافت چند تا اطلاعات از جداول سایتم مجبور شدم دستور زیر رو اجرا کنم. هر کدام از جداول حدود ۱.۰۰۰.۰۰۰...
۱۳۹۹/۰۵/۰۱
form علی
در:
با سلام و تشکر فراوان اگر یک div خودش درون div دیگری باشد مثل مثال زیر مقدارش رو چطور به دست بیاریم؟ در...
۱۳۹۹/۰۵/۰۱
form mahtab
در:
خیلی میبخشین بفرمایین
۱۳۹۹/۰۴/۳۱
form علی
در:
با سلام و درود فراوان با چه فرمانی میشه content یک متاتگ رو به دست آورد. مثلا یه لینکی رو بدیم و content مورد...
۱۳۹۹/۰۴/۳۰
form فاطمه
در:
سلام چرا وبلاگ ها برام بالا نمیاد فقط بخش مدیریت میاد وقتی میزنی مشاهده وبلاگ نمیاد وبلاگ دوستانم نمیاد حتی وبلاگ های دیگه...
۱۳۹۹/۰۴/۲۸
form امیر
در:
سلام می خواستم بپرسم چگونه می شه در وبلاگ خود هنگامی که بادید کننده وارد وبلاگ می شه آهنگ خودکار پخش بشه . ممنون...
۱۳۹۹/۰۴/۲۶
form mahtab
در:
سلام ببخشید من که اینو نوشتم شما هم جواب دادین : ببخشین چرا وبلاگ من تو لبتاپ دوستم باز نمیشه ؟؟؟ واسه...
۱۳۹۹/۰۴/۲۶
form مهدی
در:
سلام حالتون خوبه؟ ببخشید هی مزاحمتون میشم.. یک سوالی داشتم من عملیات ری رایت رو میخوام تو سی پنل انجام بدم صفحه لوگین رو باز...
۱۳۹۹/۰۴/۲۶
form مهدی
در:
خیلی خیلی ممنونم از وقتی که گذاشتید.. لطف کردید
۱۳۹۹/۰۴/۲۴
form mahtab
در:
ببخشین چرا وبلاگ من تو لبتاپ دوستم باز نمیشه ؟؟؟ واسه ی ویروس هم اسکن کرده اما نوشته چیزی نیس چیکار کنیم ؟؟؟؟ ...
۱۳۹۹/۰۴/۲۴
  در انتظار بررسی: ۰
 پاسخگویی به سوالات 1 تا 48 ساعت زمان می برد.