2013-05-15 46 views
1

我想创建一个效果,当点击一个链接时,页面上的div向左滑动,链接的div从左侧滑入,如:http://templates.entheosweb.com/template_number/live_demo.asp?TemplateID=38272Slide Div In同时

任何人都可以帮助我吗?

+2

你有没有尝试过的东西或者仍然一无所获? –

+1

得到这个小提琴:http://jsfiddle.net/ykbgT/538/.... – user2346047

+0

然后是什么问题?似乎工作如上所述... – Duffmaster33

回答

3

正如@SeaMirra所说,尝试使用.animate()的回调函数。 检查此琴:http://jsfiddle.net/ykbgT/5677/

$('.button a').click(function(e) { 
    e.preventDefault(); 
    var tg = $(this).attr('href'); 
    tg = tg.substr(1, tg.length); /* Get the target ID */ 
    $('.current').animate({'left' : '-50%'}, 500, function(){ 
     $('.current').removeClass('current'); 
     $('#' + tg).addClass('current').animate({'left' : '50%'}, 500); 
    }); 
}); 
+0

对不起,带substr的部分在这种情况下绝对是无稽之谈,因为有单独的ID(我习惯在有其他事情的情况下使用它)。所以这是更好的:http://jsfiddle.net/ykbgT/5680/。但动画部分是相同的:) – Seer

+1

多数民众赞成在完美!!!!!非常感谢.... – user2346047

1

jquery的动画函数应该做你所需要的。您可以使用它将css“左”属性从负(隐藏)值设置为正(可见)值。

http://jsfiddle.net/xPEP2/

$('something').click(function() { 
    $('div').animate({ 
    left: 0, 
    }, 1000, function() { 
    // Animation complete. 
    }); 
}); 

祝您好运!

+1

@Seer给出了一个令人难以置信的详细答案和小提琴,赞美,似乎他/他为你做了大部分工作:) – SeaMirra

2

,如果你改变你的HTML以下(移动类锚,并给予他们实际的href - 可访问性帮助,并会跳转用户无需JS正确的区域):

<div><a href="#box1" class="button">Click Box #1</a> </div> 
<div><a href="#box2" class="button">Click Box #2</a> </div> 
<div><a href="#box3" class="button">Click Box #3</a> </div> 
<div><a href="#box4" class="button">Click Box #4</a> </div> 

<div id="container"> 
    <div id="box1" class="box">Box #1</div> 
    <div id="box2" class="box">Box #2</div> 
    <div id="box3" class="box">Box #3</div> 
    <div id="box4" class="box">Box #4</div> 
</div> 

您可以使用下面的JS:

var boxes = $('.box'), 
    currentBox = 1; 

$('.button').click(function(e) { 
    e.preventDefault(); 
    var box = $($(this).attr('href')); 
    if (box.css("left") == "150%") { 
     $('#box' + currentBox).stop().animate({left: '150%',}, 500); 
     box.stop().animate({left: '50%',}, 500); 
     currentBox = boxes.index(box) + 1; 
    } 
}); 

http://jsfiddle.net/ykbgT/5678/

或使用类:

http://jsfiddle.net/ykbgT/5681/