我的代码在 Safari 上不起作用

My code doesn't work on Safari

在 Google Chrome 中查看此 fiddle 效果很好,上下滑动效果有效,但在 Safari 中却不行。我究竟做错了什么?是 jQuery 还是 css?

代码如下:

jQuery:

$(function() {
  $('.dropdown').hide();
  $('.dropdown-toggle').click(function(e) {
    $('.dropdown').slideToggle(400);
    $('.dropdown-toggle').slideDown('active');
    $('.dropdown').toggleClass('is-active');
    return false;
  });
  $(document).click(function() {
    if ($('.dropdown').is(':visible')) {
      $('.dropdown', this).slideUp();
      $('.dropdown').removeClass('is-active');
    }
  });
});

CSS:

body {
  padding: 2em;
}
a {
  text-decoration: none;
  color: #000;
}
nav {
  position: relative;
}
.dropdown-toggle {
  padding: .5em 1em;
  background: #777;
  border-radius: .2em .2em 0 0;
}
.dropdown {
  position: absolute;
  margin-top: .5em;
  background: #777;
  min-width: 12em;
  padding: 0;
  top: 0;
  left: 0;
  -webkit-transform: translateY(-60px);
  -ms-transform: translateY(-60px);
  transform: translateY(-60px);
  transition: transform .3s
}
.dropdown.is-active {
  -webkit-transform: translateY(30px);
  -ms-transform: translateY(30px);
  transform: translateY(30px);
  display: block
}
ul.dropdown li {
  list-style-type: none;
}
ul.dropdown a {
  text-decoration: none;
  padding: .5em 1em;
  display: block;
}

HTML:

<nav><a class="dropdown-toggle" href="#" title="Menu">Menu</a>
  <ul class="dropdown">
    <li><a href="#">Menu Item</a>
    </li>
    <li><a href="#">Menu</a>
    </li>
    <li><a href="#">Settings</a>
    </li>
    <li><a href="#">Search</a>
    </li>
  </ul>
</nav>

谢谢!

我无法添加评论,所以我来回答。

能否尝试使用更高版本的 safari 来测试兼容性。

可能是由于过时的 javascript 引擎?

IMO 你的问题令人困惑。这句话:

the slide down and up effect works, but in Safari it doesn't.

具有误导性。实际上,transform 属性 确实有效 并且它在您的 Safari 版本 (5.1.7) 上具有预期的行为(它 "slides down and up")在 Windows(我刚刚测试过)和 OS X 上的现代版本的 Safari 上。

CSS 属性 transform 自 Safari 3.1 版本开始可用,您可以查看 here .

没有的是transtion效果。对于那个你需要更新的 Safari,阅读 here

希望对您有所帮助。