2016-10-27 5 views
0

Просто нужна небольшая помощь. Я хочу анимировать ниже окна, чтобы реагировать на размер страницы, используя (window) .width(); и (window) .height(); Где я должен реализовать (окно) .width & функция высоты? Вот то, что я сделал до сих пор:Анимация Div с отзывчивостью

Код:

$(document).ready(function(){ 
      $(".box").click(function(){ 

       run(); 

      }); 
     }); 

     function run(){ 
      var duration=1000; 
      var width=$(window).width(); 
      var height=$(window).height(); 
      $(".box").animate({"marginLeft":"1000px"},duration,function(){ 
       $(this).animate({"marginTop":"600px"},duration,function(){ 
        $(this).animate({"marginLeft":"0px"},duration,function(){ 
         $(this).animate({"marginTop":"0px"},duration,function(){ 
          run(); 


         }); 
        }); 
       }); 
      }); 

     } 

CSS:

.box{border:1px solid black; width:200px; height:200px; float:left;} 
+0

применить «переход: все 0.8s легкость;» влияние на ваш css – prasanth

+0

@prasad Нет необходимости, потому что он использует анимацию из jquery –

+0

Я ищу div для перемещения в зависимости от размера страницы, поэтому, если i минимизируйте страницу, чтобы сказать ширину 600 пикселей и 200 высот, затем она будет анимирована для этих размеров. –

ответ

1

Вам просто нужно использовать ширину окна и высоту, липкость из высоты и ширины коробка как это:

$(document).ready(function() { 
 
    $(".box").click(function() { 
 

 
    run(); 
 

 
    }); 
 
}); 
 

 
function run() { 
 
    var duration = 1000; 
 
    var width = $(window).width(); 
 
    var height = $(window).height(); 
 
    $(".box").animate({ 
 
    "marginLeft": width - 200 //<----- 
 
    }, duration, function() { 
 
    $(this).animate({ 
 
     "marginTop": height - 200 //<----- 
 
    }, duration, function() { 
 
     $(this).animate({ 
 
     "marginLeft": "0px" 
 
     }, duration, function() { 
 
     $(this).animate({ 
 
      "marginTop": "0px" 
 
     }, duration, function() { 
 
      run(); 
 

 

 
     }); 
 
     }); 
 
    }); 
 
    }); 
 

 
}
.box { 
 
    border: 1px solid black; 
 
    width: 200px; 
 
    height: 200px; 
 
    float: left; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="box"> 
 

 
</div>

+0

Таким образом, ширина работала в ответ на размер страницы, хотя ящик несколько раз торчал из страницы, но высота не изменилась? EDIT: firefox не работает с .height(); по какой-то причине, хром работал, хотя, тем не менее, коробка имеет около 10 пикселей самого себя за пределами текущего размера страницы. –

+0

Вы можете просто отрегулировать число, вычитаемое из ширины, чтобы оно не болело. Затем, когда вы изменяете размер окна, он будет выполнять одну итерацию анимации для регулировки ширины и высоты. Вы можете решить его, установив для $ (windows) .resize(). – Zorken17

+0

хорошо, я только что настроил «-210», и он отлично анимирован. Спасибо за помощь! –

Смежные вопросы