使用JQuery淡入淡出div

时间:2015-09-18 07:44:02

标签: javascript jquery html css fade

我在这里失去理智......

我想在同一页面淡入和淡出div。我不知道JQuery所以我开始搜索我想要的东西。

我找到了this。它完全符合我的要求(在小提琴中)。

所以我开始复制和填充但是我不会工作

这就是我做的......

在我的<head>中,我添加了JQuery和CSS样式

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$('#btn').click(function(e){    
    $('#fancy, #btn').fadeOut('slow', function(){
        $('#bank, #btn-bk').fadeIn('slow');
    });
});

$('#btn-bk').click(function(e){    
    $('#bank, #btn-bk').fadeOut('slow', function(){
        $('#fancy, #btn').fadeIn('slow');
    });
});
</script>
<style>
#bank {display:none;}
#btn-bk {display:none;}
</style>

在身体中我放置了HTML

<div><a href="#" id="btn">Show bank div and hide fancy div</a></div>
<div id="btn-bk"><a href="#">back</a></div>
<div id="bank">Bank Div</div>
<div id="fancy">Fancy Div</div>

它什么都不做。我不明白我做错了什么!

微米。

3 个答案:

答案 0 :(得分:3)

将您的JS代码包装在 document.ready 语句中:

$(function () {
    $('#btn').click(function(e){
        $('#fancy, #btn').fadeOut('slow', function(){
            $('#bank, #btn-bk').fadeIn('slow');
        });
    });

    $('#btn-bk').click(function(e){
        $('#bank, #btn-bk').fadeOut('slow', function(){
            $('#fancy, #btn').fadeIn('slow');
        });
    });
});

它实际上会做什么,是否会等待文档对象模型(DOM)为Javascript执行做好准备。

您可以使用 $(窗口).load({}),但在这种情况下,您的整个页面(包括图片和iframe)将完全下载,并且只能 THEN 您的Javascript将运行(Source

在简单的页面上没问题,但在更复杂的情况下,它会让你头疼。

答案 1 :(得分:2)

一个区别是他们的方法是在jquery onload方法中定义的。当JQuery尝试绑定到元素时,它们实际上还没有!尝试像这样包装你的Javascript ......

$(window).load(function(){
$('#btn').click(function(e){    
    $('#fancy, #btn').fadeOut('slow', function(){
        $('#bank, #btn-bk').fadeIn('slow');
    });
});

$('#btn-bk').click(function(e){    
    $('#bank, #btn-bk').fadeOut('slow', function(){
        $('#fancy, #btn').fadeIn('slow');
    });
});
});

答案 2 :(得分:1)

它没有任何效果,因为您将代码置于头部,并且您没有等待页面加载,并且在执行时,选择器(例如$('#btn'))返回空对象。之一:

  1. 将代码移至</body>下方。
  2. 使用jQuery“on load”处理程序($())。