HTML&JS-如何修改CSS类的属性
HTML & JS - How to modify CSS class atributes
我有以下代码,但什么都没发生:
HTML:
<head>
<script type="text/javascript" src="log-oth.js"></script>
</head>
<body onResize="nav_fontsz()">
JS:
function nav_fontsz(){
var nav = document.querySelectorAll('.nav');
var navbtn = document.querySelectorAll('.nav-button');
for (i=0 ; i<navbtn.length ; i++){
navbtn[i].style.fontSize = (nav[0].style.width / 3.5)+'px';}
alert(nav[0].style.width);
}
另外,警报框什么也不显示,甚至没有0
函数可能正在运行,但代码中存在错误。
navbtn
将为空,因为此代码在渲染任何DOM节点之前运行。这就是为什么你会看到很多$(document).ready()
的东西,你需要等到你的DOM被渲染后再尝试获取节点。
此外,nav
未定义,因此警报也不会显示。我猜你把它注释掉了,因为document.getElementsByClassName()
也给了你一个空的NodeList。
如果您想确保调整大小处理程序运行,只需放入alert("foo");
,而不需要其他内容。
您有三个不同的问题,第一个是简单的打字错误:
-
函数没有运行,因为在onresize中调用它时缺少括号。更改为:
<body onresize="nav_fontsz()">
-
您正在选择在页面上加载脚本时不存在的元素。您可以通过在nav_fontsz()函数中移动设置"w"answers"navptn"的行来解决这个问题,该函数在DOM加载后调用,如我下面的示例代码所示。
-
您使用querySelectorAll,但将结果视为单个对象,而实际上您选择的是一个或多个元素。将"navptn"视为结果集,并遍历该集,设置每个元素的字体大小,如下面的示例代码所示。
JavaScript(log-oth.js):
function nav_fontsz() {
var w = window.innerWidth, h = window.innerHeight;
var navbtn = document.querySelectorAll('.nav-button');
alert('Running...');
var w = window.innerWidth;
if (w < 800) {
for (i = 0; i < navbtn.length; i++) {
alert(navbtn.length);
navbtn[i].style.fontSize = (w / 3.5) + 'px';
}
}
alert('Done!');
}
HTML:
<head>
<script type="text/javascript" src="log-oth.js"></script>
</head>
<body onresize="nav_fontsz()">
<ul>
<li class="nav-button">Nav 1</li>
<li class="nav-button">Nav 2</li>
</ul>
</body>
演示:http://jsfiddle.net/BenjaminRay/9kq1dv10/
相关文章:
- 使用jQuery修改CSS的好处
- HTML&JS-如何修改CSS类的属性
- 如何使用带包装器的Javascript/jQuery动态修改CSS类
- 使用 angularJs 修改 css.height 会导致 Internet Explorer 无法滚动到页面底部
- 动态修改CSS-适用于IE9,但不适用于Chrome和Firefox
- 需要一种更好的方法来大规模修改css类
- 如何在硒中按类名修改 css
- 通过 javascript 通过增量修改 CSS 背景位置
- 修改 CSS 内容编辑器 yui
- 手动将脏设置为字段不会修改 css 类 angularJS
- 如何在 JavaScript 中动态设置和修改 CSS
- 为什么当媒体查询更新 CSS 规则时,修改 CSS 规则会失败
- 使用 JavaScript 或 jQuery 修改 CSS 规则
- 使用JavaScript修改CSS选择器:之后
- 如何修改CSS或JS文件从“;具体化:具体化;Meteor包装
- 使用Javascript用户输入修改CSS
- 如何在渲染前在窗口调整大小事件中修改CSS
- 哪个更快?-修改css属性或在jquery中添加类
- 使用jQuery修改CSS类的名称-在加载时不起作用
- 使用jQuery选择元素并放入数组以修改css