在切换时更改顶部位置 JavaScript
On toggle change top position JavaScript
我有一个div,点击它会展开或关闭,我还想根据原始[=44]的点击状态更改不同固定div的顶部位置=].
例如
如果原始 div 被扩展,我希望 div 2 有 top:10px
如果关闭div 2 有top:0
这是当前展开或关闭的切换功能div
<a href="#" class="toggle" onclick="dropDownMSG(); this.parentNode.classList.toggle('open');return false;">
<img src="/Static/images/header-logo-top.png" alt="Informa logo"/>
</a>
然后下面我有
function dropDownMSG() {
document.getElementById("mySidenav").style.top = "10";
}
然而,这只会在单击时添加 top:10px
,因此再次切换关闭 div top
不会重置为 0
。
我需要一种表达方式:
如果切换打开则
document.getElementById("mySidenav").style.top = "10";
其他
document.getElementById("mySidenav").style.top = "0";
您可以在 if else 块中检查当前最高值并进行相应更新
function dropDownMSG() {
const element = document.getElementById("mySidenav");
if (element.style.top === '10') {
element.style.top = '0';
} else {
element.style.top = '10';
}
}
为了获得更好的性能,我建议您使用 classes。
function dropDownMSG() {
const element = document.getElementById("mySidenav");
// if (element.style.top === '10') {
// element.style.top = '0';
// } else {
// element.style.top = '10';
// }
if (element.className.indexOf('expand') === -1) {
element.className += 'expand';
} else {
element.className = element.className.replace('expand', '');
}
}
并添加 css class
.expand{top:10px;}
使用 html 数据属性分配状态,然后在您的脚本中点击更改它。
HTML
<a href="#" class="toggle" onclick="dropDownMSG(this)">
<img src="/Static/images/header-logo-top.png" alt="Informa logo"/>
</a>
CSS
function dropDownMSG(elem){
if(elem.dataset.state === "open"){
elem.dataset.state = "close";
document.getElementById("mySidenav").style.top = "10px";
}
else{
elem.dataset.state = "open";
document.getElementById("mySidenav").style.top = "0";
}
}
我有一个div,点击它会展开或关闭,我还想根据原始[=44]的点击状态更改不同固定div的顶部位置=].
例如
如果原始 div 被扩展,我希望 div 2 有 top:10px
如果关闭div 2 有top:0
这是当前展开或关闭的切换功能div
<a href="#" class="toggle" onclick="dropDownMSG(); this.parentNode.classList.toggle('open');return false;">
<img src="/Static/images/header-logo-top.png" alt="Informa logo"/>
</a>
然后下面我有
function dropDownMSG() {
document.getElementById("mySidenav").style.top = "10";
}
然而,这只会在单击时添加 top:10px
,因此再次切换关闭 div top
不会重置为 0
。
我需要一种表达方式:
如果切换打开则
document.getElementById("mySidenav").style.top = "10";
其他
document.getElementById("mySidenav").style.top = "0";
您可以在 if else 块中检查当前最高值并进行相应更新
function dropDownMSG() {
const element = document.getElementById("mySidenav");
if (element.style.top === '10') {
element.style.top = '0';
} else {
element.style.top = '10';
}
}
为了获得更好的性能,我建议您使用 classes。
function dropDownMSG() {
const element = document.getElementById("mySidenav");
// if (element.style.top === '10') {
// element.style.top = '0';
// } else {
// element.style.top = '10';
// }
if (element.className.indexOf('expand') === -1) {
element.className += 'expand';
} else {
element.className = element.className.replace('expand', '');
}
}
并添加 css class
.expand{top:10px;}
使用 html 数据属性分配状态,然后在您的脚本中点击更改它。
HTML
<a href="#" class="toggle" onclick="dropDownMSG(this)">
<img src="/Static/images/header-logo-top.png" alt="Informa logo"/>
</a>
CSS
function dropDownMSG(elem){
if(elem.dataset.state === "open"){
elem.dataset.state = "close";
document.getElementById("mySidenav").style.top = "10px";
}
else{
elem.dataset.state = "open";
document.getElementById("mySidenav").style.top = "0";
}
}