Я помню, что в какой-то момент у Opera ( Mostlikely it was Safari instead. )
была проблема: если вы использовали .hide()
для элемента, он ненадолго мигал, прежде чем фактически скрыл элемент.
Теперь, если вы не хотите игнорировать тех, у кого по какой-то причине js не включен в браузере, вы не можете использовать CSS, чтобы установить display: none;
в этом элементе, чтобы скрыть его, а затем использовать js, например, для его постепенного появления.
Недавно я заметил, что этого больше не происходит в Opera. Итак, я хотел бы знать, происходит ли это все еще в некоторых браузерах, если я пропустил это ... И предполагая, что это произойдет. Каким способом будет самый безопасный способ сделать это? (Конечно, игнорируя метод css в этом случае.)
js .hide()
js .addClass('hide')
css .hide { display: none; }
Или что-то другое?
Редактировать:
js element.style.display = "none"
js $(element).css({display:"none"})
Edit2: эта проблема могла быть на самом деле в Safari. Я также подумал, что более новые версии jquery могли решить эту проблему. Я думаю, что на веб-сайте jquery было несколько отчетов об ошибках, но я не смог найти эти отчеты об ошибках. Или все еще может быть, что более новая версия браузера исправила это. .. Точно сказать не могу.
Редактировать3:
Итак, я действительно нашел намного больше об этом, когда начал искать эту ошибку в Safari, а не в Opera. Хотя я не могу точно сказать, что этого никогда не было и в опере...
Казалось бы, этой проблемы больше не существует и что использовать .hide()
безопасно, но я узнал, что этот $(element).css({display:"none"})
действительно решил проблему, когда проблема все еще существовала.
element.style.display = "none"
или$(element).css({display:"none"})
тоже варианты. - person Joseph Marikle   schedule 22.08.2011visibility: hidden
во время загрузки, потому что элемент остается в потоке содержимого и больше ничего не перемещается. - person Sparky   schedule 22.08.2011display: none
, вы всегда можете сделать его похожим наvisibility: hidden
, если это так важно. - person Joonas   schedule 22.08.2011visibility:hidden
объект уже находится в потоке контента, и его нужно только открыть, однако сdisplay:none
все содержимое должно перемещаться, чтобы освободить место, когда вы скрываете/открываете объект... безусловно, это способствует мигающий эффект. И в чем преимущество усилий по созданиюdisplay:none
, чтобы он выглядел какvisibility:hidden
, когда вы можете просто использовать тот, который вам нужен? - person Sparky   schedule 22.08.2011.hide()
, действительно загружался на страницу как любой четко видимый элемент, прежде чем он смог фактически скрыть этот элемент. По крайней мере, с моей точки зрения, это была проблема загрузки или обновления. Для меня это не имеет никакого отношения к тому, как скрытие и/или отображение повлияют на элементы вокруг него. Моя точка зрения о том, чтобы заставить элементdisplay: none;
вести себя как элементvisibility: hidden;
, заключалась в том, что если... скажем,.hide()
- лучший способ сделать это, то пусть будет так... поскольку вы не можете контролировать, как скрывает.hide()
. - person Joonas   schedule 22.08.2011