效果

效果来自: 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. Mysql实现主从复制(一主双从)

    一.环境介绍 LNMP(centos7,mysql5.6) vmware workstation pro配置了3个虚拟机,均安装了LNMP环境: master:  192.168.0.105 slav ...

  2. 深入解读RabbitMQ工作原理

    RabbitMQ简介 在介绍RabbitMQ之前首先要介绍一下MQ,MQ是什么?MQ全称是Message Queue,可以理解为消息队列的意思. RabbitMQ是一个实现了AMQP(Advanced ...

  3. Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯

    巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...

  4. [oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列

    字体样式 回忆上次内容 上次了解了一个新的转义模式 \33 逃逸控制字符 esc esc 让输出 退出标准输出流 进行控制信息的设置 可以清屏 也可以设置光标输出的位置 还能做什么呢? 可以设置字符的 ...

  5. .NET周刊【7月第3期 2024-07-21】

    国内文章 给博客园的寄语 https://www.cnblogs.com/jingc/p/18307859 作者是一名39岁的大龄C#开发程序员,对博客园的艰难处境深感触动,并购买会员支持.回顾他与博 ...

  6. ComfyUI插件:ComfyUI Impact 节点(二)

    前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...

  7. RHCA rh442 009 磁盘算法 RAID相关 磁盘压力测试

    磁盘 一个数据在磁盘A位置,一个数据在磁盘B位置,他们如果隔着很远.这对磁盘来说性能很差 (机械盘,磁头来回移动) 一个数据写进来,他会把数据放到缓存中,经过磁盘调度算法来调度,最后写到硬盘 io读写 ...

  8. 【Layui】03 按钮 Button

    文档位置: https://www.layui.com/doc/element/button.html 01.[按钮主题] <div> <button type="butt ...

  9. 失温急救处理方法——1.快速复温;2.心肺复苏;3.口服或静脉注射生理盐水(40 ~ 42 ℃ ,小剂量250 mL);4.口服或静脉注射抗血栓药物,如布洛芬

    相关: https://haokan.baidu.com/v?pd=wisenatural&vid=14530104659934311010 参考: https://m.bjnews.com. ...

  10. MPI在Deep Learning的主流时代背景下除了传统计算领域外对DL的应用前景如何,MPI与NCCL的区别在哪???

    做分布式计算的基本上10年之前只听说过MPI,14年之前只听过hadoop的MapReduce,17年之前只听过TensorFlow. 那么这三个分布式计算软件或者说框架有什么区别呢???现在都是搞d ...