sdv*_*ksv 2 html javascript css jquery
我需要在过渡期间随时暂停 CSS 过渡。我知道有一个计算过渡属性的当前值并直接应用它的解决方案,但是这给了我在 Safari 和 IE11 中“跳跃”的结果。
我的想法是将transition-duration价值增加到一些大的东西,这在我的理论中应该几乎暂停过渡,但似乎并非如此:
https://jsfiddle.net/j8p0msff/
$('#pause').on('click', function() {
$('.ball').css('transition-duration: 5000s');
});
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?谢谢!
过渡
一个解决方案是删除transition类并margin-left在停止时保存样式的当前状态(在示例中)。开始时只需transition再次添加类。
var boxOne = document.getElementsByClassName('box')[0];
var running = false;
var toggleTransition = function() {
if(!running)
{
boxOne.classList.add('horizTranslate');
} else {
var computedStyle = window.getComputedStyle(boxOne),
marginLeft = computedStyle.getPropertyValue('margin-left');
boxOne.style.marginLeft = marginLeft;
boxOne.classList.remove('horizTranslate');
}
running = !running;
}Run Code Online (Sandbox Code Playgroud)
.box {
margin: 30px;
height: 50px;
width: 50px;
background-color: blue;
}
.box.horizTranslate {
-webkit-transition: 3s;
-moz-transition: 3s;
-ms-transition: 3s;
-o-transition: 3s;
transition: 3s;
margin-left: 50% !important;
}Run Code Online (Sandbox Code Playgroud)
<div class='box'></div>
<button class='toggleButton' onclick='toggleTransition()'>Toggle</button>Run Code Online (Sandbox Code Playgroud)
动画
你可以使用: animation-play-state
使用例如 Javascript: document.getElementById('myId').style.animationPlayState = 'paused'
var toggleAnimation = function(){
state = document.getElementById('myId').style.animationPlayState == 'paused' ? 'running' : 'paused';
document.getElementById('myId').style.animationPlayState = state;
}Run Code Online (Sandbox Code Playgroud)
div#myId {
width: 100px;
height: 100px;
background: red;
position: relative;
-webkit-animation: mymove 5s infinite; /* Safari 4.0 - 8.0 */
-webkit-animation-play-state: running; /* Safari 4.0 - 8.0 */
animation: mymove 5s infinite;
animation-play-state: running;
}
/* Safari 4.0 - 8.0 */
@-webkit-keyframes mymove {
from {left: 0px;}
to {left: 200px;}
}
@keyframes mymove {
from {left: 0px;}
to {left: 200px;}
}Run Code Online (Sandbox Code Playgroud)
<div id='myId'></div>
<button onclick="toggleAnimation()">Toggle Animation</button>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7612 次 |
| 最近记录: |