Переместить изображение по горизонтали в левую сторону с помощью jquery

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть простая HTML-страница с 3 изображениями внутри панели инструментов div. Где изображение размещается в правом конце панели инструментов. При нажатии на любое изображение я хочу переместить его в левый конец. Остальные 2 изображения расположите в крайнем правом углу.

Вот мой html

 <div id="toolbar" align="right">
    <img id="home" src="home.png" alt="image"/>
    <img id="learn" src="learn.png" alt="image"/>
    <img id="gallery" src="gallery.png" alt="image"/>       
</div>
  

Вот мой css

 #toolbar{
    position: relative;
    margin: 0 auto;
    width: 1257px;
    height: 60px;
    border:1px solid #000000;
}
  

Вот что я получил после обращения к ответам Питера и Абдуллы

  $('#toolbar img').click(function(e){
  if(e.target.id=="home")
      {
        $("#home").css({'float':'left','margin':'0px'});
        $("#learn").css({'float':'right','margin':'0px'});
        $("#gallery").css({'float':'right','margin':'0px'});
      }
  if(e.target.id=="learn")
  {
    $("#home").css({'float':'right','margin':'0px'});
    $("#learn").css({'float':'left','margin':'0px'});
    $("#gallery").css({'float':'right','margin':'0px'});
  }
  if(e.target.id=="gallery")
  {
    $("#home").css({'float':'right','margin':'0px'});
    $("#learn").css({'float':'right','margin':'0px'});
    $("#gallery").css({'float':'left','margin':'0px'});
  }
});
  

но они работают без какой-либо анимации, мало помогают с некоторыми слайдами или анимацией перемещения в приведенном выше коде. Спасибо 🙂

Ответ №1:

Я знаю, что вы отметили его как ответ, но вот скрипт вместе с css, чтобы сделать то же самое, но с анимацией

редактировать: вот ссылка на jsfiddle с кодом в действии

 #toolbar{
    position: relative;
    text-align:right;
    margin: 0 auto;
    width: 1257px;
    height: 60px;
    border:1px solid #000000;
}

#toolbar img{
    position:absolute;
}

    var movedImg;
positionImages();
function positionImages(){
    var rightPos = 0;
    $("#toolbar img").each(function(){
        $(this).css("right", rightPos);
        rightPos  = $(this).width()   5;
    });
}

$("#toolbar img").click(function() {
    if(movedImg){
        var rightPos = parseInt($(this).css("right"));
        movedImg.animate({"right" : rightPos}, "slow");
    }
    $(this).css("left","0");
    $(this).animate({"right" : " =100%"}, "slow");
    movedImg = $(this);
});
  

Комментарии:

1. О! Спасибо. Отлично, это работает идеально. Я думаю, что должен отдать его вам.

Ответ №2:

Вы можете анимировать изменения в CSS-коде с помощью animate() функции jQuery. Это включает в себя изменения положения, непрозрачности, цвета и т.д.

http://api.jquery.com/animate/

Ответ №3:

ПРИВЕТ, приятель, попробуй это, это поможет

 $('#toolbar img').click(function(e){
   $(e.target).css({'float':'left','margin':'5px'});
});
  

Комментарии:

1. Спасибо 🙂 казалось, это сработало, небольшая модификация ‘margin’: ‘0px’ сработала, но теперь я также хочу, чтобы самое левое изображение перемещалось обратно в правый конец при нажатии на любое другое изображение.

2. Взгляните на измененный код, я его доработал. Однако нужна еще 1 помощь.

3. Йоаким полностью ответил на мой вопрос. Итак, я пометил его как правильный ответ, все равно спасибо 🙂