[英]Getting rid of body page scrolling when modal is open
I am trying to add the class overflow: hidden;
我试图添加类
overflow: hidden;
to the body
tag with javascript to hide the scroll but it is not happening. 到带有javascript的
body
标签以隐藏滚动,但这没有发生。 What am I doing wrong? 我究竟做错了什么?
I am getting the element by tag name: var body = document.getElementsByTagName("body");
我通过标记名称获取元素:
var body = document.getElementsByTagName("body");
Then after the modal is fired I want to add the class .no-scrolling { overflow: hidden; }
然后在触发模态之后,我想添加类
.no-scrolling { overflow: hidden; }
.no-scrolling { overflow: hidden; }
to the body tag. .no-scrolling { overflow: hidden; }
到body标签。
var modal = document.getElementsByClassName("finance-modal")[0];
var btn = document.getElementsByClassName("finance-modal-btn")[0];
var span = document.getElementsByClassName("finance-modal-close")[0];
var body = document.getElementsByTagName("body");
btn.onclick = function() {
modal.style.display = "block";
body.classList.add("no-scrolling");
}
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
And, it is not working! 而且,它不起作用!
This might not work var body = document.getElementsByTagName("body");
这可能无法正常工作
var body = document.getElementsByTagName("body");
. 。 Try
var body = document.body;
尝试
var body = document.body;
instead. 代替。
As for removing scrolling you need to set {overflow-y: hidden;}
至于删除滚动,则需要设置
{overflow-y: hidden;}
Done! 完成!
var body = document.querySelector("body");
did it. 做到了。
It would be then: 然后是:
var modal = document.getElementsByClassName("finance-modal")[0];
var btn = document.getElementsByClassName("finance-modal-btn")[0];
var span = document.getElementsByClassName("finance-modal-close")[0];
var body = document.querySelector("body");
btn.onclick = function() {
modal.style.display = "block";
body.classList.add("no-scrolling");
}
span.onclick = function() {
modal.style.display = "none";
body.classList.remove("no-scrolling");
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
body.classList.remove("no-scrolling");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.