html - 如何在线性过渡时保持 div 前半部分的不透明度?

标签 html css

我想在 div 上保留部分不透明度,我的意思是随着过渡的进行,div 的第一部分具有初始不透明度,而 div 的末尾具有最终颜色。

这是我目前所拥有的:

div {
  width: 100px;
  height: 100px;
  background: #ffd42b;
  -webkit-transition: width 2s; /* Safari */
  opacity: 0.1;
  transition: all 15s linear 0.2s;
  transition-timing-function: ease;
}

div:hover {
  width: 300px;
  opacity: 1;
}
<div></div>

最佳答案

可以考虑mask去做这个。这个想法是定义两个蒙版:一个将保持固定并定义不应更改的初始不透明度,另一个将从下到上设置动画以模拟右侧部分的不透明度过渡。

.box {
  width: 100px;
  height: 100px;
  background: url(https://picsum.photos/id/103/300/100);
  -webkit-mask:
    linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3)) 0 0       /100px 100% no-repeat,
    linear-gradient(rgba(0,0,0,1)  ,rgba(0,0,0,0)  ) 100px 100%/100%  600% no-repeat;
   mask:
    linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3)) 0 0       /100px 100% no-repeat,
    linear-gradient(rgba(0,0,0,1)  ,rgba(0,0,0,0)  ) 100px 100%/100%  600% no-repeat;
  transition: all 1s linear;
}

.box:hover {
  width: 300px;
  -webkit-mask-position:0 0,100px 0%;
  mask-position:0 0,100px 0%;
}

body {
 background:pink;
}
<div class="box">

</div>

关于html - 如何在线性过渡时保持 div 前半部分的不透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493200/

相关文章:

html - 简单的 CSS。水平菜单在位置 : fixed 时不保持其长度

html - 输入类型 ="email"的约束验证 API?

html - 如何将 scrollpan 指向底部的模式

html - 如何将下拉菜单,菜单向左移动?

javascript - 如何拖放数组

html - 使 2 个 DIV 并排具有相同的高度和移动响应

javascript - 损坏的代码 -- 如何正确使用 AJAX 来阻止加载网站的这一部分?

jquery - 使用 jQuery 更改图像?

javascript - 更改可扩展 View 中的图标

css - 为什么 Font Awesome 在我的 Shadow DOM 中不起作用?