jquery动画留下固定加载div

时间:2013-06-16 14:39:54

标签: jquery

我知道这应该很简单,但我不知道出了什么问题。 我在左下角使用固定div来显示加载/微调div。

加载程序在显示时应从左向右滑动(最初设置为display:none;)。 在隐藏时,它应该从右向左滑动并消失。

JSFIDDLE Here

CSS

#loading span {
    float:left;
    margin-top :1px;
    margin-left :3px;
    margin-right :3px;
    line-height:16px;
    font-size:12px;
    font-family:"oswald";
}
#loading img {
    float:left;
    margin-top : 1px;
}
#loading {
    display: none;
    position: fixed;
    z-index: 1000000;
    left:0;
    top:90% !important;
    width:60px;
    height:20px;
    background: black;
    color:white;
    border: 1px solid #ddd;
}

HTML:

<button type="button" id="sh">Show!</button>
<button type="button" id="hd">Hide!</button>

<div id="loading"><span> loading </span>
    <img class="loader" src=" http://i.stack.imgur.com/FhHRx.gif" width="16" height="16" />
</div>

的javascript

// Show loading 
$('#sh').on('click', function () {
     $("#loading")
         .animate({
             left: -160
         }, {
             duration: 'slow',
             easing: 'easeOutBounce'
         })
         .animate({
             left: 0
         }, {
             duration: 'slow',
             easing: 'easeOutBounce'
         })
         .show();
 });

2 个答案:

答案 0 :(得分:1)

$('#sh').on('click', function () {
     $("#loading").toggle('Bounce');
 });

http://jsfiddle.net/wWnrS/

你也可以使用hide和show,就像那样:

$('#sh').on('click', function () {
     $("#loading").show('Bounce');
 });

答案 1 :(得分:0)

看起来您将隐藏代码和显示代码都放在show按钮的回调中。而不是

// Show loading 
$('#sh').on('click', function () {
     $("#loading")
         .animate({
         left: -160
     }, {
         duration: 'slow',
         easing: 'easeOutBounce'
     })
         .animate({
         left: 0
     }, {
         duration: 'slow',
         easing: 'easeOutBounce'
     }).show();

 });

// Hide loading 
$('#sh').on('click', function () {
  });   

你想要

// Show loading 
$('#hd').on('click', function () {
     $("#loading")
         .animate({
         left: -160
     }, {
         duration: 'slow',
         easing: 'easeOutBounce'
     })

 });

// Hide loading 
$('#sh').on('click', function () {
     $("#loading")
         .animate({
         left: 0
     }, {
         duration: 'slow',
         easing: 'easeOutBounce'
     }).show();

  });  

但是,我建议您使用.toggle()函数,而不是direction: right,因为它会简化您的代码和界面(您可能只需要一个按钮,而不是两个)。