使用 css 动画更改悬停时的圆形背景

Posted

技术标签:

【中文标题】使用 css 动画更改悬停时的圆形背景【英文标题】:Change circle background on hover using css animation 【发布时间】:2017-09-01 10:00:53 【问题描述】:

我有一个圆圈,它的背景颜色设置为红色,我想使用 css 动画更改悬停时的背景,我该怎么做? 这是我的代码:

.circle
  background-color: red;
  border-radius: 50px;
  height: 100px;
  width: 100px;
  
<html>
<body>
<div class="circle"></div>
</body>
</html>

【问题讨论】:

在答案部分查看我的 js fiddle。希望对你有帮助。 到目前为止你尝试过什么?请展示您的努力并突出您遇到的问题。 @stephjhonny 选择正确答案。 【参考方案1】:

要使用 css 动画更改颜色,请尝试使用以下代码。

.circle 
 
 border-radius: 50px;
 height: 100px;
 width: 100px;
 background: linear-gradient(to right, blue 50%, red 50%);
 background-size: 200% 100%;
 background-position: right bottom;
 transition: all 2s ease;
 

 .circle:hover 
  background-position: left bottom;
   
&lt;div class="circle"&gt;&lt;/div&gt;

【讨论】:

【参考方案2】:

HTML

<div class="circle"></div>

CSS

.circle 
  background-color: red;
  border-radius: 50px;
  height: 100px;
  width: 100px;
  position: relative;
  overflow: hidden;

.circle:after 
  width: 0;
  height: 100%;
  position: absolute;
  left: 0;
  transition: all ease 0.5s;
  content: "";
  background-color: blue;

.circle:hover:after 
  width: 100%;
  transition: all ease 0.5s;

希望这能解决问题。

https://jsfiddle.net/Lijin/06cwf3wq/2/

【讨论】:

【参考方案3】:

.circle
  background-color: red;
  border-radius: 50px;
  height: 100px;
  width: 100px;
  
.circle:hover
      background-color: green;
       transition: all 0.5s ease;
 

background-position: left bottom;
  
<html>
<body>
<div class="circle"></div>
</body>
</html>

【讨论】:

以上是关于使用 css 动画更改悬停时的圆形背景的主要内容,如果未能解决你的问题,请参考以下文章

更改链接悬停时的背景图像

jQuery在悬停时更改(带有淡入淡出动画)div的背景图像

使用 Timer JQuery 更改背景颜色 CSS

如何使用 css3 动画更改背景位置?

jQuery 更改 CSS 背景位置和鼠标悬停/鼠标移出

如何在单击功能中使用动画更改元素的背景颜色? [复制]