动画一个div,也让它滑落

时间:2011-06-21 21:11:44

标签: jquery jquery-animate slidedown

成为新的jQuery我无法将代码组合起来,从左侧到右侧有一个div动画然后滑动。在滑行之前div的高度约为10px,然后滑到它的全高351px。 我可以设法单独做以上但不合并!!请多谢一点指导,谢谢。 这是我目前的代码;

$.hideAllExcept = function(tabs,boxes){
function init() {

  // make it bookmarkable/refreshable. but, no history.
  var hash = window.location.hash;
  (!hash) ? hideShow('#' + $(boxes+':first').attr('id')) : hideShow(window.location.hash);

  // add click handler.

  $(tabs).click(function(e) {
    e.preventDefault();
    var href = $(this).attr('href');
    // add back the hash which is prevented by e.preventDefault()
    window.location.hash = href;
    hideShow(href);
  });
}

function hideShow(el) {


    $(boxes).animate({"left": "-650px"}, "slow");
     $(el).fadeIn('slow').animate({"left" : "60%",height:"351" }, 1000);

$(tabs).removeClass('active');
      $('a[href="' + el + '"]').addClass('active');
    }
    init();

};

取得了一些进步!! 我已经在临时服务器上运行了它:

http://www.tridentsolutions.co.nz/test-folder/index.html#construction_home

但是我无法获得返回LHS的方框也看到文本是如何可见的,因为文本在html中而不是div中的图像,这是否意味着我无法隐藏文本? 提前致谢

(function($){

$.hideAllExcept = function(tabs,boxes){
    function init() {

      // make it bookmarkable/refreshable. but, no history.
      var hash = window.location.hash;
      (!hash) ? hideShow('#' + $(boxes+':first').attr('id')) : hideShow(window.location.hash);

      // add click handler.

      $(tabs).click(function(e) {
        e.preventDefault();
        var href = $(this).attr('href');
        // add back the hash which is prevented by e.preventDefault()
        window.location.hash = href;
        hideShow(href);
      });
    }

 function hideShow(el) {

     $(el).animate({"left": "-650px"}, "slow").fadeIn('slow');
    $(el).fadeIn('slow').animate({"left" : "60%" }, 1000).animate({"height" : "351" }, 1000);


$(tabs).removeClass('active');
      $('a[href="' + el + '"]').addClass('active');
    }
    init();

};

2 个答案:

答案 0 :(得分:0)

您是否尝试将两种效果链接在一起?将它们分成两个animate()函数,然后按照你想要的顺序链接它们:

$(el).fadeIn('slow').animate({"left" : "60%"}, 1000).animate({"height:"351" }, 1000);

每个animate()函数按顺序运行,因此您可以依次执行任意数量的效果。

答案 1 :(得分:0)

如果您希望一个动画在另一个动画完成后触发,请使用.animate的回调:

伪代码:

$(selector).animate({ key: val },
                     'slow' /*easing*/,
                      function() {
                          // second animation goes here
                     });