效果

效果来自: 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. 0. 什么是C++

    什么是C++ 是C语言的扩展,有如下的两个特性: 关注性能 与底层硬件紧密结合 对象生命周期精确控制 零成本抽象(Zero-overhead Abstraction) 引入大量利于工程实践的特性 三种 ...

  2. VSCode最强插件推荐(持续更新)

    一.通用插件 Codelf 描述:变量命名神器 Bracket Pair Colorizer 描述:成对的彩色括号,让括号拥有独立的颜色,便于区分 Prettier - Code formatter ...

  3. JavaScript实现防抖函数

    什么是防抖?防抖就是避免快速多次点击后执行过多的函数调用,就是本来你点击支付宝支付后不小心在点击一次,导致支付函数被调用了两次,还都执行了,付了两次钱. 防抖函数的思想就是将函数延迟调用,延迟时间内不 ...

  4. 关于Script的猜想和代码设计

    由于现在接触的是蓝图,而之前接触的脚本,这两者有些不一样. 对脚本的设计如果是代码的解析的话, 对蓝图的设计则需要提供一些底层的API. 变量分为:  基础类型 ,复合类型 ,容器类型 NewGlob ...

  5. java面试一日一题:讲下ThreadLocal

    问题:请讲下ThreadLocal 分析:首先要了解ThreadLocal的基本原理:其次要理解ThreadLocal发生内存泄漏的原因:最后ThreadLocal是如何做到线程隔离的 回答要点: 主 ...

  6. HDP 源码集

    HDP 各个组件的源码(含历史各个版本) 分支 组件 标签 最后发版时间 地址 hadoop 2256 2020-12-21 17:44 https://gitee.com/piaolingzxh/h ...

  7. 【Windows】使用Dism++打包系统

    目的: 封装自己装好的操作系统,以便后续系统重装提高效率 纯净原生系统需要自己搭建开发环境,许多系统库也没有添加,费劲 网络下的整合包总是参杂些垃圾广告,不如自己封装一个 思路: 利用VMware虚拟 ...

  8. 控制自行车前进/后退/平衡等动作,有必要使用在控制方面使用人工智能算法吗,还是传统的PID算法就完全可以胜任?

    直接说答案,用不到人工智能算法做控制,现在人工智能算法主要的应用领域为感知学习,比较典型的就是图像识别和自然语言对话系统,而在控制算法上人工智能的解决方案依然不是很成熟,目前世界上唯一一个宣布可以落地 ...

  9. tf.metrics 使用过程中发现的一些问题

    起因是看到了这么一个帖子: http://www.cocoachina.com/cms/wap.php?action=article&id=86347 简短来说就是下面的代码   运行起来结果 ...

  10. WhaleScheduler为银行业全信创环境打造统一调度管理平台解决方案

    项目背景 数字金融是数字经济的重要支撑和驱动力.近年来,我国针对数字金融的发展政策频频出台,<金融科技发展规划 (2022-2025年)>.<"十四五"数字经济发 ...