سؤال

أنا قادرة على العثور على موضع المؤشر.ولكن كنت بحاجة إلى معرفة ما إذا كان الماوس مستقرة.إذا كان الماوس لم نقل أكثر من 1 دقيقة, ثم قمنا إلى تنبيه المستخدم.

كيف ممكن, هل هناك أي أحداث خاصة لهذا ؟ (فقط أي في جافا سكريبت)

هل كانت مفيدة؟

المحلول

وتعيين مهلة عندما يتم نقل الماوس دقيقة واحدة في المستقبل، وإذا تم نقل الماوس، قم بإلغاء تحديد مهلة:

var timeout;
document.onmousemove = function(){
  clearTimeout(timeout);
  timeout = setTimeout(function(){alert("move your mouse");}, 60000);
}

نصائح أخرى

وليس هناك طريقة لتحديد توقيت لبدء تزايد بعد كل حدث حركة الماوس؟

إذا كان يحصل في دقيقة واحدة ثم يطفو على السطح مربع الرسالة، ولكن في كل مرة تتحرك الماوس يحصل على إعادة تعيين جهاز ضبط الوقت.

استخدام الموقت أن يعيد قيمته في الحدث mousemove.إذا الموقت تصل إلى 1 دقيقة --> تفعل شيئا.

مزيد من المعلومات على توقيت هنا http://www.w3schools.com/js/js_timing.asp
والمزيد من المعلومات على صورت أحداث الماوس هنا http://www.quirksmode.org/js/events_mouse.html

نعم، لديك الحدث onmousemove في جافا سكريبت، وذلك لتحقيق ما تحتاجه لديك فقط أن تفعل شيئا من هذا القبيل كود:

startTimer();
element.onmousemove = stopTimer(); //this stops and resets the timer

ويمكنك استخدامه على البطاقة وثيقة الجسم على سبيل المثال.

وUPDATE: حققتMarius مثال أفضل من هذا واحد

ويمكنك استخدام الحدث onmousemove. داخله، clearTimeout ()، وsetTimeout (your_warning، 1 دقيقة).

هل يمكن استخدام هذا البرنامج النصي / قصاصة للكشف عن موقف مؤشر الماوس و"تذكر" عليه. ثم استخدام "setTimeout (...)" الموقت للتحقق من موقف دعنا نقول كل ثانية ونتذكر ذلك الوقت.

إذا مرت أكثر من دقيقة واحدة، والموقف لم يتغير، هل يمكن تنبيه المستخدم.

هنا واحد-و-القيام به وظيفة التي يمكن أن تحقق أي عنصر الحركة:

function mouse (element, delay, callback) {

   // Counter Object
   element.ms = {};

   // Counter Value
   element.ms.x = 0;

   // Counter Function
   element.ms.y = function () {

      // Callback Trigger
      if ((++element.ms.x) == delay) element.ms.callback(element, element.ms);
   };

   // Counter Callback
   element.ms.callback = callback;

   // Function Toggle
   element.ms.toggle = function (state) {

      // Stop Loop
      if ([0, "off"][state]) clearInterval(element.ms.z);

      // Create Loop
      if ([1, "on"][state]) element.ms.z = setInterval(element.ms.y, 1);
   };

   // Function Disable
   element.ms.remove = function () {

      // Delete Counter Object
      element.ms = null; return delete element.ms;
   };

   // Function Trigger
   element.onmousemove = function () {

      // Reset Counter Value
      element.ms.x = -1;
   };

   // Return
   return element.ms;
};

الاستخدام: mouse(element, delay, callback)

أمثلة: جعل مشغل فيديو إخفاء الماوس بعد 5 ثوان عند الخمول و ملء الشاشة

let x = mouse(video, 5000, function (a) {
   if (document.webkitIsFullScreen) video.style.cursor = "none";
});

x.toggle(1); addEventListener("mousemove", function () {
   video.style.cursor = "auto";
});

غرفة الدردشة AFK (45 ثانية) (على افتراض لديك مربع الدردشة و ارسال رسالة الوظيفة):

let x = mouse(chatBox, (45e3), function (a) {
   chatBox.send({ text: chatBox.username + " is AFK.", italic: true });
});

x.toggle(1); x.addEventListener("mousemove", function () {
  chatBox.send({ text: chatBox.username + " is no longer AFK", italic: true });
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top