0
我有一個摺疊/展開功能上一切正常(鉻/火狐/ IE /移動Safari瀏覽器),但沒有在OSX Safari瀏覽器8jQuery的動畫
工作我已經縮小了它的範圍,因爲Safari並沒有在所有其他瀏覽器都能識別我的「maxheight
」變量。如果我將變量更改爲數字,則工作正常。這些expand/collapse
觸發器在具有不同最大高度的內容模塊上工作,所以我需要它作爲變量。
任何人都有使用Safari導致此問題的經驗嗎?
這裏是JS:
jQuery(document).on('click', '.expansion-trigger', function(e) {
var el = jQuery(this).parent().prev('.expansion-holder');
var btn = jQuery(this);
var ex = '.expansion';
var exp = '.expansion-trigger';
var hide = btn.removeClass('show').addClass('hide');
var hd = 'hide';
var sh = 'show';
var ele = jQuery(this).parent().prev().prev();
var maxheight = ele.css('right');
var gpa = btn.parent().parent();
e.preventDefault();
if (btn.hasClass('plus')) {
hide.parent().next(ex).find(exp).removeClass(hd).addClass(sh);
el.animate({
'max-height': 3000
}, 1000);
gpa.find('.blur').slideToggle();
} else if (jQuery('html').hasClass('touch')) {
hide.parent().prev(ex).find(exp).removeClass(hd).addClass(sh);
ele.removeAttr('style');
var marg = ele.offset().top - 60;
jQuery('html, body').animate({
scrollTop: marg
}, 1300);
} else {
hide.parent().prev(ex).find(exp).removeClass(hd).addClass(sh);
ele.animate({
'max-height': maxheight
}, 800);
gpa.find('.blur').delay(400).slideToggle();
}
});
相關的HTML:
<section class="synopsis">
<?php if($synopsis = get_field('show_synopsis')) { ?>
<h2 class="content__heading u-mb0">Synopsis</h2>
<div class="synopsis-holder expansion-holder">
<?php echo $synopsis; ?>
<p class="blur"></p>
</div>
<p class="expansion">
<a href="#" class="plus show expansion-trigger">Read more <i class="fa fa-plus"></i>
</a>
</p>
<p class="expansion">
<a href="#" class="minus hide expansion-trigger">Read less <i class="fa fa-minus"></i>
</a>
</p>
<?php } ?>
</section>
這可能不是最好的解決辦法,但我用我的各種持有人right
屬性重置max-height
值的時候模塊倒塌。例如:
.synopsis-holder {
max-height: 17rem;
overflow: hidden;
right: 17rem;
}
你可以發佈相關的HTML,所以我們可以嘗試看看'ele.css('right')'返回什麼? – colecmc
添加了關聯的標記。讓我知道你是否需要查看開發站點的實例。 – frontendpanda
Safari在每次點擊.expansion-trigger時都會識別變量,但行爲與您注意到的不同。讓我多挖一點,回到你身邊。 – colecmc