CSS微动画 - 为什麽别人的按钮点起来比较有感觉?

Q: 为什麽别人的按钮点起来比较有感觉?
A: 因为外国的月亮比较圆?

网页中常常会有很多可以点击的地方(按钮或是超连结),有些网站的按钮让人觉得「只是按钮」,而有些网站的按钮按起来时会让人有「回应」,会有这样的差别是因为按钮有在跟滑鼠「互动」。

普通的按钮

这是一颗常见的、普通的按钮,不论滑鼠对这颗按钮做了什麽它都无动於衷。

<style>
  .btn {
    width: 180px;
    line-height: 40px;
    font-size: 20px;
    color: PapayaWhip;
    text-align: center;
    background-color: Chocolate;
    border: 5px solid SaddleBrown;
    border-radius: 15px;
    cursor: pointer;
  }
</style>
  
<div class="btn">确  认</div>

normal btn

点起来有感觉的按钮

要让鼠标跟元素有「互动」要善用:hover:active伪类,以下述例子来说,当:hover时将元素放大至1.05倍,当点击元素时则让元素还原至原本的大小且有内阴影。针对不同的状态给予不同的样式,这样当滑鼠在跟元素「互动」时,元素会反馈不同的「回应」。谜音:按起来是不是比较不一样?

<style>
  .btn:hover {
    /* :hover 代表滑鼠移到元素上时的状态 */ 
    transform: scale(1.05);
  }

  .btn:active {
    /* :active是滑鼠点击元素的状态 */
    transform: scale(1);
    box-shadow: inset 0 0 10px 1px rgba(0, 0, 0, .2);
  }
</style>

hover btn

点起来更有感觉的按钮(?)

上面的按钮已经可以跟滑鼠「互动」了,只是元素在变化的过程看起来有点生硬,这时候就要用transitiontransition这个属性操控元素的渐变,最快的下法就是对transition直接下秒数就可以了,这样元素在变化的时候就会以0.1秒的速度由原本的状态切换到後来的状态,以范例的:hover来说,就会以0.1秒的速度由1倍放大至1.05倍。

<style>
  .btn {
    transition: .1s;
  }
</style>

transition btn

所以为什麽别人的按钮点起来跟自己做的不一样?

要让网页动起来、制作微动画的第一要点就是要让使用者跟画面「互动」,当使用者对元素进行操作时,画面让使用者有「被回应」的感觉是很重要的!善用伪类,在元素不同的状态给予不同的样式,并让样式变化时是渐进的、不那麽生硬,这麽一来画面看起来就有质感多啦~


如果有写错的地方,欢迎点评! 会及时改进~
如果有更好的写法,欢迎指教! 希望各位不吝赐教~
如果想看更多效果,欢迎敲碗! 提供示意图小编写写看~
如果内容疑似侵权,拜托告知! 内容皆为小编理解後原创~
如果对你有点帮助,拿去用吧!


<<:  [FGL] OPEN WINDOW WITH 画面档

>>:  予焦啦!准备工具链

Chpater3 今天来学习画一棵树(IV)浅谈效能和演算法,以迭代取代递回吧!

昨天发完文後,觉得对於演算法还是心有不甘,便上网搜寻了一下,虽然没直接给到答案,间接的给了我一些大胆...

Day#09 使用者体验

前言 虽说我决定先把前一份专案就这样放着,开始着手新的练习,但提到是否能提升app本身的价值与使用流...

[Day23]ISO 27001 附录 A.11 实体及环境安全

这个章节的重点在於资讯管理系统的实体环境的保护。 不是这种保护 XD 不过,比较常跟受稽方讨论到乖乖...

作用域 Scope、作用域链 Scope Chain

在初学阶段,还蛮常碰到明明定义好的变数却回报 error,可能是因为对 Scope 的观念没有理解。...

Groovy 语言和你 SAY HELLO!!

第十八天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知...