css3 移动端旋转动画暂停

本文介绍了一种在iOS设备上实现音乐播放页面中图片旋转动画的方法,并解决了iOS不支持暂停的问题。通过使用CSS3 keyframes及特定的JavaScript逻辑,确保了动画在不同设备上的兼容性和用户体验。

 音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused;

@-webkit-keyframes rotate{
    100% {
           transform: rotate(1turn);
        }
}
.img-wrapper{
    width: 200px;    
    height: 200px;
    margin: 50px auto 0;
    overflow: hidden;
    border-radius: 100px;
}
.animation-start{
    animation: rotate 5s linear infinite;
}
.suspended{
    animation-play-state: paused;
}
.img-wrapper img{
    width: 100%;
    border-radius: 100px;
}
.btn{
    width: 100%;
    height: 30px;
    box-sizing: border-box;
    text-align: center;
    margin-top: 20px;
    line-height: 30px;
    bottom: 100px;
    border: 1px solid #ccc;
}

 html

 

1 <div class="img-wrapper">
2     <img src="http://img001.ddweilai.com/mtrain/2018/03/5ab3630ccbd9e.jpg"/>
3 </div>
4 <div class="btn">按钮</div>

 

js

 

 1 var isIPHONE = navigator.userAgent.toUpperCase().indexOf('IPHONE')!= -1;
 2 var isPlaying = false;
 3 var imgWrapper = $(".img-wrapper")[0];
 4 var img = $('.img-wrapper').find('img')[0];
 5 function pause() {
 6     isPlaying = false;
 7     var iTransform = getComputedStyle(img).transform;
 8     var cTransform = getComputedStyle(imgWrapper).transform;
 9      imgWrapper.style.transform = cTransform === 'none'
10                  ? iTransform
11                  : iTransform.concat(' ', cTransform);
12                   $(img).removeClass('animation-start');
13 }
14 function play() {
15     isPlaying = true;
16     $(img).addClass('animation-start');
17 }
18 if(!isIPHONE){
19     $(imgWrapper).addClass('animation-start').addClass('suspended');
20 }
21 $(".btn").click(function(){
22     if(isIPHONE){
23         isPlaying ? pause() : play();
24     }else{
26          if($(imgWrapper).hasClass('suspended')){
          $(imgWrapper).removeClass('suspended');
29         }else{
30              $(imgWrapper).addClass('suspended');
32         }
33     }
34 });

 

转载于:https://www.cnblogs.com/lvshaonan/p/9009891.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值