我没有找到 safari 不当行为的原因,但想出了一个解决手风琴可折叠元素的方法。过渡效果是通过 jQuery slideUp 和 slideDown 实现的。它可能对某人有帮助。
if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
if(navigator.userAgent.indexOf('Mac OS X') != -1 && navigator.userAgent.indexOf('Version/6.0.3') != -1){
$('[data-toggle="collapse"]').attr('data-toggle', "safari-collapse");
var collapsible_elements = $(".collapse").addClass('safari-collapse').removeClass('collapse').not('.in').hide();
$('[data-toggle="safari-collapse"]').on('click', function(e){
e.preventDefault();
var target = $(this).attr('href');
if( $(this).attr('data-parent') ){ // check if data-parent (accordion)
$(target).parent().siblings().find('.safari-collapse').not(":hidden").slideUp();
}
if($(target).is(":visible")){
$(target).slideUp();
}
else{
$(target).slideDown();
}
});
}
}