单击标签后,使用Javascript更改正文CSS
Use Javascript to change body CSS upon clicking a label
我正在为一个朋友开发一个网站。我使用屏幕外的CSS菜单。调用菜单的按钮不是HTML按钮,它被列为输入和标签。
使用菜单时,您仍然可以在页面的主体上滚动。我想禁用它。我能看到这是怎么可能的唯一方法是在点击菜单标签时更改正文CSS,但我已经做了几个小时了,运气不好。我计划在打开菜单时将以下内容添加到身体类中:
overflow: hidden;
position: static;
这是我最近使用的javascript,但没有用。我试过一次加载,但HTML"onclick"然后运行一个切换body类的脚本是我最好的理论。
HTML
<input data-function='swipe' id='swipe' type='checkbox' value="button"/>
<label data-function='swipe' for='swipe' onclick='noScroll()' value="button"></label>
<div class='sidebar'>
<nav class='menu'>
<li><a href='#'>Home</a></li>
<li class='active'><a href='#'>About</a></li>
<li><a href='#'>Imprint</a></li>
<li><a href='#'>Imprint</a></li>
</nav>
</div>
Javascript
noScroll({
$('#swipe').toggleClass('body bodynoscroll');
})
CSS
.body {
font: 12px/1 'Open Sans', sans-serif;
color: $c;
background: $c;
overflow-x: hidden;
}
.bodynoscroll {
font: 12px/1 'Open Sans', sans-serif;
color: $c;
background: $c;
overflow-x: hidden;
overflow: hidden!important;
position: static!important;
}
网站
https://www.brotherhoodgaming.net
感谢您的帮助!我的javascript很糟糕,所以我正在学习。
给标签一个ID,将事件绑定到它
<label id="menubuttonlabel" data-function='swipe' for='swipe' onclick='noScroll()' value="button"></label>
然后你的JS代码会看起来像:
$(document).on('click', '#menubuttonlabel', function(){
if ($('body').css('overflow') == 'auto'){
$('body').css("overflow", "hidden");
}else{
$('body').css("overflow", "auto");
}
});
无需更改您的body css,只需启用或禁用鼠标滚轮,如果这正是您想要的?试试这个。。。从我的旧项目中复制粘贴。
<script>
function stopWheel(e){
if(!e){ e = window.event; }
if(e.preventDefault) { e.preventDefault(); }
e.returnValue = false;
}
function mousewhellStat(stat){
if (stat) {
document.onmousewheel = null;
if(document.addEventListener){
document.removeEventListener('DOMMouseScroll', stopWheel, false);
}
} else {
document.onmousewheel = function(){ stopWheel(); }
if(document.addEventListener){
document.addEventListener('DOMMouseScroll', stopWheel, false);
}
}
}
$("#menubuttonlabel").click(function(){
mousewhellStat(false);
})
$(".sidebar .menu li").click(function(){
mousewhellStat(true);
$(".sidebar").slideUp(300);
})
</script>
只需复制粘贴到您的页面即可。看看是否工作良好:)
此代码应该可以工作:
$(document).ready(function(){
$("#{your label id}").toggle(
function(){$("body").css({"overflow": "hidden"});},
function(){$("body").css({"overflow": "auto"});}
);
});
相关文章:
- 如何从应用于正文的css中排除特定的表单
- 阻止在单击和关闭覆盖菜单css时滚动正文
- 设置正文高度宽度 CSS 表达式
- 正文中的 CSS 样式表和脚本.可能
- 单击标签后,使用Javascript更改正文CSS
- 使用CSS在HTML中自定义形状的正文
- HTML 和 CSS 在所有屏幕尺寸上垂直对齐正文网站
- 有没有一个JavaScript方法可以让我根据用户所在的html页面为正文提供特定的css类
- HTML CSS仅在正文到达特定点时才修复元素
- 使用 jQuery 将 CSS 添加到正文中的 head 标签
- 根据季节(当前日历月)更改<正文>(在 CSS 中)的背景图像
- 复制/显示带有 css 的 html 表作为单击时的电子邮件正文
- 从请求模块接收的正文是否包含计算的 css
- 幻灯片显示css布局干扰html正文
- jQuery'css不是't向正文添加背景属性
- HTML、CSS、JQuery网页正文在垂直方向上拉伸过大
- jQuery:获取内联样式而不是正文的CSS
- 无法使用 jQuery 更改正文上的“动画持续时间”CSS
- 为没有正文的iframe添加CSS
- JQuery:更改窗口大小时留下的正文css属性