• برای غیرفعال کردن صفحه لمسی، "ژست" را غیرفعال کنید. برنامه‌های افزودنی اشاره‌ای برای کروم و فایرفاکس

    فوریه 25, 2008 در 07:46 بعد از ظهر برنامه نویسی حرکات ماوس
    • جاوا اسکریپت

    بسیاری از کاربران Opera و FireFox در مورد وجود به اصطلاح Mouse Gestures می دانند (برای FF افزونه ای با همین نام وجود دارد) - حرکات ماوس که مرورگر با انجام اقدامات مختلف به آنها واکنش نشان می دهد (مانند باز کردن یک پنجره جدید، نشانک ها، عقب، جلو، و غیره و غیره)، تنها ایراد این ویژگی این است که من تصمیم گرفتم یک عملکرد کوچک را توسعه دهد و یک کتابخانه مشابه را اضافه کند. سایت آنها ...

    بر این لحظهکتابخانه فقط 8 حرکت ساده را درک می کند:

    • بالا - دکمه ماوس را نگه دارید و مکان نما را 50-200 پیکسل به سمت بالا حرکت دهید (به طور پیش فرض) و رها کنید، افست در امتداد محور X باید حداقل دو برابر کمتر باشد. نسبت به محور y
    • پایین - مکان نما را به پایین حرکت دهید
    • درست
    و مشتقات آنها
    • بالا-چپ - افست در امتداد محورهای X و Y نباید بیش از دو برابر متفاوت باشد
    • بالا سمت راست
    • پایین سمت چپ
    • سمت راست پایین
    برای اتصال کتابخانه، باید کد زیر را به صفحه خود اضافه کنید:

    در مرحله بعد کد زیر را کپی کنید:

    // از jQuery برای اتصال تابع به رویداد استفاده کنید

    // پارامترها را تنظیم کنید
    navigation.minX = 50;
    navigation.minY = 50;
    navigation.maxX = 300;
    navigation.maxY = 300;
    // توابع پاسخ به تماس
    navigation.TopLeft = تابع (X,Y) ( );
    navigation.Top = تابع (X,Y) ( );
    navigation.TopRight = تابع (X,Y) ( );
    navigation.Left = تابع (X,Y) ( );
    navigation.Right = تابع (X,Y) ( );
    navigation.BottomLeft = تابع (X,Y) ( );
    navigation.Bottom = تابع (X,Y) ( );
    navigation.BottomRight = تابع (X,Y) ( );


    این یک آماده‌سازی برای "ژست‌های حرکتی" ما است، دو خط اول برای آویزان کردن دو عملکرد ما در رویدادهای جهانی ماوس و ماوس (با استفاده از کتابخانه jQuery) ضروری است. 4 خط بعدی پارامترهای ژست ها را نشان می دهد، یعنی. محدودیت هایی که در آن کار خواهند کرد. در مرحله بعد، 8 تابع فراخوانی اعلام می شود، به عنوان پارامترهایی که در امتداد محورهای X و Y یک افست مطلق می گیرند.

    برای جلوگیری از مثبت کاذب عملکردهای ما، بهتر است آنها را به کلید فشرده شده "Ctrl" متصل کنید (کد کلید "Ctrl" 17 است، اگر می خواهید آن را تغییر دهید - همه کدهای موجود در صفحه http://unixpapa.com/js/key.html را ببینید):

    $(window).keydown(تابع(رویداد)(
    switch(event.keyCode)(
    مورد 17:
    $(document).mousedown(navigation.mousedown);
    $(document).mouseup(navigation.mouseup);
    زنگ تفريح؛
    }
    });

    switch(event.keyCode)(
    مورد 17:


    زنگ تفريح؛
    }
    });

    و کد مثال من به این صورت است:

    تابع mouseGestures()(
    $(window).keydown(تابع(رویداد)(
    switch(event.keyCode)(
    //…
    // کلیدهای مختلف کارهای متفاوتی انجام می دهند
    // مرورگرهای مختلف کدهای مختلفی را ارائه می دهند
    // برای جزئیات اینجا را ببینید: unixpapa.com/js/key.html
    //…
    مورد 17:
    $(document).mousedown(navigation.mousedown);
    $(document).mouseup(navigation.mouseup);
    زنگ تفريح؛
    }
    });
    $(window).keyup(function(event)(
    switch(event.keyCode)(
    مورد 17:
    $(document).unbind("mousedown");
    $(document).unbind("mouseup");
    زنگ تفريح؛
    }
    });

    Navigation.maxX = 300;
    navigation.maxY = 300;
    navigation.TopLeft = تابع (X,Y) ( select($("div#left div.top"),Math.abs(X-Y)) );
    navigation.Top = تابع (X,Y) ( select($("div#center div.top"),Y) );
    navigation.TopRight = تابع (X,Y) ( select($("div#right div.top"),Math.abs(X-Y)) );
    navigation.Left = تابع (X,Y) ( select($("div#left div.middle"),X) );
    navigation.Right = تابع (X,Y) ( select($("div#right div.middle"),X) );
    navigation.BottomLeft = تابع (X,Y) ( select($("div#left div.bottom"),Math.abs(X-Y)) );
    navigation.Bottom = تابع (X,Y) ( select($("div#center div.bottom"),Y) );
    navigation.BottomRight = تابع (X,Y) ( select($("div#right div.bottom"),Math.abs(X-Y)) );
    }
    تابع انتخاب (el,k) (
    سرعت var = 1500;
    سوئیچ (درست)(
    مورد (k