教你用HTML+CSS实现百叶窗动画效果

简介: 我们浏览网页的时候总能看见一些炫酷的特效,比如百叶窗效果,本文我们就用HTML+CSS制作一个百叶窗小项目,适合刚学前端的小伙伴,使用代码简单易懂,很容易上手,学习完本文后,相信你也能敲出来属于自己的百叶窗效果,改变图片及相应盒子的大小,有女朋友的可以试着放几张在一起的照片,也是一件非常浪漫的事

前言

我们浏览网页的时候总能看见一些炫酷的特效,比如百叶窗效果,本文我们就用HTML+CSS制作一个百叶窗小项目,适合刚学前端的小伙伴,使用代码简单易懂,很容易上手,学习完本文后,相信你也能敲出来属于自己的百叶窗效果,改变图片及相应盒子的大小,有女朋友的可以试着放几张在一起的照片,也是一件非常浪漫的事,话不多说,开始代码的讲解。

1、百叶窗效果

该项目实现几张图片的动态切换,鼠标到达对应图片位置即可显示完整图片

动态效果

2、原理讲解

使用相同的几个盒子来组织“百叶窗”,每个盒子用来放一张照片,将所有放照片的小盒子放在一个大盒子里,对每个盒子进行操作就可以实现想要的效果了,具体操作请往下看。

设置样式

  • 设置box的宽高 外边距 边框 overflow(溢出隐藏)

overflow:给一个元素中设置overflow:hidden,那么该元素的内容若超出了给定的宽度和高度属性,那么超出的部分将会被隐藏,不占位。(也可以利用overflow:hidden清除浮动

*{
      margin=0;
      padding=0;
    }
  • 利用选择器分别设置每个部分的样式

注意:

  • 因为ul是块级元素,所以为了方便可以把ul设置为弹性布局
  • 因为ul li是自带内外边距的标签,可以更灵活方便的控制网页的标签
  • 利用transition设置百叶窗过渡时间

transitition为css3动画内容,实现百叶窗效果的重要样式,过渡时间设置单位以s/ms为单位。

  • 把img设置为块级元素,设置宽高
  • 设置hover效果(hover为伪类选择器)
  • hover: 鼠标伪类 ,冒号(:)后面的hover 是固定的写法,冒号(:)前面是要添加hover伪类的 目标 (目标尽量不要写成标签选择器),指定的目标: 最好是单一的。
  • 作用: 鼠标移入移出的时候触发指定样式
  • 鼠标移入时: 触发 hover的样式
  • 鼠标移出时: 回到 初始样式。
  • 整个hover中的代码,都不会被加载 使用hover伪类时,将 子代(后代)选择器
  • 写在hover之后会表示: :前面是触发者 hover之后的是 显示者

3、制作百叶窗

  1. 首先在桌面创建一个空文件夹,将文件夹直接拖入VSCode(开发工具)
  2. 进入之后在图示位置右击新建文件夹,命名img,可存放展示的照片,再右击新建一个.html的文件(即网页文件),然后就可在此文件下写代码了

  3. 写html模板,+enter 即可

  4. 先固定结构,在<body> </body> 下写 <ul> </ul><li> </li> 等盒子,src后边是需要插入图片的路径
<body>
    <ul>
      <li><img src="img/p1.jpeg" alt="" /></li>
      <li><img src="img/p2.jpeg" alt="" /></li>
      <li><img src="img/p3.jpeg" alt="" /></li>
      <li><img src="img/p4.jpeg" alt="" /></li>
      <li><img src="img/p5.jpeg" alt="" /></li>
      <li><img src="img/p6.jpeg" alt="" /></li>
    </ul>
</body>
  1. CSS对html结构做装饰,即CSS样式,可设置盒子的大小,背景颜色,该部分在<head><style> </style> 书写

    以上代码中宽度需设置准确,可根据自己图片大小调整相应盒子的大小,最好放入的照片尺寸一致,transition 是对盒子动作的操作,设置变换时间为1s即可
    CSS源码如下:
<style>
      /* CSS 对html结构做装饰 */
      * {
        list-style: none;
        margin: 0;
        padding: 0;
      }
      ul {
        display: flex; /* 弹性布局 */
        width: 960px;
        height: 500px;
        background-color: #096;
        overflow: hidden; /* 溢出隐藏 */
      }
      li {
        width: 160px;
        height: 500px;
        transition: all 1s;
      }
      img {
        height: 500px;
      }
      /* 动作 变大 变小*/
      ul:hover li {
        width: 40px;
      }
      ul li:hover {
        width: 760px;
      }
</style>

4、资源下载

案例效果图片等资源如下,需要的可自取

5、完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>百叶窗</title>
    <style>
      /* CSS 对html结构做装饰 */
      * {
        list-style: none;
        margin: 0;
        padding: 0;
      }
      ul {
        display: flex;
        /* 弹性布局 */
        width: 960px;
        height: 500px;
        background-color: #096;
        overflow: hidden;
        /* 溢出隐藏 */
      }
      li {
        width: 160px;
        height: 500px;
        transition: all 1s;
      }
      img {
        height: 500px;
      }
      /* 动作 变大 变小*/
      ul:hover li {
        width: 40px;
      }
      ul li:hover {
        width: 760px;
      }
    </style>
  </head>
  <body>
    <ul>
      <li><img src="img/p1.jpeg" alt="" /></li>
      <li><img src="img/p2.jpeg" alt="" /></li>
      <li><img src="img/p3.jpeg" alt="" /></li>
      <li><img src="img/p4.jpeg" alt="" /></li>
      <li><img src="img/p5.jpeg" alt="" /></li>
      <li><img src="img/p6.jpeg" alt="" /></li>
    </ul>
  </body>
</html>

总结

通过学习这些有意思的小项目,不仅可以加深知识的理解,也更能提升我们对前端的学习兴趣,感兴趣的小伙伴可订阅博主专栏,学习前端基础知识,制作自己想要的特效吧!

目录
相关文章
|
3天前
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
37 15
|
6天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
25 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
19天前
可爱狗狗的404动画HTML源码
可爱狗狗的404动画HTML源码
94 17
|
27天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
52 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
25天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
63 34
|
25天前
html5+svg太空人404动画模板源码
html5+svg太空人404动画模板源码
42 17
|
24天前
创意滑板动画404错误提示HTML源码
创意滑板动画404错误提示页面HTML源码
17 0
创意滑板动画404错误提示HTML源码
|
28天前
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
32 2
|
28天前
|
移动开发 前端开发 HTML5
Html5 Canvas绘制圆形仪表盘动画源码
Html5 Canvas绘制圆形仪表盘动画特效是一款基于HTML5 Canvas绘制的圆形百分比仪表盘动画特效。
18 1
|
9月前
|
前端开发 内存技术
CSS动画示例(上一篇是CSS过渡…)
CSS动画示例(上一篇是CSS过渡…)