SASS使用CSS3动画并使动画暂停和停止在最后一帧的简单例子

1 篇文章 0 订阅

今天在手机上试了试这个 css3 动画效果,可以把动画效果停留在最后一帧上,以及鼠标 :hover 暂停动画,比较实用的功能,不用 JS 也能实现这些效果了。

不过测试体验感觉手机上没有 jQuery 的animate 动画流畅,比较卡,还是没用上,这里把测试结果做个记录!

我这里用到 compass

这里写图片描述

@import "compass/_css3";

@include keyframes(PanelNavRightToLeft) {
    from {
        left: 100%;
    }
    to {
        left: 0;
    }
}
@include keyframes(PanelNavLeftToRight) {
    from {
        left: 0;
    }
    to {
        left: 100%;
    }
}

#panel-nav {
    position: fixed;
    top: 0;
    left: 100%;
    right: 0;
    &.show {
        @include animation(PanelNavRightToLeft .5s forwards);
    }
    &.hide {
        @include animation(PanelNavLeftToRight .5s forwards);
    }
}

上面的代码实现的大致效果是一个 fixed 浮动的层从右往左滑动并固定显示在屏幕上,当点击关闭按钮后再从左往右滑动隐藏掉。

中间需要 JS 配置这是必须的,
当点击展示按钮的时候,给 #panel-nav 加上一个 class

$('#panel-nav').addClass('show');

这样动画就开始啦。。。

然后就是重点重点重点重点,如何在动画执行一遍后停在那儿而不是复原,那样就没意义了,我开始在网上找解决办法,发现很多童鞋还是用 js 来控制css动画停止的,

实际上 animation 中的 fill-mode 参数就能搞定,对应的具体 css 参数是:

.style {
    @include animation-fill-mode(forwards);
}

就这样,设置为 forwards 就行了,在最后一帧将会直接停止。
然后我们就可以在关闭按钮上同样操作 class 实现关闭的滑动效果了

$('#panel-nav').removeClass('show').addClass('hide');

另外还有个对桌面鼠标比较有用的动画控制属性,暂停动画:

animation-play-state: paused;

实现鼠标悬浮 :hover 时或者获得焦点 :focus 时暂停动画

#panel-nav {
    &:hover {
        @include animation-play-state(paused);
    }
}

提示:要注意 css 样式设置的顺序哦,避免被覆盖!

@include animation(PanelNavRightToLeft .5s forwards);
// animation-play-state 一定要写在 animation 下面否则会被覆盖无效哦
@include animation-play-state(paused)

大概就这样子啦。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神神的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值