我的代码在 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。
希望对您有所帮助。
在 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。
希望对您有所帮助。