效果

效果来自: 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. 内部网关协议OSPF

    开放最短路径优先OSPF,开放表明OSPF不受某一厂商控制,最短路径优先是因为使用了最短路径算法SPF. OSPF最主要的特征是使用链路状态协议,而不是RIP的距离向量路由协议.其余特点: ⑴使用洪泛 ...

  2. vue项目使用elementUI的el-upload组件实现图片上传和文件上传的公共组件封装

    图片上传: <template> <div class="upload-pic"> <el-upload class="upload-dem ...

  3. el-date-picker 时间日期格式,选择范围限制

    背景:ElementUI的 el-date-picker 使用时,有时候想要限制用户选择的时间范围,但是用的是datetimerange类型的选择器,不想单独写两个起始的选择器.我发现网上的方案大部分 ...

  4. 常用的adb命令(重要)

    常用的adb命令(重要)

  5. 【Maven】概念知识

    怎么在Windows安装Maven https://www.cnblogs.com/mindzone/p/12701416.html 学到一个新的指令:查看相对系统变量 echo %XXX_HOME% ...

  6. 【转载】 使用Python的ctypes查看内存

    =================================================================== 原文地址: https://zhuanlan.zhihu.com ...

  7. 【转载】 PyTorch下训练数据小文件转大文件读写(附有各种存储格式对比)

      版权声明:本文为CSDN博主「Liekkas Kono」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接: https://blog.csdn.net/s ...

  8. python进程绑定CPU的一些Demo

    从https://www.cnblogs.com/devilmaycry812839668/p/17066212.html中知道如何对python进程设置CPU绑定,本文对此进行一些延伸,给出一些例子 ...

  9. baselines算法库baselines/common/input.py模块分析

    baselines算法库baselines/common/input.py模块代码: import numpy as np import tensorflow as tf from gym.space ...

  10. 7月30日CSP-S模拟赛赛后总结

    7月30日模拟赛赛后总结 \[7月30日 \ \ 模拟赛 \ \ 赛后总结 \\ 2024年7月30日 \\ by \ \ \ hcy \] 洛谷同步:点我 一.做题情况 第一题比赛 \(100pts ...