本篇文章小编给大家分享一下CSS实现单选折叠菜单功能代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
折叠菜单和标签页差不多,逻辑上都是一种单选面板,只不过折叠菜单一般是垂直堆叠的,标签页是横着排列。
标签页:
既然是单选的,就可以用单选按钮来实现。首先这些单选按钮组的父元素用
给
还是先用appearance: none禁用如上图的默认样式,然后利用::before作为按钮左侧的名称(读取value属性),::after作为右侧的小箭头(字符>和v),通过:checked属性表示折叠状态。
input[type="radio"] { cursor: pointer; appearance: none; display: block; } input[type="radio"]::before { content: attr(value); } input[type="radio"]::after { float: right; content: ">"; } input[type="radio"]:checked::after { content: "v"; }
对于
input[type="radio"] + div { display: none; } input[type="radio"]:checked + div { display: block; }
以上就是基本布局,再加上一点其他样式,就成了:
但是由于的特性,无法反选,菜单展开后想要折叠只能点别的菜单项,当然这也没什么,如果非要实现反选菜单的功能,需要记录上次展开的菜单项,每次发生点击事件时,判断是否重复点击:
// for every radio.onclick = () => { if (window.radio === radio) { input.checked = false; window.radio = null; } else window.radio = radio; };
这样就实现了单选折叠菜单的反选能力:
对了,图中混乱的文字是原来文字被打乱的结果(隐私需要),可以通过下面的代码将一个字符串打乱:
string.split('').sort(() => Math.random() - 0.5).join('')
四海兄弟故乡人物边缘模糊怎么办 人物边缘模糊解决方法
四海兄弟故乡神秘狐狸06怎么找 神秘狐狸06位置介绍
四海兄弟故乡神秘狐狸05怎么找 神秘狐狸05位置说明
诛仙2四海战歌奇遇怎么做 四海战歌东海奇遇收集
四海兄弟故乡神秘狐狸04怎么找 神秘狐狸04位置一览
四海兄弟故乡城市有多少 城市地点背景介绍
死亡铁路沙盒
激情大乱斗
暗黑小马童话故事
猿神启动
风味早餐店
风味早餐店让你从煎蛋烤吐司开始,亲手经营属于自己的早餐摊。边
网红餐厅模拟器
网红餐厅模拟器让你体验从零开始的开店乐趣,你可以在热闹的夜市
喵星人碰碰大作战
喵星人碰碰大作战带来一场奇妙的捣蛋体验,玩家化身为调皮猫咪,
小萌宠大探险
小萌宠大探险带你走进充满惊喜的卡通世界,你可以用创意搭建独特
迷失的矿工
迷失的矿工就是猫在地底下瞎挖乱造的小游戏,像素风看着像老式游