#1-连结Hover动起来!(CSS 伪元素)

网站必备!连结动态

连结的Hover动态算是网页动态最基本款,
一个好的动态绝对可以帮网页 点击率(CTR) 加分。

(话说当时菜鸟的我根本不知道什麽是hover...
如果可以很贴心地跟非工程师的对方解释一下,你就是贴心百分百啦!)

简单一点换个颜色、调整一下opacity,
但今天想用伪元素来做 3个 Hover的连结动态!

先看一下成果:

提案1.简单大方的线框特效 提案2: 喝酒醉的文字换色 提案3:有点霸气的,文字背景变变变
https://media.giphy.com/media/Zk2meGf1SJHamZw9bq/giphy.gif

下面会先废话一下transition,想看成果的可以下滑到code喔!


再懒也要加 CSS transition 香料

就算是再懒也要加上 CSS transition...
Transition 是两个不同状态间切换时,渐变地过度,让转换不会太突兀。

有渐变 无渐变

上述的程序码都一样,但差一行code: transition: 0.3s。
就会让两者的变换间变得很香很高级。

就好像你很想知道眼前的正妹到底有没有男朋友:

无渐变的?:你现在有男友吗?
有渐变的?:跟我出来你男友会吃醋吧?(油油的说法)
有渐变的?:跟我出来你男友会不会担心?(好像很贴心)

(很烂的比喻?)

transition 详细用法也可看这边的铁人:这里


基础设定:CSS 伪元素 :before & :after

我个人超爱伪元素,就是你不用付出一行html code就可以凭空多出东西来。
接下来要做的动态都有基本设定:

a{
  color: white; //我文字先用白的,背景黑
  text-decoration: none; //先把浏览器预设丑东西弄掉
  position: relative; //让伪元素的absolute有个对应的位置
  transition: 0.5s; //香料加起来!
  
  &:before, &:after {
    content: ''; //伪元素里面的内容先设空的
    position: absolute; //先让伪元素飞起来!之後设定定位就随心所欲
    transition:.3s; //香料加起来!我让他比爹地 a 快一点
  }
}

下面的范例用before/after 我是随性选一个 XD
因为使用position absolute都让他飞起来了。


提案1.简单大方的线框特效

https://media.giphy.com/media/Zk2meGf1SJHamZw9bq/giphy.gif

使用:CSS( transition & 伪元素、transform)
原理:放大缩小

直接上code

.effect-1{
  &:before {
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;//线的粗度
    background: white; //线的颜色
    transform:  scale(0); //先让他隐藏, scale的意思就是让他放大缩小
  }
  &:hover:before {
    transform:  scaleX(1);//hover时候再让它出现
  }
}

transform 的起点预设是中间,就可以很漂亮地从中间展开一条直线!
上面想要再一条线的话就可以运用另一个伪元素:after 去做。


提案2: 喝酒醉的文字换色

使用:CSS( transition & 伪元素、width)
原理:放大缩小(变宽)

伪元素的content是可以直接读取html里面元素自订的内容。所以这次我们的伪元素变成了一样的文字盖在上面长出来而已。

//html 
//用data-content去定义伪元素要呈现什麽内容
<h1><a href="#" class="effect-2" 
data-content="Hover Effect 2">
	Hover Effect 2
</a></h1>

//scss
.effect-2{
  &:after{
    content: attr(data-content);// 读取html元素要显示什麽
    left: 0;
    top: 0;
    width: 0%; //想要让他横的长出来,所以先设0
    height: 100%;//先给高

		//我这次想要华丽~gradient color的文字
    background: -webkit-linear-gradient(0deg, rgba(34,193,195,1) 0%, rgba(253,187,45,1) 100%);
	  -webkit-background-clip: text; //背景要显示在哪里
	  -webkit-text-fill-color: transparent;//中间给他挖空啦才能有背景颜色
	  }

	  &:hover:after{
      width: 100%;//hover时候我就给他横空出世~s
    }
}

提案3:有点霸气的,文字背景变变变

使用:CSS( transition & 伪元素、width)
原理:放大缩小(变宽)

.effect-3{
  &:after{
    top: 0%;
    left: 0;
    width: 0%;
    height:100%;
    background: -webkit-linear-gradient(0deg, rgba(34,193,195,1) 0%, rgba(253,187,45,1) 100%);
    z-index: -1; //把他压下去
    }
 
  &:hover{ 
    color: black;
    transition-delay: 0.1s; //让他晚一点点出来,不然会有瞬间是黑的

      &:after {
      top: 0;
      width: 100%    
    }
  }
}

以上!

以上的范例都整理在:这里
范例是参考codepen上的
里面还有很多上下左右可以变化,概念原理都满像的,

这边一堆特效也不错

想要更多更酷炫的效果,也可以到codepen上去找!

有任何错误或意见请批评指教
/images/emoticon/emoticon37.gif


参赛废话...

第一篇花了我好多时间...平常都乱打code没有深入去了解原理,
在写的过程删掉很多不需要的code
还有在搜集资料时很容易分心,看到好东西又舍不得关掉,开了一堆视窗...
参加铁人也是在训练自己搜集资讯的效率!

写文章又是另一个功夫,为求清楚还要录制GIF
看了很多文章,我觉得最能让我吸收的写法是把解释写在行内,而不是大篇解释完再上code。

打篇有逻辑又不要太无聊的文章不亚於写code的累...
呜呜呜平常都看大家呕心沥血的文章,真是谢谢了!(献上我的膝盖)


<<:  Day 3 隐私三宝存在的意义

>>:  【在厨房想30天的演算法】Day 02 想着想着想到一个 Big O

【Day 22】React 关於 Hook (2)

关於 Hook 的方法与实作 useState useState 是 hook 的函数,它接收的参数...

网路的小技巧-2

//兴趣记录一下~希望退休以後可以回味,各位别嫌弃,感谢各位!! //// //VLAN重要性,实作...

[DAY3]K8S元件初探-Control Plane Components

控制平面元件(Control Plane Components) 来人阿,先上个架构图 图片来源 官...

[Python 爬虫这样学,一定是大拇指拉!] DAY22 - 实战演练:HTML Response - 抓取股票代码清单 (1)

承接上篇,抓日成交资讯时,我们得知道股票代码,那如果我想要有一个可以定时更新的股票代码清单,要去哪里...

Day 07:「金鱼模仿游戏~」- 用 Tailwind 来对齐内容

(今天切换故事主线了喔,别再吐倒了哦) 相信很多在前端打滚、需要用到 CSS 的人,一定或多或少都...