如何使用javascript隐藏并让div重新出现
我试图使网页有一个div在中心正在改变,而不是去不同的网页 最后,我想让新的div在单击箭头时从右或左向中间流动。但首先,我想让div在单击箭头时出现和消失,但不幸的是,这不起作用 这是我的javascript:如何使用javascript隐藏并让div重新出现,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图使网页有一个div在中心正在改变,而不是去不同的网页 最后,我想让新的div在单击箭头时从右或左向中间流动。但首先,我想让div在单击箭头时出现和消失,但不幸的是,这不起作用 这是我的javascript: <script> function changeToHome() { document.getElementById("mainmain").style.display="block"; document.getElementById("mainmain2"
<script>
function changeToHome() {
document.getElementById("mainmain").style.display="block";
document.getElementById("mainmain2").style.display="none";
document.getElementById("mainmain3").style.display="none";
document.getElementById("mainmain4").style.display="none";
}
function changeToStudy() {
document.getElementById("mainmain").style.display="none";
document.getElementById("mainmain2").style.display="block";
document.getElementById("mainmain3").style.display="none";
document.getElementById("mainmain4").style.display="none";
}
function changeToJob() {
document.getElementById("mainmain").style.display="none";
document.getElementById("mainmain2").style.display="none";
document.getElementById("mainmain3").style.display="block";
document.getElementById("mainmain4").style.display="none";
}
function changeToContact() {
document.getElementById("mainmain").style.display="none";
document.getElementById("mainmain2").style.display="none";
document.getElementById("mainmain3").style.display="none";
document.getElementById("mainmain4").style.display="block";
}
function changePageRight() {
var displayValue5 = document.getElementById('mainmain').style.display;
var displayValue5 = document.getElementById('mainmain2').style.display;
var displayValue6 = document.getElementById('mainmain3').style.display;
var displayValue7 = document.getElementById('mainmain4').style.display;
if (document.getElementById('mainmain').style.display == "block") {
document.getElementById("mainmain").style.display="none";
document.getElementById("mainmain2").style.display="block";
}
else if (document.getElementById('mainmain2').style.display == "block") {
document.getElementById("mainmain2").style.display="none";
document.getElementById("mainmain3").style.display="block";
}
else if (document.getElementById('mainmain3').style.display == "block") {
document.getElementById("mainmain3").style.display="none";
document.getElementById("mainmain4").style.display="block";
}
else if (displayValue8 == block) {}
}
function changePageLeft() {
var displayValue = document.getElementById('mainmain').style.display;
var displayValue2 = document.getElementById('mainmain2').style.display;
var displayValue3 = document.getElementById('mainmain3').style.display;
var displayValue4 = document.getElementById('mainmain4').style.display;
if (displayValue == "block") { }
else if (displayValue2 == "block") {
document.getElementById("mainmain").style.display="block";
document.getElementById("mainmain2").style.display="none";
}
else if (displayValue3 == "block") {
document.getElementById("mainmain2").style.display="block";
document.getElementById("mainmain3").style.display="none";
}
else if (displayValue4 === "block") {
document.getElementById("mainmain3").style.display="block";
document.getElementById("mainmain4").style.display="none";
}
}
</script>
以及显示为无的所有其他div代码>这样我就可以将它改为block,将原来的块改为none。
出于某种原因,当我点击菜单上的一个按钮,激活changeToX()函数后,箭头效果很好。但在此之前,当你第一次访问网站时,它不会
有人能解释一下我做错了什么吗?您不能告诉浏览器加载时应该显示哪个
div
s。您可以为此使用事件:
<body onload="changeToHome()">
还有一个提示:您可能不想使用。jQuery如下所示:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<a href="#" class="toggle-container" data-container="#mainmain">toggle!</a>
<div id="mainmain">test text</div>
<script>
// you need this, only apply javascript when all html (dom) is loaded:
$(document).ready(function() {
$('.toggle-container').on('click', function(e) {
e.preventDefault(); // this prevents the real href to '#'
// .toggle() is like "on / off" switch for hiding and showing a container
$($(this).data('container')).toggle();
});
});
</script>
测试文本
//您需要这样做,仅在加载所有html(dom)时应用javascript:
$(文档).ready(函数(){
$('.toggle container')。打开('click',函数(e){
e、 preventDefault();//这将阻止对“#”的实际href
//.toggle()类似于用于隐藏和显示容器的“开/关”开关
$($(this.data('container')).toggle();
});
});
此函数可以重用,因为它基于类而不是id
检查这个JSFIDLE:也许这是有用的。我试着做一个页面控件式的行为。您可以选择任何容器div并将类为“page”的元素放入其中。JavaScript代码将允许您使用按钮导航这些内容 您可以通过JavaScript添加按钮,使其更加美观。然后,基本上就是一个页面列表,通常显示为常规div,但当脚本启动时,它会将它们更改为页面控件 您可以为任何父元素调用它,从这个意义上讲,它的行为有点像jQuery插件。不过,这都是本地JavaScript。我希望代码不要太多。正如你所说,我认为首先学习JavaScript是件好事。它本身就非常强大,而且越来越强大。jQuery添加了许多方便的函数,并在浏览器不支持某些功能或实现不同时提供了回退。但是对于许多任务来说,纯JavaScript都可以很好地完成,而且知道如何使用它肯定不会有什么坏处 按底部的“运行此代码段”按钮以查看它的运行情况。
功能页(元素)
{
//一些初始化
var-activePage;
//查找此元素中的所有页面。
var pages=document.querySelectorAll('.page');
var maxPage=pages.length-1;
//用于切换活动页面的函数。
var setPage=函数(索引)
{
activePage=索引;
对于(p=0;p为什么不使用jquery?我以前从未使用过jquery。我认为在使用jquery之前最好先更好地理解JavaCScript。除非你建议我早点研究jquery。我也很乐意用jquery而不是javascript来回答,因为我在这个网站上看到了很多关于jquery的答案在javascript中,作者没有特别要求使用jquery。jquery既快速又简单,它可以极大地减少您的编码以获得最大的效率。CSS是:display:none
或visibility:hidden
@LcSalazar我认为,他的代码会增长,他需要jquery在未来的其他地方为您提供答案,addin我知道我不应该做内联css和javascript,我有不同的文件,但有时当我懒惰并且尝试新东西时,我倾向于内联添加。我想这是个坏习惯。很高兴我能帮上忙。这绝对是个坏习惯-最好创建类(比如displaynone或displayblock)并使用普通JavaScript(element.className+=“displaynone”
)或jQuery($(element.addClass(“displayne”)
)将它们分配给容器虽然我同意jQuery很简单,但它的优势并没有那么大。我冒昧地修改了您的示例,使用纯Javascript。额外的代码量是可以忽略的,它至少在最新版本的Chrome和IE中可以工作。这还节省了额外的请求和38KB的下载(缩小和压缩!)。
<body onload="changeToHome()">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<a href="#" class="toggle-container" data-container="#mainmain">toggle!</a>
<div id="mainmain">test text</div>
<script>
// you need this, only apply javascript when all html (dom) is loaded:
$(document).ready(function() {
$('.toggle-container').on('click', function(e) {
e.preventDefault(); // this prevents the real href to '#'
// .toggle() is like "on / off" switch for hiding and showing a container
$($(this).data('container')).toggle();
});
});
</script>