JavaScript不适用于internet explorer和Firefox,但适用于谷歌
JavaScript does not work in internet explorer and Firefox but works in Google
正如标题所述,javascript代码不会在IE和Mozilla Firefox中运行。
代码的作用是什么?导航栏是相对的,但在滚动时,位置将是固定的。
这是代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
.container {
max-width: 1500px;
margin: auto;
height: 1000px;
}
nav {
background-color: white;
height: 80px;
width: 100%;
position: relative;
top: 0;
}
nav ul {
width: 700px;
padding: 20px;
margin: auto;
list-style-type: none;
}
nav ul li {
float: left;
width: 138px;
text-align: center;
}
nav ul li a {
padding: 10px;
display: block;
font-family: "Arial Rounded MT Bold", "Arial Narrow", "Arial Unicode MS", "Arial Black", Arial, sans-serif;
text-transform: uppercase;
font-weight: 500;
text-decoration: none;
height: 20px;
cursor: pointer;
color: black;
}
/*End of nav */
.test {
position: fixed;
width: 100%;
height: 60px;
background-color: white;
z-index: 10;
animation: nav 1s 1;
-ms-animation: nav 1s 1;
-moz-animation: nav 1s 1;
}
@keyframes nav {
from {
opacity: 0;
top: -40px;
}
to {
top: 0;
opacity: 1;
}
}
@-moz-keyframes nav {
from {
opacity: 0;
top: -40px;
}
to {
top: 0;
opacity: 1;
}
}
@-ms-keyframes nav {
from {
opacity: 0;
top: -40px;
}
to {
top: 0;
opacity: 1;
}
}
</style>
<script>
document.getElementById("navbar").scrollTop = function() {
bodyscroll()
}
function bodyscroll() {
if (document.body.scrollTop > 10 || document.getElementById("navbar").scrollTop > 10) {
document.getElementById("navbar").classList.add("test");
} else {
document.getElementById("navbar").classList.remove("test");
}
}
</script>
</head>
<body onScroll="bodyscroll()">
<div class="container">
<nav id="navbar">
<ul>
<li>Home</li>
<li>About Us</li>
<li> Products
</li>
<li>Events</li>
<li>Contact Us</li>
</ul>
</nav>
</div>
<!--Select to select the page-->
</body>
</html>
docs.google.com 中的代码
以下是您可以预览我的代码的网站:http://htmledit.squarefree.com/
额外注意:很抱歉给您带来不便,我不知道如何在这里显示我的代码,当我使用JSfiddle时,代码似乎无法运行。
我不能使用代码片段函数,因为它不允许我使用,如果我知道如何使用,我无论如何都会使用它。
您的问题是document.body.scrollTop
在FireFox中始终是0
。
原因是document.body.scrollTop
已弃用,不应再使用为什么body.scrollTop已弃用?
但在Chrome中,document.documentElement.scrollTop
将始终是0
,因此您需要一种跨浏览器方法来检测浏览器窗口的滚动顶部
function bodyscroll() {
if ( (window.scrollY || document.documentElement.scrollTop) > 10 ) {
document.getElementById("navbar").classList.add("test");
} else {
document.getElementById("navbar").classList.remove("test");
}
}
除此之外,document.getElementById("navbar").scrollTop > 10
没有任何意义,因为navbar
不可滚动,document.getElementById("navbar").scrollTop = function() { ... }
完全错误:
MDN:Element.scrollTop
Element.scrollTop属性获取或设置元素内容向上滚动的像素数。
因此,将其设置为函数没有任何意义。
Firefox错误控制台中的错误是
TypeError: document.getElementById(...) is null test.html:67:1
您尝试在加载HTML元素之前获取它。您需要将整个脚本放在末尾,放在整个HTML之后(当然是放在</html>
之前),或者使用类似document.onload
的东西。
- html5 drawImage适用于firefox,而不是chrome
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- 通过单击主菜单外部关闭子菜单'不适用于IE,但适用于Firefox&铬
- jQuery放大版不适用于Chrome和Safari,但适用于Firefox
- JavaScript调整iFrame大小-适用于Firefox/IE,但不适用于Chrome
- jquery脚本仅适用于firefox
- CSS/JQuery/Javascript加载图标仅适用于firefox
- jquery 2.2 serializeArray()适用于Firefox、Chrome,但不适用于IE(11)
- Ajax,Php-Postback仅适用于Firefox
- jQuery scrollTop()-仅适用于Firefox,不适用于Chrome
- AngularJS下拉菜单适用于Firefox,不适用于Chrome和Safari
- 在 javascript 中更改图像 .style 仅适用于 Firefox
- JS幻灯片适用于Firefox和chrome,但不适用于Internet Explorer
- jquery datatable oTable.$ 适用于 Firefox,但不适用于 Chrome
- 为什么这适用于Firefox,但不适用于Chrome或IE
- Javascript 适用于 Firefox 和 Chrome,但不适用于 IE
- Javascript适用于Firefox而不是IE.为什么
- 删除cookie(PHP,JS)适用于Firefox,Safari,Opera,但不适用于Chrome
- JavaScript脚本适用于Firefox,Chrome,Safari,Internet Explorer< 9,但不
- Web Audio onaudioprocess适用于Firefox,JSFiddle适用于Chrome,但不适用于Ch