هل يمكنني التأكد مما إذا كانت هناك جهاز لمسي

… في جافاسكريبت؟

ولا أعني الأجهزة المحمولة، بل أي جهاز، مثل الأجهزة التي تعمل باللمس مثل الأجهزة اللوحية، حيث لا يكون التحويم منطقيًا.

أم أنني مجبر على استخدام CSS؟

إعجاب واحد (1)

أحد الأشياء الصعبة التي يجب مراعاتها هو أجهزة الكمبيوتر المحمولة المزودة بشاشات تعمل باللمس. في هذه الحالة، يميل التفاعل الأساسي إلى أن يكون عبر الماوس… على الرغم من أن الجهاز يحتوي تقنيًا على شاشة تعمل باللمس. لقد تسبب ذلك في بعض الصداع لنا مؤخرًا مع ردود الفعل :sweat_smile:

ولكن للإجابة على سؤالك المحدد: أعتقد أن استعلامات وسائط CSS هي الطريقة المناسبة. لدينا hover و pointer و any-hover و any-pointer.

ثم يمكنك تشغيل استعلامات وسائط CSS هذه من JS باستخدام window.matchMedia على هذا النحو:

4 إعجابات

نعم، نقطة جيدة واقتراح لطيف.

كنت أحاول استخدام إعدادات السمة لتحديد متى يجب أن تظهر بعض المقتطفات فوق صورة، والتي تظهر عادةً عند التحويم فقط.

في حالتي، ستكون الخيارات:

  • دائمًا قيد التشغيل
  • فقط على الأجهزة التي تعمل باللمس (لأن التحويم غير متاح حقًا على الأجهزة اللوحية/الهواتف)
  • فقط عند التحويم (الحالة العادية)

قد لا يكون التعرف على الأجهزة التي تعمل باللمس كارثة في هذه الحالة :sweat_smile:

كنت آمل فقط أن يكون هناك سمة موقع مباشرة فاتني، لكنني سأبحث في اقتراحك. يبدو أن إعادة هيكلة مصغرة لـ CSS مع بعض concatClasses محتملة …

إعجاب واحد (1)

خدمة capabilities لديها بعض الخصائص التي قد تساعد. على سبيل المثال:

على الرغم من أنه يجدر ملاحظة: هذا المنطق هو ما سبب لنا صداعًا مؤخرًا. أتخيل أننا سنستبدله بالاستراتيجية المستندة إلى استعلامات الوسائط CSS في المستقبل القريب. (عندما كُتب هذا، لا أعتقد أن استعلامات الوسائط هذه كانت متاحة على نطاق واسع)

6 إعجابات

يا لها من خدمة خفية … لم أرها كثيرًا في المصدر! :male_detective:

إعجاب واحد (1)