css 控制渐入渐出

此博客主要围绕CSS控制渐入渐出展开。CSS在前端页面元素效果呈现上作用显著,通过特定属性和规则,能实现元素的渐入渐出效果,增强页面的视觉体验和交互性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  <div id="div1" >
    {{hint}}
  </div>
#div1 {
  position: fixed;
  left: 35%;
  top: 32%;
  width: 95px;
  height: 70px;
  background: rgb(221, 221, 221);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 40px;
  font-weight: 700;
  color: rgb(136, 136, 136);
  opacity: 0;
  border-radius: 10px;
}

.play-first {
  animation: myfirst 1.5s ;
}
.play-second {
  animation: mysecond 1.5s ;
}

@keyframes myfirst
{
  0%   {opacity:0;}
  40%  {opacity:0.75;}
  100% {opacity:0;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
  0%   {opacity:0;}
  40%  {opacity:0.75;}
  100% {opacity:0;}
}

@keyframes mysecond
{
  0%   {opacity:0;}
  40%  {opacity:0.75;}
  100% {opacity:0;}
}

@-webkit-keyframes mysecond /* Safari and Chrome */
{
  0%   {opacity:0;}
  40%  {opacity:0.75;}
  100% {opacity:0;}
}
   var oDiv=document.getElementById("div1");
   if (oDiv.classList.contains('play-first')) {
       oDiv.className = 'play-second';
   } else {
       oDiv.className = 'play-first';
   }
### 实现CSS渐入效果 为了实现元素的淡入淡效果而不依赖 `animation` 或 `@keyframes` 属性,可以利用 CSS 的过渡 (`transition`) 特性。通过设置透明度 (`opacity`) 和可见性 (`visibility`) 结合使用,可以在不影响页面布局的情况下平滑地改变元素的状态。 #### 利用 Transition 进行淡入淡 当希望某个元素在特定事件触发时(比如鼠标悬停、点击或其他交互行为),能够逐变得可见或不可见,则可以通过修改其样式中的 `opacity` 值并应用 `transition` 来达到这一目的: ```css .fade { opacity: 0; transition: opacity .5s ease-in-out; } /* 当需要展示该元素 */ .show-fade { opacity: 1; } ``` 上述代码片段展示了如何定义一个类 `.fade` ,它初始状态下完全透明,并设置了持续时间为半秒的线性和缓动函数之间的转换过程;而另一个类 `.show-fade` 将使对象变为全不透明状态[^4]。 #### 不影响布局结构的变化 如果只更改 `opacity` 可能会遇到一个问题——即使元素已经“消失”,仍然占据着空间。为了避免这种情况发生,还可以配合 `visibility` 属性一起工作: ```css .hidden-element { visibility: hidden; opacity: 0; transition: visibility 0s, opacity 0.5s linear; } .visible-element { visibility: visible; opacity: 1; } ``` 这里不仅改变了 `opacity` 而且也控制了 `visibility` 。注意这里的技巧在于先让 `visibility` 发生瞬时间变化 (即没有延迟),接着才是缓慢增加/减少 `opacity` 的值[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值