重复:
是的,它与this略有不同。
我正在使用jQuery 3.1.0这是我的代码:
$(document).ready(function () {
ToggleAsideBar();
});
function ToggleAsideBar(){
$(".ah-sidebar-toggle").click(function(){
let toggleSize = $(".ah-logo").width() == 230 ? "50px" : "230px";
$(".ah-logo").animate(
{ width: toggleSize },200,"linear",function () {alert("Animation Complete!");'}
);
});
}
问题:
在我的情况下,动画开始前的警报显示。我想在动画完成后显示警告。在上面的代码中有什么想法我做错了吗?
直播示例:
答案 0 :(得分:2)
你在jquery的animation
和css的过渡之间发生了碰撞
如果您决定使用animate
,则应从css文件中删除transition
行。
这是一个工作版本(没有css过渡):
$(document).ready(function () {
ToggleAsideBar();
});
function ToggleAsideBar(){
//Get width of browser
$(".ah-logo").click(function(){
let toggleSize = $(".ah-logo").width() == 230 ? "50px" : "230px";
$(".ah-logo").animate(
{ width: toggleSize },200,"swing"
).promise().done(function(){
alert("Animation Complete!");
});
});
}
.ah-logo {
width: 230px;
float: left;
font-weight: 600;
font-size: 16px;
text-align: center;
overflow: hidden;
}
a {
line-height: 50px;
display: block;
}
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<div class="ah-logo">
<a href="#">Admin</a>
</div>