鼠标悬停在背景图像上的过渡

Posted

技术标签:

【中文标题】鼠标悬停在背景图像上的过渡【英文标题】:Transition on background image on mouse over 【发布时间】:2017-12-15 09:50:18 【问题描述】:

我想在我的链接背景上实现一个简单的过渡,即图像,这样当我悬停它时,背景图像应该会旋转一点。

这是我有的,但它不起作用:

<div class="vegetable"><a href="#">link</a></div>

.vegetable a 
    background: url(../img/icons/carrot.png) no-repeat ;
    padding-left: 40px;
    color: #fff;
    font-size: 2em;
    line-height: 42px;
    background-size: 32px;
    width: auto;

    /* Firefox */
    -moz-transition: all 1s ease;
    /* WebKit */
    -webkit-transition: all 1s ease;
    /* Opera */
    -o-transition: all 1s ease;
    /* Standard */
    transition: all 1s ease;



.vegetable a:hover 

    /* Firefox */
    -moz-transform: scale(1.1) rotate(30deg) translate(-5px);
    /* WebKit */
    -webkit-transform: scale(1.1) rotate(30deg) translate(-5px);
    /* Opera */
    -o-transform: scale(1.1) rotate(30deg) translate(-5px);
    /* Standard */
    transform: scale(1.1) rotate(30deg) translate(-5px);

【问题讨论】:

我们可以有 html 我已经更新了,希望对你有帮助 先生,请检查您所需的answer here 【参考方案1】:

为了得到你想要的结果,你需要使用伪元素作为背景和旋转,这样你就不会影响链接

见 sn-p:

.vegetable a 
  padding: 40px;
  color: #fff;
  font-size: 2em;
  line-height: 42px;
  background-size: 32px;
  width: auto;
  position:relative;
  display:inline-block;
  overflow:hidden;


.vegetable a:after 
  content:'';
  background: url(https://www.w3schools.com/css/img_fjords.jpg) no-repeat;
  background-size: cover;
  /* Standard */
  transition: all 1s ease;
  display:inline-block;
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  z-index:-1;
  



.vegetable a:hover:after 
  /* Standard */
  transform: scale(1.1) rotate(30deg) translate(-5px);
&lt;div class="vegetable"&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/div&gt;

【讨论】:

很奇怪为什么它不能与我的背景图片一起使用 @AndrewS rotate() 旋转整个元素,而不是背景,没有css属性只旋转背景。

以上是关于鼠标悬停在背景图像上的过渡的主要内容,如果未能解决你的问题,请参考以下文章

悬停元素时更改背景

悬停和鼠标速度上的颜色过渡问题

快速鼠标悬停/鼠标悬停的完整悬停动画持续时间?

CSS如何在悬停时从白色过渡到背景

如何通过jQuery停止鼠标离开太快而缩短背景图像过渡

JavaFX 过渡 - 悬停时变暗按钮