Жоден з цих відповідей не впливає на те, що я розумію, це питання, яке я шукав: «Як обробляти елементи з visibility: hidden?». Ні: visible ні: hidden будуть обробляти це, оскільки вони обидва шукають відображення в документації. Наскільки я можу судити, немає селектора для управління видимістю CSS. Ось як я його дозволив (стандартні селектора jQuery, може бути більш стислий синтаксис):
Ви можете визначити, згенерований елемент чи ні, за допомогою: visible і: hidden селектор.
Якщо ви просто впливаєте на елемент, заснований на його видимості, ви можете просто включити: visible або: hidden в вираженні селектора. наприклад:
Часто, перевіряючи, щось мабуть чи ні, ви негайно підете прямо вперед і зробите щось ще з ним. Ланцюжок jQuery робить це легко.
Тому, якщо у вас є селектор, і ви хочете виконати будь-яку дію на ньому, тільки якщо воно мабуть або приховано, ви можете використовувати filter ( ": visible") або filter ( ": hidden") а потім прив'язати його до дії , яке ви хочете брати.
Тому замість затвердження if. наприклад:
Або більш ефективний, але навіть більш потворний:
Ви можете зробити все це в одному рядку:
Селектор: visible відповідно до документації jQuery.
- У них немає значення display в CSS.
- Вони являють собою елементи форми з type = "hidden".
- Їх ширина і висота явно встановлені в 0.
- Елемент предка прихований, тому пункт не відображається на сторінці.
Елементи з visibility: hidden або opacity: 0 вважаються видимими, оскільки вони все ще споживають простір в макеті.
Це корисно в деяких випадках і марно для інших, тому що, якщо ви хочете перевірити, чи є елемент видимим (display! = None), ігноруючи видимість батьків, ви виявите, що виконання .css ( "display") == 'none' Не тільки швидше, але і правильно поверне перевірку видимості.
Якщо ви хочете перевірити видимість замість відображення, ви повинні використовувати. css ( "visibility") == "hidden".
Оскільки: visible є розширенням jQuery, а не частиною специфікації CSS, запити з використанням: visible не можуть скористатися підвищенням продуктивності, що надаються вбудованим методом DOM querySelectorAll (). Для досягнення оптимальної роботи при використанні: visible для вибору елементів спочатку виберіть елементи, використовуючи чистий селектор CSS, а потім за допомогою .filter ( ": visible").
Це працює для мене, і я використовую show () і hide () щоб зробити мій div прихованим / видимим:
Елемент може бути прихований з display: none. visibility: hidden або opacity: 0. Різниця між цими методами:
- display: none приховує елемент, і він не займає місця;
- visibility: hidden приховує елемент, але як і раніше займає місце в макеті;
opacity: 0 приховує елемент як «видимість: прихований», і він як і раніше займає місце в макеті; Єдина різниця полягає в тому, що непрозорість дозволяє зробити елемент частково прозорим;
Корисні методи перемикання jQuery:
Щоб приховати / показу виклику я викликаю .addClass ( "hide") /. RemoveClass ( "hide"). Для перевірки видимості я використовую .hasClass ( "hide").
Це простий і зрозумілий спосіб перевірити / приховати / показати елементи, якщо ви не плануєте використовувати .toggle () або .animate ().