使用 CSS 悬停就地旋转 div

Posted

技术标签:

【中文标题】使用 CSS 悬停就地旋转 div【英文标题】:In place rotate a div with CSS hover 【发布时间】:2018-08-06 13:54:33 【问题描述】:

我想旋转 .profile__photo--border-2 div,但它一直在平移。而且它根本不旋转。

这是代码。

也许我做错了什么。

JSfiddle code

  &__photo 
    position: relative;
    z-index: 3;

    &--border-1, 
    &--border-2 

      position: absolute;
      height: 110px;
      width: 110px;

      top: 48%;
      left: 50%;
      transform: translate(-50%, -50%);
      cursor: pointer;
      border-radius: 50%;
      border-width: 1px;
      border-style: solid;
      border-color: rgb(37, 184, 184) rgb(37, 184, 184) rgb(37, 184, 184) transparent;
      transition: all 1.5s ease-in-out;

    

    &--border-2 
      height: 120px;
      width: 120px;
      border-color:rgb(37, 184, 184) transparent rgb(37, 184, 184) rgb(37, 184, 184);
    


    &--border-2:hover 
      /* Something wrong going on here */
      width: 120px;
      height: 120px;
      transform-origin: 0 0;
      transform: rotateZ(360deg);
    
    & img 
      height: 100px;
      width: 100px;
      border-radius: 50%;
      z-index: 3;
    
  

那里。

【问题讨论】:

能否提供一些代码 sn-p 以便我们为您提供帮助 欢迎来到 Stack Overflow!寻求调试帮助的问题应包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example. Spin or rotate an image on hover的可能重复 上面有一个jsfiddle链接。 【参考方案1】:

你错过了一些东西。

http://jsfiddle.net/Lpavdvko/

&--border-1, 
&--border-2 

  position: absolute;
  height: 110px;
  width: 110px;

  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(0); <---- new rotate
  cursor: pointer;
  border-radius: 50%;
  border-width: 1px;
  border-style: solid;
  border-color: rgb(37, 184, 184) rgb(37, 184, 184) rgb(37, 184, 184) transparent;
  transition: all 1.5s ease-in-out;



&--border-2:hover 
  /* Something wrong going on here */
  transform-origin: 50% 50%; <---- guessing you want to rotate in the center
  transform: translate(-50%, -50%) rotate(360deg) ; <------ needed to maintain translation

【讨论】:

感谢您的宝贵时间和帮助。这解决了它。该死的 transform-origin 属性。 @r_andrini 如有疑问,只需应用所有内容,即使看起来多余。

以上是关于使用 CSS 悬停就地旋转 div的主要内容,如果未能解决你的问题,请参考以下文章

CSS 动画 - 每次悬停时进一步旋转 45 度

使用变换时,悬停时的 CSS 动画停留在最后一个关键帧:旋转

如何使图像在悬停css上旋转

在悬停时显示一个 DIV,但在另一个悬停的 DIV 内。使用 CSS

悬停文本使 Div 更改颜色 - CSS

用css悬停旋转圆圈[重复]