CSS & JS Effect – Image hover animation
效果

效果来自: webflow 的一个模板
需求解释
有 3 给元素, 图片, overlay(黑影), link
mouse enter 的时候,
图片要 zoom in.
overlay 要 fade in.
link 要 slide up
mouse leave 的时候, 图片 zoom out 的速度比 zoom in 快.
HTML 结构
<div class="container">
<img src="./images/img1.jpg" />
<div class="overlay"></div>
<div class="text-wrapper">
<a href="#">Click here know more</a>
</div>
</div>
大致思路:
container 负责整体的 width, heigth
图片覆盖整个 container. 等下 scale 的时候, container 要 overflow: hide.
overlay 绝对定位覆盖图片之上. 一开始 opacity, mouse enter 才出现.
text-wrapper 是为了 slide up 效果. link 通过 transform translate 躲在 wrapper 下面. (wrapper overflow hidden).
CSS Style
给 container 一个 size
.container {
width: 613px;
height: 461px;
}
给图片一个 size
img {
width: 100%;
height: 100%;
object-fit: cover;
}
效果

给 overlay 一个颜色, 和定位
.container {
position: relative;
}
.overlay {
background-color: rgba($color: black, $alpha: 0.3);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
效果

给 text-wrapper 定位居中
.text-wrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
a {
color: white;
text-decoration: underline;
}
}
效果

隐藏 overlay 和 link
.overlay {
opacity: 0;
}
.text-wrapper {
overflow: hidden;
a {
display: inline-block;
transform: translateY(100%);
}
}
效果

hover 时图片 zoom in/out
.container {
overflow: hidden;
}
img {
transition: transform 0.5s ease;
}
.container:hover {
img {
transition: transform 1s ease-in-out;
transform: scale(1.2);
}
}
效果

hover overlay 出现
.overlay {
transition: opacity 0.5s ease;
}
.container:hover {
.overlay {
opacity: 1;
}
}
效果...等下一起看吧.
hover slide up link
.text-wrapper {
a {
transition: transform 0.5s ease;
}
}
.container:hover {
.text-wrapper {
a {
transform: translateY(0);
}
}
}
效果

Final CSS Style
.container {
width: 613px;
height: 461px;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 1s ease;
}
position: relative;
.overlay {
width: 100%;
height: 100%;
background-color: rgba($color: black, $alpha: 0.3);
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity 1s ease;
}
.text-wrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
overflow: hidden;
a {
display: inline-block;
color: white;
text-decoration: underline;
transform: translateY(100%);
transition: transform 0.4s ease;
opacity: 0.8;
}
}
&:hover {
img {
transition: transform 1.2s ease-out;
transform: scale(1.2);
}
.overlay {
opacity: 1;
}
.text-wrapper {
a {
transform: translateY(0);
}
}
}
}
CSS & JS Effect – Image hover animation的更多相关文章
- 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果
解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在 ...
- 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)
之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...
- css010 css的transform transition和animation
css010 css的transform transition和animation 看着没有一个能想起他们是干什么的.. 1. Transform Transform(变形) r ...
- CSS+JS实现兼容性很好的无限级下拉菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DT ...
- css+js+html基础知识总结
css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...
- CSS+JS下拉菜单和纯CSS下拉菜单
下拉菜单 (思路:先把二级定位到屏幕外,鼠标悬停重新定位回来:另一个就是ul浮动,li也浮动) 下拉菜单的一般思路就是把子导航嵌套在无序列表中,把列表定位到屏幕之外,当鼠标悬停在其父列表项上时,重新定 ...
- 下拉的DIV+CSS+JS二级树型菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 用html+css+js实现选项卡切换效果
文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材 ...
- 使用html+css+js实现弹球游戏
使用html+css+js实现弹球游戏 效果图: 代码如下,复制即可使用: <!doctype html> <head> <style type="text/c ...
- 前端 css+js实现返回顶部功能
描述: 本文主要是讲,通过css+js实现网页中的[返回顶部]功能. 实现代码: HTML: <div> <button onclick="returnTop()" ...
随机推荐
- 内部网关协议OSPF
开放最短路径优先OSPF,开放表明OSPF不受某一厂商控制,最短路径优先是因为使用了最短路径算法SPF. OSPF最主要的特征是使用链路状态协议,而不是RIP的距离向量路由协议.其余特点: ⑴使用洪泛 ...
- vue项目使用elementUI的el-upload组件实现图片上传和文件上传的公共组件封装
图片上传: <template> <div class="upload-pic"> <el-upload class="upload-dem ...
- el-date-picker 时间日期格式,选择范围限制
背景:ElementUI的 el-date-picker 使用时,有时候想要限制用户选择的时间范围,但是用的是datetimerange类型的选择器,不想单独写两个起始的选择器.我发现网上的方案大部分 ...
- 常用的adb命令(重要)
常用的adb命令(重要)
- 【Maven】概念知识
怎么在Windows安装Maven https://www.cnblogs.com/mindzone/p/12701416.html 学到一个新的指令:查看相对系统变量 echo %XXX_HOME% ...
- 【转载】 使用Python的ctypes查看内存
=================================================================== 原文地址: https://zhuanlan.zhihu.com ...
- 【转载】 PyTorch下训练数据小文件转大文件读写(附有各种存储格式对比)
版权声明:本文为CSDN博主「Liekkas Kono」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接: https://blog.csdn.net/s ...
- python进程绑定CPU的一些Demo
从https://www.cnblogs.com/devilmaycry812839668/p/17066212.html中知道如何对python进程设置CPU绑定,本文对此进行一些延伸,给出一些例子 ...
- baselines算法库baselines/common/input.py模块分析
baselines算法库baselines/common/input.py模块代码: import numpy as np import tensorflow as tf from gym.space ...
- 7月30日CSP-S模拟赛赛后总结
7月30日模拟赛赛后总结 \[7月30日 \ \ 模拟赛 \ \ 赛后总结 \\ 2024年7月30日 \\ by \ \ \ hcy \] 洛谷同步:点我 一.做题情况 第一题比赛 \(100pts ...