2017-02-15 4 views
1

У меня есть следующий сценарий, где пользователь должен навести курсор на изображение, а затем изображение будет повернуто.Вращение изображения при наведении на него

$("#alcazar-image").rotate({ 
 
    bind: 
 
    { 
 
    mouseover : function() { 
 
    $(this).rotate({animateTo:180}) 
 
    }, 
 
    mouseout : function() { 
 
    $(this).rotate({animateTo:0}) 
 
    } 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://jqueryrotate.com/js/jQueryRotateCompressed.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row"> 
 
      <div class="media"> 
 
      <div class="media-left media-middle"> 
 
       <a href="#"> 
 
        <img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar"> 
 
       </a> 
 
      </div> 
 
      <div class="media-body"> 
 
       <div class="media-heading"><h3>Alcazar Park</h3></div> 
 
       <p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
       <p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More&raquo;</a></p> 
 
      </div> 
 
       
 
      </div> 
 
    </div>

Однако эффект зависания не работает. Есть идеи?

Thanks,

Theo.

+0

для чего вам нужен js. Вы можете сделать это с помощью css также –

+0

Я знаю, но я хочу улучшить свои навыки jquery. – Theo

+0

Кажется работать после того, как я добавил jquery к вашему фрагменту –

ответ

1

Все хорошо, кроме вас забыл включить JQuery и JQuery-Rotate плагин в фрагменте кода, попробуйте играть с ниже это код:

$("#alcazar-image").rotate({ 
 
    bind: { 
 
    mouseover: function() { 
 
     $(this).rotate({ 
 
     animateTo: 180 
 
     }) 
 
    }, 
 
    mouseout: function() { 
 
     $(this).rotate({ 
 
     animateTo: 0 
 
     }) 
 
    } 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://rawgit.com/wilq32/jqueryrotate/master/jQueryRotate.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet" /> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row"> 
 
    <div class="media"> 
 
    <div class="media-left media-middle"> 
 
     <a href="#"> 
 
     <img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar"> 
 
     </a> 
 
    </div> 
 
    <div class="media-body"> 
 
     <div class="media-heading"> 
 
     <h3>Alcazar Park</h3> 
 
     </div> 
 
     <p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
 
     dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     <p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More&raquo;</a> 
 
     </p> 
 
    </div> 
 

 
    </div> 
 
</div>

+1

Рад это услышать. И нет, вы не можете принять все ответы здесь. Просто выберите ответ, который действительно отвечает на ваш вопрос и решает проблемы :). Как позже, другие программисты будут ссылаться на него, когда нашли его полезным –

3

Вам не нужно использовать JavaScript или jquery для достижения того, что вы пытаетесь сделать здесь.

Простой css transform: rotate должен выполнить эту работу за вас.

img:hover { 
 
    transform: rotate(720deg); 
 
    -ms-transform: rotate(720deg); 
 
    -webkit-transform: rotate(720deg); 
 
    transition: all 1s; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://jqueryrotate.com/js/jQueryRotateCompressed.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet" /> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9 center-block" id="alcazar-row"> 
 
    <div class="media"> 
 
    <div class="media-left media-middle"> 
 
     <a href="#"> 
 
     <img src="http://www.theo-android.co.uk/github-images/alcazar.png" class="media-object img-thumbnail" id="alcazar-image" alt="alcazar"> 
 
     </a> 
 
    </div> 
 
    <div class="media-body"> 
 
     <div class="media-heading"> 
 
     <h3>Alcazar Park</h3> 
 
     </div> 
 
     <p style="font-size:20px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure 
 
     dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     <p style="text-align:left"><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#alcazarModal"> More&raquo;</a> 
 
     </p> 
 
    </div> 
 

 
    </div> 
 
</div>

2

Вы можете сделать это в CSS.

img{ 
    -webkit-transition: -webkit-transform .8s ease-in-out; 
    -ms-transition: -ms-transform .8s ease-in-out; 
    transition: transform .8s ease-in-out; 


} 
img:hover{ 
    transform:rotate(360deg); 
    -ms-transform:rotate(360deg); 
    -webkit-transform:rotate(360deg); 
} 
1

просто заменить JQuery с этим ::

$("#alcazar-image").mouseover(function() { 
    $(this).css('transform', 'rotate(180deg)'); 
    $(this).css('-ms-transform', 'rotate(180deg)'); /* IE 9 */ 
    $(this).css('-webkit-transform', 'rotate(180deg)'); /* Chrome, Safari, Opera */ 
}).mouseout(function() { 
    $(this).css('transform', 'rotate(0deg)'); 
    $(this).css('-ms-transform', 'rotate(0deg)'); /* IE 9 */ 
    $(this).css('-webkit-transform', 'rotate(0deg)'); /* Chrome, Safari, Opera */ 
}); 

Будет работать перформанс во всех браузерах.