Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery淡入淡出、设置动画和切换?_Jquery_Toggle_Fade - Fatal编程技术网

jQuery淡入淡出、设置动画和切换?

jQuery淡入淡出、设置动画和切换?,jquery,toggle,fade,Jquery,Toggle,Fade,我在Forrst上问了这个问题,收到了两个代码回复。一个成功了,一个没有。我希望有人能向我解释为什么第二个不起作用 我的目标是在默认情况下隐藏搜索。当您单击搜索图标时,它会将搜索切换为淡入并稍微向左移动。如果再次单击搜索图标,它将淡出并向右移动 以下是有效的代码: $(function() { var search = $('#searchform'); search.css('opacity', 0); $('#search-img').toggle(function

我在Forrst上问了这个问题,收到了两个代码回复。一个成功了,一个没有。我希望有人能向我解释为什么第二个不起作用

我的目标是在默认情况下隐藏搜索。当您单击搜索图标时,它会将搜索切换为淡入并稍微向左移动。如果再次单击搜索图标,它将淡出并向右移动

以下是有效的代码:

  $(function() {
    var search = $('#searchform');
    search.css('opacity', 0);

  $('#search-img').toggle(function() {
    search.animate({opacity: 1}, {queue: false, duration: 'slow'});
    search.animate({ left: "-10px" }, 'slow');
  },
 function() {
   search.animate({opacity: 0}, {queue: false, duration: 'slow'});
   search.animate({ left: "+10px" }, 'slow');
  } 
  );      

});
以下是当我单击搜索图标时,什么都不会发生的代码:

$(function() {
var search = $('#searchform').css('opacity', 0),
    i = 0;

$('#search-img').click(function() {
    search.animate({opacity: 'toggle', left: i % 2 == 0 ? 0 : -10});
    i++;
});
});

有人知道第二个代码的问题是什么吗?

变量i将不可用,因为它不是全局变量。要使$()中的某些内容成为全局变量,只需将其分配给窗口对象即可

解决办法是:

$(function() {
var search = $('#searchform').css('opacity', 0),
    window.i = 0;

$('#search-img').click(function() {
    search.animate({opacity: 'toggle', left: i % 2 == 0 ? 0 : -10});
    window.i++;
});
});

当我尝试“uncaughtsyntaxerror:Unexpected token”时,我遇到了这个错误。我只是复制并粘贴了您的代码,并添加了窗口对象。错误是css后面的逗号('opacity',0)。它应该是分号;相反,我在css文件中默认隐藏了对打开JS的人的搜索。然后,我使jQuery看起来像$$('#search img')。单击(function(){search.animate({opacity:'toggle',left:I%2==0?0:-10});window.I++;});它现在可以开关,但根本不动。