javascript Bootstrap Basic Navbar Collapse,没有jQuery或Bootstrap JS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Bootstrap Basic Navbar Collapse,没有jQuery或Bootstrap JS相关的知识,希望对你有一定的参考价值。
let collapseElements = document.querySelectorAll('[data-toggle="collapse"]');
const CLASS_SHOW = 'show';
const CLASS_COLLAPSE = 'collapse';
const CLASS_COLLAPSING = 'collapsing';
const CLASS_COLLAPSED = 'collapsed';
const ANIMATION_TIME = 350; // 0.35s
function handleCollapseElementClick(e) {
let el = e.currentTarget;
let collapseTargetId = el.dataset.target || el.href || null;
if (collapseTargetId) {
let targetEl = document.querySelector(collapseTargetId);
let isShown = targetEl.classList.contains(CLASS_SHOW) || targetEl.classList.contains(CLASS_COLLAPSING);
if(!isShown) {
targetEl.classList.remove(CLASS_COLLAPSE);
targetEl.classList.add(CLASS_COLLAPSING);
targetEl.style.height = 0;
targetEl.classList.remove(CLASS_COLLAPSED);
setTimeout(() => {
targetEl.classList.remove(CLASS_COLLAPSING);
targetEl.classList.add(CLASS_COLLAPSE, CLASS_SHOW);
targetEl.style.height = '';
}, ANIMATION_TIME);
targetEl.style.height = `${targetEl.scrollHeight}px`;
} else {
targetEl.style.height = `${targetEl.getBoundingClientRect().height}px`;
targetEl.offsetHeight; // force reflow
targetEl.classList.add(CLASS_COLLAPSING);
targetEl.classList.remove(CLASS_COLLAPSE, CLASS_SHOW);
targetEl.style.height = '';
setTimeout(() => {
targetEl.classList.remove(CLASS_COLLAPSING);
targetEl.classList.add(CLASS_COLLAPSE);
}, ANIMATION_TIME);
}
}
}
collapseElements.forEach((el) => {
el.addEventListener('click', handleCollapseElementClick);
});
以上是关于javascript Bootstrap Basic Navbar Collapse,没有jQuery或Bootstrap JS的主要内容,如果未能解决你的问题,请参考以下文章
权限被拒绝:user=basi,access=WRITE,inode="/":
eModal 在 bootstrap 3 中加载 javascript 但在 bootstrap 4 中不起作用
javascript 打开时滚动到Bootstrap面板(jQuery,Bootstrap 3)
JavaScript强化教程——Bootstrap
JavaScript强化教程——Bootstrap
bootstrap javascript插件部分的笔记整理