JAVASCRIPT: Scrol Touch Device

امروزه در طراحی قالب بحث responsive یا واکنش گرا بسیار داغ میباشد
واکنشگرا چیست:با پیشرفت تکنولوژی و وجود دستگاه هایی مانند تلفن های هوشمند، تبلت ها، تلویزیون های هوشمند و … که میتوانند از اینترنت استفاده کنند نیاز به داشتن وب سایت هایی مطابق با تمامی این دستگاه ها احساس میشد شد اما محدودیتهای زیادی در راه بود که با ظهور تکنیک ها و امکانات کاربردی جدید در نسخه سی اس اس 3 (css3) و به خصوص مدیا کوئری ها (Media Queries) طراحان وب توانستند وب سایت های کاملا واکنش گرا طراحی کنند

رفع مشکل اسکرول کردن در div هایی با استایل overflow:auto;

تشخیص tuch device

function isTouchDevice() {
        try { document.createEvent("TouchEvent"); return true; }
        catch(e) { return false; }
}

حرکت اسکرول به مکان مورد نظر

function touchScroll(id) {

        if (isTouchDevice()) {

                var e   = document.getElementById(id);
                var sPos = 0;

                e.addEventListener("touchstart", function(event) {
                        sPos = this.scrollTop+event.touches[0].pageY;
                }, false);

                e.addEventListener("touchmove", function(event) {
                        this.scrollTop = sPos-event.touches[0].pageY;
                        event.preventDefault();
                }, false);
        }
}

روش استفاده

کافیست تابع را در زمان load صفحه به صورت زیر استفاده کنید

touchScroll('divscroll');

یا میتوانید این کد را در قالب یک فایل js قرار داده و در فحات مورد نظر فراخوانی کنید

(function(){
        function isTouchDevice(){
                try{
                        document.createEvent("TouchEvent");
                        return true;
                }catch(e){
                        return false;
                }
        }

        function touchScroll(id){
                if(isTouchDevice()){ //if touch events exist...
                        var el=document.getElementById(id);
                        var scrollStartPos=0;

                        document.getElementById(id).addEventListener("touchstart", function(event) {
                                scrollStartPos=this.scrollTop+event.touches[0].pageY;
                                event.preventDefault();
                        },false);

                        document.getElementById(id).addEventListener("touchmove", function(event) {
                                this.scrollTop=scrollStartPos-event.touches[0].pageY;
                                event.preventDefault();
                        },false);
                }
        }

        //On page load
        touchScroll('divscroll')

})();

مثال:
Tuch Scroll

💬

شاید امروز جواب خیلی از سؤال‌ها را بتوان از AI گرفت، اما تولید مطالب تخصصی، تجربه‌محور و عمیق هنوز به انگیزه نیاز دارد. این نظرات و بازخوردهای شماست که به ما نشان می‌دهد ادامه دادن این مسیر ارزشمند است.

دیدگاه شما چیست؟

نظرات (0)


ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

عضویت در شبکه‌های اجتماعی

جدیدترین مقالات و نکات برنامه‌نویسی را سریع تر از دیگران مطلع شوید.