.show()
примерно эквивалентно вызову .css ("display", "block"), за исключением того, что свойство display восстанавливается до того, что было изначально.Если элемент имеет отображаемое значение inline, то он скрыт и показан, он снова будет отображаться inline.
http://api.jquery.com/show/
Настройка .css('visibility', 'visible')
покажет толькоэлемент, если он был ранее скрыт с помощью visibility: hidden
.show()
изменяет свойство display
.Основное различие между этими двумя методами заключается в их поведении макета (элементы visibility:hidden
по-прежнему занимают место в макете, элементы display:none
- нет).
Что касается скорости / производительности: в случае сомнений, запустите тест .Вопреки вашему предположению, jQuery видимость значительно быстрее, чем показать / скрыть.В vanilla JS эта разница испаряется, по крайней мере, для простых макетов документов;оба метода имеют примерно одинаковую скорость (и оба на намного быстрее, чем любой из методов jQuery).Мои результаты по связанному тесту:
- jQuery показать / скрыть x 20,913 операций / сек ± 2,49% (75 прогонов выборки)
- jQuery видимость x 121,719 операций / сек ± 1,46% (81 пробная выборка)
- ванильное шоу / скрыть x 453 574 операций / сек ± 2,51% (85 проб выборки)
- видимость ванили x 450 610 операций / сек ± 1,98% (89 проб выборки)
Трудно представить какую-либо правдоподобную ситуацию, в которой эта разница в производительности была бы значительной;разница в компоновке, как правило, была бы реальным решающим фактором здесь ... но если вашему приложению нужно показывать и скрывать десятки тысяч элементов в секунду, вы должны выполнить сравнительный анализ с вашим реальным кодом и выяснить, есть ли конкретные сведения о вашемреализация, которая сделает один или другой предпочтительным.