京东css3动画全屏海报_CSS3+HTML5+JS 实现一个块的收缩与展开动画效果

最近在做项目时,发现CSS3中关于动画的技术,自己很少运用在项目中,平时一些列表块的收缩和展开动画效果,几乎都是使用 display 的 none 和 block,或者 visibility 的 hidden 和 visible来进行控制。因此,在最近的项目中,就开始深入研究CSS3关于动画的技术,并且运用到了项目中,下面是关于列表块的收缩&展开动画。

简单的一个效果图

实现思路

大体上我们将列表块分割成 标题块 和 内容块

(1)标题块:展示标题和一个带有收缩&展开动画效果的图标

①图标部分,我们可以使用伪类来绘画出箭头,并且使用 transform 的旋转属性 rotate进行图标的方向控制和其动画效果。

②动画控制,通常点击标题部分,列表则收缩&展开,因此点击标题时,要对class进行控制。

(2)内容块:内容块展示内容,且该块承载了主要的动画效果——列表的收缩&展开

①动画效果:该块的动画,我们的思路是整个块的高度收起来,里面的内容也向左边隐藏,因此需要控制高度和动画的隐藏,所以使用 max-height 进行高度控制和 transition(设置动画时间)、transform 的属性 translate来进行内容的隐藏

完整代码如下:

.block_wrap {

width: 500px;

margin: 0 auto;

border: 1px solid #e3e3e3;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是实现全屏导航菜单的步骤: 1. 在 VS Code 中创建一个 HTML 文件,并在 `<head>` 标签中引入 CSS 文件。 2. 在 HTML 文件中添加一个按钮或图标,用于触发导航菜单的显示和隐藏。 3. 在 HTML 文件中添加一个 `<nav>` 元素作为导航菜单的容器,并在其中添加菜单项。 4. 在 CSS 文件中设置导航菜单的样式,包括位置、宽度、高度、背景色等。 5. 使用 CSS 的 `transform` 属性实现导航菜单的动画效果,使其从屏幕外滑入或淡入。 6. 使用 JavaScript 实现按钮或图标的点击事件,通过修改导航菜单的样式实现显示和隐藏。 下面是一个示例代码,你可以参考一下: HTML 文件: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Full Screen Navigation Menu</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <button class="menu-btn">Menu</button> </header> <nav class="menu"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> <main> <h1>Welcome to our website!</h1> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sagittis faucibus nunc, in sagittis arcu vulputate non. Sed vitae massa ut ante auctor bibendum.</p> </main> <script src="script.js"></script> </body> </html> ``` CSS 文件: ``` /* 导航菜单容器 */ .menu { position: fixed; top: 0; left: 100%; width: 100%; height: 100%; background-color: #333; z-index: 999; overflow: hidden; padding: 80px 0; transition: all 0.5s ease-in-out; } /* 菜单项 */ .menu ul { list-style: none; margin: 0; padding: 0; text-align: center; } .menu li { display: inline-block; margin: 0 20px; } .menu li a { display: block; font-size: 24px; font-weight: bold; color: #fff; text-decoration: none; padding: 10px 0; transition: all 0.2s ease-in-out; } .menu li a:hover { color: #f00; } /* 按钮 */ .menu-btn { position: fixed; top: 20px; right: 20px; font-size: 24px; color: #fff; background-color: #333; border: none; outline: none; cursor: pointer; } /* 导航菜单显示状态 */ .menu.active { left: 0; } /* 导航菜单淡入效果 */ .menu.fade-in { opacity: 0; } .menu.active.fade-in { opacity: 1; } ``` JavaScript 文件: ``` const menuBtn = document.querySelector('.menu-btn'); const menu = document.querySelector('.menu'); menuBtn.addEventListener('click', () => { menu.classList.toggle('active'); menu.classList.toggle('fade-in'); }); ``` 以上代码实现一个全屏导航菜单,你可以将其复制到你的项目中并根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值