美文网首页
【状态平滑的动画】鼠标移出动画暂停

【状态平滑的动画】鼠标移出动画暂停

作者: 巴斯光年lip | 来源:发表于2017-06-19 17:25 被阅读0次

假设我们有一张非常长宽幅的照片,但只提供一个150 x 150的区域利用动画来展示它。

<div class="one">
</div>

我们给它加上动画属性,并且改变它的background- position属性,当它的值从原来的 0 0一直变化到100% 0时,鼠标悬停在图片上我们就会看到这张图片从左滚动到右的完整过程。

@keyframes one{
  to { background-position: 100% 0;}
}
.one {
  width:150px;
  height:150px;
  background: url("xxx.jpg" );
  background-size: auto 100%;   /*此处把图片的高度设置为可视区域的高度*/
}
.one:hover, .one:focus {
    animation:one 10s linear infinite alternate;
}

不过,当我们把鼠标从图片上移出时,它就会生硬的跳回最左侧,最初的样子。
而我们所期待的是当鼠标移出时,图片就暂停在当下,当鼠标又放上去时,动画继续的效果。此时就会用到 animation-play-state
因此我们需要把动画加在.one这条样式中,让它一开始就处于暂停状态,直到 :hover 时再启动动画。这再也不是添加和取消动画的问题了,而是 暂停和继续一个一直存在的动画。
@keyframes one{
  to { background-position: 100% 0;}
}
.one {
  width:150px;
  height:150px;
  background: url("http://seopic.699pic.com/photo/00000/9982.jpg_wh1200.jpg" );
  background-size: auto 100%;
  animation:one 10s linear infinite alternate;
  animation-play-state: paused;   /*动画处于暂停状态*/
}
.one:hover, .one:focus {
  animation-play-state: running;   /*鼠标悬停时动画便运行*/
}

这时,便能得到我们想要的效果了。

<u>查看demo</u>


参考书籍:Lea Verou《CSS揭秘》

相关文章

  • 【状态平滑的动画】鼠标移出动画暂停

    假设我们有一张非常长宽幅的照片,但只提供一个150 x 150的区域利用动画来展示它。 我们给它加上动画属性,并且...

  • JS+CSS3 实现图片滑块效果

    效果 分析该动画,可拆分成两个步骤: 鼠标移入或者移出时,添加一个动画 class 实现该动画 class,实现移...

  • jQuery学习

    jQuery属性操作 jQuery特殊效果 jQuery动画 jQuery循环 元素的绝对位置 鼠标移入移出 in...

  • animation

    动 画平滑过渡动画必须触发鼠标事件(滑过、点击、访问过后) transition 是用于完成平滑过渡的属性,要过渡...

  • 46、状态平滑的动画

    CSS3动画中的animation-play-state属性可以控制动画的暂停和继续,动画往往需要类似:hover...

  • 无缝滚动

    功能:鼠标移入暂停滚动;鼠标移出恢复滚动;控制向左向右滚动;

  • 前端笔记15

    jQuery特殊效果 jQuery动画 jQuery循环 元素的绝对位置 鼠标的移入和移出 input框事件 jQ...

  • jQuery动画、循环、事件

    jQuery动画 jQuery循环 元素绝对位置 鼠标移入移出 jQuery事件 自定义事件 事件冒泡 弹框-阻止冒泡

  • jquery

    input框事件 jQuery属性操作 特殊效果 动画 循环 元素绝对位置 鼠标移入移出 其他事件 绑定事件bin...

  • 15.CABasicAnimation 单个View展开动画和

    展开动画 收起 动画暂停 动画继续

网友评论

      本文标题:【状态平滑的动画】鼠标移出动画暂停

      本文链接:https://www.haomeiwen.com/subject/agagqxtx.html