手风琴模式在网页中偶尔可以见到,下面就来一起实现手风琴。

首先找到 5张图片,在body里放一个背景图片。在body写一个ul>li*5。这里html和css就不具体介绍了直接上图。

实现手风琴主要是js部分。

1.先获取所有li标签,声明下标showIndex。

2遍历li标签使用for循环(var i=0;i<lis.length;i++)

3.给open下标showindex;当触发点击onclick事件,open的类名变为空。点击的this.className=“open”

4将showIndex=lis【i】.index

5.将body背景图替换

实现效果如下:

完整代码发在下面:

body {

height: 100vh;

background-image: url(img/c1.webp);

background-size: cover;

background-position: center;

display: flex;

justify-content: center;

align-items: center;

}

ul {

width: 800px;

height: 400px;

}

li {

width: 80px;

height: 100%;

float: left;

background-size: cover;

background-position: center center;

transition: .3s;

}

.open {

width: 480px;

}

li p {

width: 80px;

height: 100%;

background-color: rgba(255, 255, 255, .5);

color: white;

font-size: 60px;

}

</style>

</head>

<body>

<ul>

<li style="background-image: url(img/c1.webp)" class="open">

<p>寿司全家福</p>

</li>

<li style="background-image: url(img/c2.webp)">

<p>海鲜全家福</p>

</li>

<li style="background-image: url(img/c3.webp)">

<p>炒花蛤</p>

</li>

<li style="background-image: url(img/c4.webp)">

<p>辣白菜</p>

</li>

<li style="background-image: url(img/c5.webp)">

<p>披萨</p>

</li>

</ul>

</body>

<script>

var lis = document.querySelectorAll('li');

var showIndex = 0; //当前open的下标

for (var i = 0; i < lis.length; i++) {

// if (showIndex === this.index) {

//     return;

// }

lis[i].index = i; //动态为li添加下标

lis[i].onclick = function() {

// 收起来已经展开的li

// 1.for (var j = 0; j < lis.length; j++) {

//     lis[j].className = "";

// }

// 2.动态添加下标

lis[showIndex].className = "";

// 展开点击的li

this.className = "open";

showIndex = this.index;

// 修改body的背景图

document.body.style.backgroundImage = this.style.backgroundImage;

}

}

html css 和js共同实现手风琴相关推荐

  1. IE6、IE7、IE8的CSS、JS兼容

    Internet Explorer 6中查看使用 Microsoft JScript 的网页,可能会遇到web浏览器速度较慢的性能问题.原因是如果js脚本同时创建大量变量,jscript引擎执行垃圾收 ...

  2. CSS vs. JS Animation: 哪个更快

    CSS vs. JS Animation: 哪个更快? CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且 ...

  3. js和html以及css的区别,html、css、js中的区别与关系

    html.css.js中的区别与关系 2020/04/26 作者: 互盟股份 今天小盟给大家分享的是html.css.js中的区别与关系,相信很多人都不太了解,为了让大家更加了解html.css.js ...

  4. php替换时 css中的图片不显示不出来,URL重写:CSS,JS和图像未加载

    我遵循规则 .htaccess Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAM ...

  5. 介绍html CSS和JS的定义或引用

    现在的网页设计,一般采用内容与表现相分离,即网页的组成包含:内容(HTML)+ 样式(CSS) + 脚本(JS) . 浏览器解析原理 服务器接收到HTML->解析HTML结构建DOM树-> ...

  6. 使用Minify合并css和js减少http请求

    一个页面可能包含很多的css和js文件,如果能够合并这些文件,能够大大减少网站的http请求,减少日志的产生和用户体验的提高. Minify就是一个能够合并css或js为一个文件的工具,不但可以合并, ...

  7. 你可能不知道的5种 CSS 和 JS 的交互方式

    翻译人员: 铁锚 翻译日期: 2014年01月22日 原文日期: 2014年01月20日 原文链接:  5 Ways that CSS and JavaScript Interact That You ...

  8. 判断CSS与JS是否加载完毕的方法

    简单而有效的思路:三步走 一.显示默认提示:直接在页面上标识一个友好的提示:例如xxx,系统加载未完成,建议您刷新后再进行yy操作 二.css加载完毕:对提示内容进行处理:例如红色提示变..黄色警告 ...

  9. 解决修改css或js文件,浏览器缓存更新问题。

    解决修改css或js文件,浏览器缓存更新问题. 参考文章: (1)解决修改css或js文件,浏览器缓存更新问题. (2)https://www.cnblogs.com/zhangycun/p/7427 ...

最新文章

  1. 让你博士毕不了业的十个最可能的原因
  2. 【小题目】写JAVA程序时可以创建一个名为123.java的源文件吗
  3. Android 亮屏速度分析
  4. mysql主从、主主复制及高可用性
  5. php打印预览jquery,JS实现浏览器打印、打印预览示例
  6. 淘宝双12惊喜——“寻”千兆,万兆光模块等你来
  7. ElasticSearch的基本用法与集群搭建
  8. 华数机器人编程语言_招新 | 海大最「酷」的科创团队,确定不来了解一下吗?...
  9. 苹果app代码行数统计
  10. 我的区块链著作《区块链的数学原理》,今天正式出版和发行
  11. 遭DeFi反噬,以太坊绝地反击
  12. 第九届CDA数据分析师认证考试报考指南
  13. 同时打开对比两个pdf文件软件推荐
  14. Matter理论介绍-通用-1-03:桥接器-数据结构
  15. PS里面的快速选区工具
  16. oracle视图能否编辑数据,oracle视图的几个重要内容
  17. 中国“神舟八号”飞船在酒泉发射升空
  18. 让猛男娇羞的AI算法
  19. 从一到无穷大 #6 盘满排查过程
  20. 树莓派3 基于Ubuntu mate 16.04的调用中文输入法

热门文章

  1. 陕南柿子红了_陕南赤子_新浪博客
  2. 一起用Python做个上课点名器,好玩又实用!
  3. apicloud菜鸟教程_APICloud 对象之 Method
  4. java双层list扁平化,浅谈java8 stream flatMap流的扁平化操作
  5. Eventide插件夏季促销
  6. [架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)
  7. 原生 html 绘制表格
  8. Java 时间日期API总结
  9. Picture of my baby when 2 monthes old_拔剑-浆糊的传说_新浪博客
  10. canvas实现图片旋转