استخدم خاصية مقاومة الاهتزاز لإخفاء DIV عند تحريك الماوس للخارج
نظرًا لأن علامة div نفسها لا تدعم حدث onblur، بالنسبة إلى div الذي ينبثق عند النقر فوق زر، نريد أن نجعله يختفي عندما يفقد div التركيز ولا يمكن تحقيقه باستخدام onblur.
ولكن يمكنك استخدام onmouseout والأحداث لإدراك وظيفة DIV التي تفقد التركيز وتختفي. قد تكون هناك مشكلة في استخدام onmouseout مباشرة لتحقيق الإزالة والاختفاء: إذا كان موضع الزر الخاص بك وموضع div المنبثق غير متطابقين، فسيتم تشغيل حدث onmouseout فورًا عندما يتحرك الماوس، وهو أمر عديم الفائدة.
استخدم مزيجًا من مقاومة الاهتزاز، وonmouseout، وonmouseover لتحقيق حدث تمويه مع تجربة جيدة
/** * يتحرك الماوس فوق حدث div*/ function moveOverEvent(ele,outTimer) { Let overTimer = null; return function(){ ClearTimeout(outTimer); // إذا لم يختفي div، فقم بنقل div إلى الداخل، ثم Clear آخر حدث تمت إزالته ClearTimeout(overTimer); // Anti-shake overTimer = setTimeout(()=>{ ele.style.display = block; },500); يتحرك الماوس للخارج*/ function moveOutEvent(ele,outTimer) { return function(){ ClearTimeout(outTimer); // Anti-shake outTimer = setTimeout(()=>{ // انتظر 500 مللي ثانية بعد الخروج، ثم اختفي عنصر div هذا) .style .display = none },500);
ثم اكتشفت بالصدفة أنه يمكن تنفيذ حدث التمويه عن طريق إضافة سمة tabindex إلى div، لذلك ربما تمت كتابة الكود أعلاه دون جدوى. (ملاحظة: أشعر أن التجربة المذكورة أعلاه ستكون أفضل وستقلل الكثير من اللمسات العرضية)
// بعد تعيين tabindex، سيضيف العنصر خطًا منقطًا بشكل افتراضي ويزيله من خلال ouline=0 (IE يحدد إخفاء التركيز=true) <div tabindex=0مخطط=0إخفاء التركيز=true></div>
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.