gpt4 book ai didi

javascript - 可能更好的方法来编写这个 hacky 切换按钮?

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:29 24 4
gpt4 key购买 nike

我有一个已经编码的切换按钮,但我认为它不适合在我的表单中使用,因为它是一个非常糟糕的 hacky 代码来选择任一选项。

是否有更好/更有效的方法来编写此切换按钮的代码?我不擅长 jQuery,因此对所提供功能的任何帮助都会有所帮助。

如果还有一种编程方式,可以将切换器左/右滑动而不是单击左/右,那也很好。

我还附上了这些图片来展示它应该如何运作的行为:
toggle behaviour diagram
current html file(below) button look for left/right toggle buttons

有什么问题,请问...

<html>
<head>
<style>
#toggle-slide {
border: 4px #303F9F solid;
border-radius: 5px;
display: flex;
width:300px;
color: white;
font-weight: 700;
text-align: center;
cursor: pointer;
}
#toggle-slide div {
flex:1;
padding: 10px 20px;
}
#toggle-option-0 {
background-color:#3F51B5;
}
#toggle-option-1 {
background-color:white;
}
</style>

<script>
function toggle() {
realToggle = document.getElementById('real-toggle');
if (realToggle.value == 0) {
realToggle.value=1;
document.getElementById('toggle-option-0').style.backgroundColor='#3F51B5';
document.getElementById('toggle-option-1').style.backgroundColor='#FFF';
} else {
realToggle.value=0;
document.getElementById('toggle-option-0').style.backgroundColor='#FFF';
document.getElementById('toggle-option-1').style.backgroundColor='#3F51B5';
}
}
</script>
</head>

<body>
<div id='toggle-slide' onclick='toggle()'>
<div id='toggle-option-0' class='active'>Private</div>
<div id='toggle-option-1'>Public</div>
<input id='real-toggle' type=hidden name=private value=1 />
</div>
</body>
</html>

最佳答案

纯 CSS 版本:

在以下代码段中,有一个隐藏的复选框,当单击 label 中的内容时,该复选框会变为选中/取消选中状态。使用 CSS :checked 选择器,#background 位置从 0% 更改为 50% 并且它是颜色从红色变为蓝色。

背景与文字分离,设置position:absolute(方便移动)加上z-index:-1(将其置于字幕)。在 #background 上添加的 CSS transition 会为其位置/颜色的变化设置动画。

.toggle-slide {
border: 4px #555 solid;
border-radius: 5px;
display: flex;
width: 300px;
color: white;
font-weight: 700;
text-align: center;
cursor: pointer;
position: relative;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE/Edge */
user-select: none;
}

.toggle-slide .subtitle {
flex: 1;
padding: 10px 20px;
}

#background {
width: 50%;
height: 100%;
top: 0;
left: 0;
position: absolute;
z-index: -1;
background-color: tomato;
-webkit-transition: all 0.6s; /* Safari */
transition: all 0.6s;
-webkit-transition-timing-function: cubic-bezier(0.2,1,0.2,1);
transition-timing-function: cubic-bezier(0.2,1,0.2,1);
}

input[type=checkbox] {
display: none;
}

#real:checked ~ label #background {
background-color: skyblue;
left: 50%;
}
<input id=real type=checkbox name=real />
<label class=toggle-slide for=real>
<div id=background></div>
<div class=subtitle>Private</div>
<div class=subtitle>Public</div>
</label>

关于javascript - 可能更好的方法来编写这个 hacky 切换按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36245245/

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