2012-12-15 55 views
0

我有一個圖像網格,我希望放大一個div id = box,從點擊圖像到整個網格空間指定的動畫,並以同樣的方式關閉。第一輪比賽完美,但接下來的幾輪以意想不到的有趣方式執行。 JavaScript只是將div放在點擊的圖像上。動畫,出現和消失是使用jquery完成的。即時通訊不是很好的jQuery,但不能抵制動畫選項。請爲此不尋常的行爲建議一個合適的替代方案或解決方案。 thansks。jquery和javascript代碼,後續執行給出意想不到的輸出,第一個是所需的輸出

function box(id) 
{var tpos = document.getElementById(id).offsetTop; 
var lpos = document.getElementById(id).offsetLeft; 
document.getElementById('box').style.top= tpos; 
document.getElementById('box').style.left= lpos; 
setTimeout(function(){jqueryfunc();},800);} 

jqueryfunc = function(){ 
var box= $('#box'); 
$('#close').show(); 
box.show(); 
var ileft=box.css("left"); 
var itop=box.css("top"); 
box.animate({width:'793px',left:'06px'},1000); 
box.animate({height:'446px',top:'31px'},1000); 

jqueryclose = $(function(){ 
$('#close').click(function(){ 
$('#close').hide(); 
box.animate({width: '157px', left: ileft},1000); 
box.animate({height: '110px', top: itop},1000); 
box.fadeOut('slow'); 
}); }); }; 
+0

可以請你給我們的網址到你的網站? –

+3

在jsfiddle.net中提供演示...未鏈接到網站。一個網站的鏈接可能會在將來被打破,以後爲其他人提供的價值不大 – charlietfl

+1

@charlietfl哇如此充滿愛心的兄弟:) –

回答

0

你分配DOM ready函數的變量,並期待變量不同的範圍等合作嘗試更多的東西是這樣的:

function box(id) { 
    var elem = $('#'+id), 
     offset = elem.offset(), 
     box = $('#box'); 

    elem.css({top: offset.top, left: offset.left}); 
    setTimeout(jqueryfunc, 800); 
} 

function jqueryfunc() { 
    $('#close').show(); 
    $('#box').show().animate({width: 793, left: 6}, 1000) 
      .animate({height: 446, top: 31}, 1000); 

} 

$(function() { 
    $('#close').click(function() { 
     var box = $('#box'), 
      ileft = box.css("left"), 
      itop = box.css("top"); 
     $('#close').hide(); 
      box.animate({width: 157, left: ileft}, 1000) 
       .animate({height: 110, top: itop}, 1000) 
       .fadeOut('slow'); 
    }); 
});​ 

這一點兒也不看起來像你在任何地方調用box()函數?

+0

我需要盒子回到它擴展的位置,只是在相同的位置去更小的尺寸.. – sagar

+0

我有一種感覺,他正在從一個點擊事件或類似的事件中調用box函數,這會在代碼中綁定n + 1個相同的事件給#close。這將解決這個問題,我想以及...可能需要更多的代碼從操作 –

+0

框函數被稱爲,一旦你點擊圖像,與圖像div的ID,給出相同的大小和位置的出現div ,然後它從它擴展.. – sagar