如何使用 jQuery 的 .css() 触发连续的 CSS 转换?
How do I trigger successive CSS transforms with transitions using jQuery's .css()?
这是我要实现的目标的细分。
- 使用 CSS 变换 不使用 转换来转换框的 Y 位置。例如翻译 Y - 200px.
- 使用过渡将框平移回原始位置。例如翻译 Y - 0px.
好像最后一个翻译取消了第一个翻译。我只是不完全确定如何正确链接它。
在下面查看我的尝试:
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( this ).css( 'transform', 'translate(0px, 200px)' );
$( this ).addClass( 'animating' );
$( this ).css( 'transform', 'translate(0px, 0px)' );
} );
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
请在此处找到您的解决方案Click Me
只需更改css:
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box:hover {
width: 200px;
height: 200px;
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
希望对您有所帮助。
这应该对你有帮助。使用 show()
在两个动画之间添加一个小的超时
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( this ).css( 'transform', 'translate(0px, 200px)' ).show().addClass( 'animating' ).css( 'transform', 'translate(0px, 0px)' );
} );
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
您可以在第二个 css 转换中使用 setTimeOut,例如
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( '.box').css( 'transform', 'translate(0px, 200px)' );
setTimeout(function(){
$( '.box' ).addClass( 'animating' );
$( '.box' ).css( 'transform', 'translate(0px, 0px)' );
}, 200);
});
});
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
$('.box').click(function() {
$(this).animate({
bottom: "200px"
}, 100, function() {
$(this).addClass( 'animating' );
$(this).animate({
top:"0px"
},2000);
});
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
position:absolute;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="box">Hello</div>
我已经使用 jquery 动画来执行所需的动画
这是我要实现的目标的细分。
- 使用 CSS 变换 不使用 转换来转换框的 Y 位置。例如翻译 Y - 200px.
- 使用过渡将框平移回原始位置。例如翻译 Y - 0px.
好像最后一个翻译取消了第一个翻译。我只是不完全确定如何正确链接它。
在下面查看我的尝试:
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( this ).css( 'transform', 'translate(0px, 200px)' );
$( this ).addClass( 'animating' );
$( this ).css( 'transform', 'translate(0px, 0px)' );
} );
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
请在此处找到您的解决方案Click Me
只需更改css:
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box:hover {
width: 200px;
height: 200px;
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
希望对您有所帮助。
这应该对你有帮助。使用 show()
在两个动画之间添加一个小的超时
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( this ).css( 'transform', 'translate(0px, 200px)' ).show().addClass( 'animating' ).css( 'transform', 'translate(0px, 0px)' );
} );
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
您可以在第二个 css 转换中使用 setTimeOut,例如
$(document).ready(function() {
$( 'body' ).on( 'click', '.box', function() {
$( '.box').css( 'transform', 'translate(0px, 200px)' );
setTimeout(function(){
$( '.box' ).addClass( 'animating' );
$( '.box' ).css( 'transform', 'translate(0px, 0px)' );
}, 200);
});
});
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">Hello</div>
$('.box').click(function() {
$(this).animate({
bottom: "200px"
}, 100, function() {
$(this).addClass( 'animating' );
$(this).animate({
top:"0px"
},2000);
});
} );
.box {
transform: translate(0px,0px);
width: 50px;
height: 50px;
display: block;
background: #0f0;
position:absolute;
}
.box.animating {
transition: all 2s ease-in-out;
-webkit-transition: all 2s ease-in-out;
-moz-transition: all 2s ease-in-out;
-o-transition: all 2s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="box">Hello</div>
我已经使用 jquery 动画来执行所需的动画