效果

效果来自: 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的更多相关文章

  1. 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果

    解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在 ...

  2. 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)

    之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...

  3. css010 css的transform transition和animation

    css010 css的transform transition和animation 看着没有一个能想起他们是干什么的.. 1.         Transform    Transform(变形) r ...

  4. CSS+JS实现兼容性很好的无限级下拉菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DT ...

  5. css+js+html基础知识总结

    css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...

  6. CSS+JS下拉菜单和纯CSS下拉菜单

    下拉菜单 (思路:先把二级定位到屏幕外,鼠标悬停重新定位回来:另一个就是ul浮动,li也浮动) 下拉菜单的一般思路就是把子导航嵌套在无序列表中,把列表定位到屏幕之外,当鼠标悬停在其父列表项上时,重新定 ...

  7. 下拉的DIV+CSS+JS二级树型菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 用html+css+js实现选项卡切换效果

    文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材 ...

  9. 使用html+css+js实现弹球游戏

    使用html+css+js实现弹球游戏 效果图: 代码如下,复制即可使用: <!doctype html> <head> <style type="text/c ...

  10. 前端 css+js实现返回顶部功能

    描述: 本文主要是讲,通过css+js实现网页中的[返回顶部]功能. 实现代码: HTML: <div> <button onclick="returnTop()" ...

随机推荐

  1. 编程好帮手:通义灵码(TONGYI Lingma),是阿里云出品的一款基于通义大模型的智能编码辅助工具

    通义灵码(TONGYI Lingma),是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写.自然语言生成代码.单元测试生成.代码注释生成.代码解释.研发智能问答.异常报错排查 ...

  2. 转载 | [AcSaveAsType -cad版本代号对应数字 ] & [AutoCAD的DWG文件格式版本代号列表]

    1.  AcSaveAsType -cad版本代号对应数字 doc.SaveAs("D:\AutoCAD\1.dwg", 61) # 将当前文件另存为PyAutoCAD_SaveA ...

  3. mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理

    mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理 MySQL报错 ...

  4. [oeasy]python0068_控制序列_清屏_控制输出位置_2J

    光标位置 回忆上次内容 上次了解了键盘演化的过程 ESC 从 组合键 到 独立按键 ESC 的目的 是进入控制序列 配置控制信息 控制信息 \033[y;xH 设置光标位置 \033[2J 清屏 这到 ...

  5. 记录荒废了三年的四年.net开发的第二次面试(进复试了)

    这次面试的是小公司,深圳计通智能,面试分为初试和复试.使用腾讯视频会议完成.相比与上次面试,这次有所进步,进复试了.当然,这可能也与面试风格有关.这次面试着重与项目经历和技术,因此回答比较顺畅. 这一 ...

  6. 七天.NET 8操作SQLite入门到实战 - 第七天Blazor学生管理页面编写和接口对接(3)

    前言 本章节我们的主要内容是完善Blazor学生管理页面的编写和接口对接. 七天.NET 8 操作 SQLite 入门到实战详细教程 第一天 SQLite 简介 第二天 在 Windows 上配置 S ...

  7. Jmeter函数助手16-StringFromFile

    StringFromFile函数用于获取文本文件的值,一次读取一行,可读取多个文件. 输入文件的全路径:填入文件路径 存储结果的变量名(可选) Start file sequence number ( ...

  8. 【Layui】04 导航 Nav

    文档地址: https://www.layui.com/doc/element/nav.html 演示案例: <ul class="layui-nav" lay-filter ...

  9. 工业机器人的力控(Force Control)

    相关: https://baijiahao.baidu.com/s?id=1785676027803650068 机器人编程人员需要提前知道机器人的摩擦力.阻力.质量.重力,等数值,然后建立基于物理模 ...

  10. Google的jax框架在TPU上的循环控制 —— 向量计算设备的循环结构控制

    相关: https://jax.readthedocs.io/en/latest/pallas/tpu.html 向量计算设备,如:GPU.TPU等,都是通过向量计算来进行加速的,因此在这类设备中进行 ...