2013-04-22 60 views
0

这是我的代码:重复jQuery代码和adepting

var flag=true; 
$(document).ready(function(){ 
    $("glavna").mouseenter(function(){ 
     if(flag) 
     { 
      $(".ocenjevanje").animate({right:"+=440", bottom:"+=20"},1000); 
      $(".svetovanje").animate({right:"+=440", top:"+=140"},1000); 
      $(".onas").animate({left:"+=440", top:"+160"},1000); 
      $(".infotocka").animate({left:"+=440", bottom:"+=3"},1000); 
      flag=false; 
     } 
    }); 
}); 

var bannana=true; 
$(document).ready(function(){ 
    $(".glavna").click(function(){ 
     if(bannana) 
     { 
      $(".ocenjevanje").animate({right:"-=440", bottom:"-=200"},1000); 
      $(".svetovanje").animate({right:"-=440", top:"-=140"},1000); 
      $(".onas").animate({left:"-=440", top:"-=150"},1000); 
      $(".infotocka").animate({left:"-=440", bottom:"-190"},1000); 
      bannana=false; 
     } 
    }); 
}); 

这将移动卡我在页面中间与悬停在主卡的侧面和返回他们点击。但问题是我只能这样做一次(只有一次悬停和点击....之后,它什么都不做)。我怎样才能使代码,所以我将能够重复这一行动?我如何在所有屏幕尺寸上娴熟jQuery,因此无论它的尺寸如何,显卡都将始终位于屏幕的角落?最后一件事情是,没有任何理由,进入顶级动画的卡片有点不同。他们不像起始位置那样从底部开始,而是在对角线动画前轻微移动。我该如何解决这个问题? 如果需要的话这里是完整的代码(CSS和HTML):http://jsfiddle.net/kkdpw/

+1

好,它只能工作一次的原因是因为正在设置标志“flag”和“bannana”。一旦''.glavna'分类的项目被点击,那两个都变成'false',并且'if'块中的代码将不会独立运行。 – sberry 2013-04-22 07:07:59

回答

1

你需要在事件发生后改变国旗和香蕉回真/假..

var flag=true; 
$(document).ready(function(){ 
$(".glavna").mouseenter(function(){ 
    if(flag) 
    { 
    $(".ocenjevanje").animate({right:"+=440", bottom:"+=20"},1000); 
    $(".svetovanje").animate({right:"+=440", top:"+=140"},1000); 
    $(".onas").animate({left:"+=440", top:"+160"},1000); 
    $(".infotocka").animate({left:"+=440", bottom:"+=3"},1000); 
    flag=false; 
     bannana = true; 
    } 

}); 
}); 

var bannana=true; 
$(document).ready(function(){ 
$(".glavna").click(function(){ 
    if(bannana) 
    { 
    $(".ocenjevanje").animate({right:"-=440", bottom:"-=200"},1000); 
    $(".svetovanje").animate({right:"-=440", top:"-=140"},1000); 
    $(".onas").animate({left:"-=440", top:"-=150"},1000); 
    $(".infotocka").animate({left:"-=440", bottom:"-190"},1000); 
    bannana=false; 
     flag = true; 
    } 

}); 
}); 

fiddle here

+0

这有效,但会出现另一个问题。每当我重复盘旋并点击,卡片就会到不同的位置。我怎样才能设置它,让他们总是会回到同一点? – Urrby 2013-04-22 07:40:47

+0

这是因为你正在为'+ = 440'和底部为'+ 20'设置权限,这意味着每次这样会在右边添加440px,在底部添加20px ...使其成为静态...并且它将保持在相同posionion – bipen 2013-04-22 07:49:15

+0

但我如何使它静态?对不起,但我现在很困惑。我觉得我什么都不知道了。你能在我的小提琴里修好吗?我真的很感激。 – Urrby 2013-04-22 07:55:30