[英]CSS height transition not working on iphone after first visit to page
我有一个网站,其中导航和页脚栏的css转换在iphone上无法正常工作。 我正在使用SASS编译成压缩CSS。 我试图消除overflow:hidden;
并使用边距代替高度,但是没有一个起作用。 我从来没有遇到过这个问题,也不知道是什么原因引起的。
该站点的实时版本为http://connectroot.com
这也在此站点上发生: http : //pbwebd.com/testing/ewealth
最新的网站是: http : //pbwebd.com/testing/artists-theme/
当浏览器在模拟iPhone时,菜单和页脚栏工作正常,但在实际设备上却不行。
第一次访问该站点时,一切都很好。 如果您导航到站点上的另一个页面,则菜单或底部栏不会滑动到正确的高度。 无论您转到哪个页面,甚至返回首页,都无法正常工作。 该网站是使用WordPress构建的。
由于导航和页脚栏也会发生相同的问题,因此我仅向您显示导航代码。
SASS:
.nav-wrapper {
height: auto;
position: relative;
overflow: hidden;
@include transition(height);
@media #{$bpNAV2}{
height: 0;
&.open {
height: 225px;
}
}
}
@mixin transition($type){
-webkit-transition: $type 300ms;
-moz-transition: $type 300ms;
-ms-transition: $type 300ms;
-o-transition: $type 300ms;
transition: $type 300ms;
-webkit-transform: translateZ(0);
}
菜单PHP:
<div class="nav-wrapper">
<div class="nav-div">
<nav>
<?php wp_nav_menu(array('theme_location' => 'primary')); ?>
</nav>
</div>
<div class="sub-nav-div">
<nav>
<?php $obj = get_queried_object();
$custom_post_type = $obj->post_type;
if(is_user_logged_in() && has_nav_menu('subdir')){
echo '<div id="subdir-nav">';
wp_nav_menu(array('theme_location' => 'subdir'));
echo '</div>';
} elseif(has_nav_menu('sub')){
echo '<div id="sub-nav">';
wp_nav_menu(array('theme_location' => 'sub'));
echo '</div>';
} ?>
</nav>
</div>
</div>
JS:
$("#toggle").on('click', function(event){
$(".nav-wrapper").toggleClass('open');
});
对于此站点: http : //pbwebd.com/testing/artists-theme/ ,所有页面均有效,但首页仅在首次访问该页面时有效。 我似乎无法弄清楚问题出在哪里。 这是JS的另一个版本:
$('#toggle').on('click touchstart', function(){
$('nav').toggleClass('show');
return false;
});
如果我关闭手机后再打开,菜单将再次起作用。
如果我在javascript中包含touch
事件,似乎可以解决此问题。 这是更新的JS:
$("#toggle").on('click touch', function(event){
$(".nav-wrapper").toggleClass('open');
return false;
});
***这不能解决所有网站的问题,仅适用于某些网站。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.