gpt4 book ai didi

javascript - 我可以在 CSS 中制作这个 javascript 侧边栏吗(包括动画)?

转载 作者:行者123 更新时间:2023-11-28 07:57:06 25 4
gpt4 key购买 nike

我找到了 this在搜索如何制作侧边栏时认为它很好,但它是用 JavaScript 编写的,我不想使用 JavaScript。那么我可以只使用 CSS 和 HTML/5 来做到这一点吗?

$('button').toggle(
function() {
$('#B').animate({left: 0})
}, function() {
$('#B').animate({left:200})
})

这是上面例子的一个片段:

$('button').toggle(
function() {
$('#B').animate({left: 0})
}, function() {
$('#B').animate({left:200})
})
html, body {
margin: 0;
padding: 0;
border: 0;
}
#A, #B {
position: absolute;
}
#A {
top: 0px;
width: 200px;
bottom: 0px;
background:orange;
}
#B {
top: 0px;
left: 200px;
right: 0;
bottom: 0px;
background:green;
}
#BB {
top: 0px;
left: 0px;
right: 0;
bottom: 0px;
background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<div id="A"></div>
<div id="B"><button>toggle</button></div>

最佳答案

还有一种方法可以通过执行使用 :checked 的变通方法使此类导航可行。复选框输入的属性和 General Sibling CSS Selector ~ 以便选择 #A#B div 并在切换复选框时调整它们的大小以满足您的需要。

在我的示例中,我通过隐藏实际的复选框和设置复选框标签的样式来模拟切换按钮(标签也是可点击的,并且会触发输入元素中的 checked 属性)。

这种方法的缺点是,为了使同级选择器起作用,您实际上必须让切换元素与其他元素处于同一级别,这需要一些额外的定位工作。

html,
body {
margin: 0;
padding: 0;
border: 0;
}

a {
display: inline-block;
padding: 1em;
text-decoration: none;
color: #fff;
background: rgba(0, 0, 0, 0.5);
border-radius: 0 5px 5px 0;
}

#A,
#B {
position: absolute;
transition: all 500ms;
}

#A {
top: 0px;
width: 200px;
bottom: 0px;
background: orange;
}

#B {
top: 0px;
left: 200px;
right: 0;
bottom: 0px;
background: green;
}

/*Hide the checkbox*/
#toggle {
display: none;
}

label {
position: relative;
/*Set the left position to the same as the sidebar */
left: 200px;
top: 10px;
margin: 5px;
z-index: 2;
transition: all 500ms;
background: #FFF;
padding: 4px 6px;
background: orange;
}

/* Initial sidebar state */
#toggle ~ #A {
left: 0;
}

/*move both containers on toggle*/
#toggle:checked ~ #A,
#toggle:checked ~ #B {
left: -200px;
}

/*move label to follow sidebar animation*/
#toggle:checked,
#toggle:checked ~ label {
left: 0;
background: #FFF;
}
<div id="A"></div>
<input id="toggle" type="checkbox">
<label for="toggle">Toggle</label>
<div id="B"></div>

关于javascript - 我可以在 CSS 中制作这个 javascript 侧边栏吗(包括动画)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30043105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com