html文字抖动效果,CSS过渡效果导致文字模糊或抖动?

直接上gif图吧:

bVN7pw?w=720&h=320

代码:

模版:

CSS:

.toggle-enter-active,

.toggle-leave-active{

transition: transform .3s cubic-bezier(.23, 1, .23, 1), opacity .3s cubic-bezier(.23, 1, .23, 1);

transform-origin: center top;

}

.toggle-enter,

.toggle-leave-active{

transform: translateZ(0) scaleY(0);

opacity: 0;

}

.dropdown{

position: relative;

width: 100%;

&.open{

border-color: #57a3f1;

.dropdown-icon{

transform: translateZ(0) rotate(180deg);

}

}

&-icon{

position: absolute;

top: 13px;

right: 10px;

font-size: 12px;

color: #d3d3d3;

transition: transform linear .2s;

/*backface-visibility: hidden;*/

}

}

去掉了一些不相关的样式,现在已知的情况是在Chrome中下拉框右侧小三角的过渡效果导致文字模糊和抖动的,如果给加上backface-visibility: hidden;,文字不会抖动,但是依然模糊。在Firefox下文字会有看似一像素的加粗,不过我觉得可以接受了,反而是IE9下不会有这种问题。。求大神指导!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在使用 CSS 过渡效果时遇到了点击后元素一直抖动的问题,可能是由于触发了多次过渡效果导致的。有两种方法可以解决这个问题: 1. 禁用元素的交互效果 您可以在触发过渡效果时,使用 CSS 的 `pointer-events` 属性将元素的交互效果禁用。这样可以确保元素在过渡期间不会被重复点击,从而避免出现抖动的问题。例如: ```css .element { pointer-events: none; transition: all 0.3s ease; } ``` 在 JavaScript 中触发过渡效果时,可以先将 `pointer-events` 属性设置为 `none`,等过渡效果结束后再将其设置回默认值,如下所示: ```javascript const element = document.querySelector('.element'); element.style.pointerEvents = 'none'; setTimeout(() => { element.style.pointerEvents = 'auto'; }, 300); ``` 在这个例子中,我们将 `pointer-events` 属性设置为 `none`,并使用 `setTimeout` 函数在过渡效果结束后将其设置回默认值。 2. 防止重复触发过渡效果 另一种方法是在 JavaScript 中防止重复触发过渡效果。您可以使用一个变量来记录过渡效果是否已经触发,避免在过渡期间重复触发过渡效果。例如: ```javascript let isTransitioning = false; const element = document.querySelector('.element'); element.addEventListener('click', () => { if (!isTransitioning) { isTransitioning = true; element.classList.add('transition'); setTimeout(() => { element.classList.remove('transition'); isTransitioning = false; }, 300); } }); ``` 在这个例子中,我们使用一个名为 `isTransitioning` 的变量来记录过渡效果是否已经触发。在点击事件中,如果 `isTransitioning` 为 `false`,则表示可以触发过渡效果。我们将 `isTransitioning` 设置为 `true`,并在元素上添加过渡效果CSS 类名(例如 `transition`)。然后使用 `setTimeout` 函数在过渡效果结束后再将其移除,并将 `isTransitioning` 设置为 `false`,以便下一次触发过渡效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值