Если у вас есть такая конфигурация:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
Раскомментируйте следующие строки в вашем httpd.conf
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
Это работает для меня
Надеюсь, вы уже работали над этим, но я просто пишу, чтобы сказать, что столкнулся с одной и той же проблемой: WebKit, по крайней мере, на iOS 4.1, не будет анимировать переход, если он был определен в элементе, display: none; », точно так же, как упомянутый выше Николас.
Если ваша проблема в том, чтобы не показывать этот элемент, это, как и в моем случае, то я предлагаю другое решение, чем установить высоту в 0. В вашем теле обратный вызов события onLoad, сохраните элемент в переменной и удалите его из DOM. Затем повторно вставьте его, когда наступит время, чтобы показать его.
Я использовал следующее решение для элементов, где мне нужно переключаться между дисплеем none и block и сохранять эффект перехода:
function slidedown(element) {
...
element.style.display = "block";
var timerId = setTimeout(function(){
element.style.webkitTransitionProperty = "height";
element.style.webkitTransitionTiming = "linear";
element.style.webkitTransitionDuration = "3.5s";
element.style.height = "500px";
}, 0);
...
}
функция setTimeout будет заставьте короткую задержку, чтобы переход произошел после переключения свойства отображения. Надеюсь, что это поможет.
Если вы оставите height:auto;
и используете фиксированные значения max-height
, вы можете имитировать переход:
.details-expanded {
max-height: 300px; /* try to guess a max-height for your content */
}
.details-collapsed {
height: auto;
max-height: 0;
transition: max-height 500ms linear; /* pick a proportional duration */
}
Обратите внимание до длительности перехода и max-height
, когда элемент расширяется. Играйте со значениями, пока не получите желаемое поведение.
Таким образом вы можете получить переход между двумя определенными значениями (в приведенном выше примере от 0 до 300), в то время как свойство height
будет просто «следовать» «max-height
переход и расти до тех пор, пока он не получит размер содержимого.
DEMO 1 - рабочий пример этого решения
DEMO 2 - просто демонстрация того, что происходит в DEMO 1
В настоящее время переходы реализуются только между предопределенными значениями, и я предположил, что это связано с тем, что в некоторых случаях двигатель не может угадать начальное или конечное значение. Что делать, если у вас есть переход на высоту, конечное значение которого составляет 50%, но сам переход влияет на высоту родителя? Вероятно, для каждого кадра потребуется несколько расчетов reflow , вызывающих проблемы с производительностью.
Как и в случае с fabb , спецификация для переходов CSS определяет, что процентные значения должны поддерживаться, поэтому это может быть просто вопрос времени, пока двигатели не решат, в каких случаях они идут для поддержки переходов с использованием динамически оцениваемых точек. Тем не менее, я не уверен, что можно считать правильным поведением для значений auto
.
У меня была та же проблема. Переход «отлично работал», когда «рушился», но появился без перехода (например, «включен») при «расширении», когда раньше был установлен «display: none».
Я случайно пришел к рабочему решению в то время как отладка: просто запрос «offsetHeight», кажется, заставляет внутреннюю повторную визуализацию элемента.
что-то вроде этого:
showElement = function(){
...
oEl.style.display = "block";
var xDump = oEl.offsetHeight;
oEl.className = "show";
}
xDump никогда не используется, но имея его, сделал разницу.
max-height
и оставив height:auto
. Для свернутого состояния я устанавливаю max-height:0; overflow:hidden;
и сворачиваю / расширяю, а затем работает как ожидалось. Тогда нет необходимости использовать display:none
.
– Cory Mawhorter
15 August 2011 в 21:39
Согласно W3C Spec на переходах CSS3 , для перехода на высоту свойства должна быть разрешена длина и percent . Поэтому я думаю, что это всего лишь вопрос времени, пока в браузерах не будет поддерживаться процент.
Вот решение для тех, кто хочет использовать проценты.
Трюк состоит в том, чтобы содержать его внутри div с заданной высотой и шириной. Если вы являетесь плавающим контейнером div, это может быть не идеальным, но если вы абсолютно позиционируете контейнеры, это должно работать очень хорошо и до тех пор, пока элементы не перекрываются друг с другом.
здесь приведен код
.container {
width: 500px;
height: 500px;
background: transparent;
}
.expand-content{
height: 0%;
color: #fff;
background: green;
}
.expand-content:hover {
height: 100%;
background: orange;
transition: all 2s ease;
}
.expand-content p {
font-size: 35px;
text-align: center;
}
<div class="container">
<div class="expand-content">
<p>Expanded Content</p>
</div>
</div>
на JSFiddle: http://jsfiddle.net/jtZ8j/7/
Это изменение от отображения: none для отображения: блок, который останавливает переход. Попробуйте установить свернутый стиль для отображения: block; высота: 0; overflow: hidden;
Примечание: расширенная высота авто также остановит переход. Если на содержащем блоке нет высоты, высота 100% равна высоте авто.