You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将jQuery的.animate()与.css()代码转换为原生JavaScript?

原生JavaScript实现jQuery的定位设置与动画效果

原jQuery代码实现了两个核心功能:先给所有.box元素设置初始left定位值,再以300毫秒的时长将left属性动画过渡到目标值。以下是对应的原生JavaScript实现:

方法一:使用原生Web Animations API(推荐)

这个方法最接近jQuery的animate()逻辑,语法简洁且原生支持动画控制:

const boxWidth = 200;
// 获取页面中所有.box元素
const boxes = document.querySelectorAll('.box');

boxes.forEach(box => {
  // 设置初始left位置
  box.style.left = `${boxWidth * 2}px`;
  
  // 执行left属性的过渡动画
  box.animate(
    [{ left: `${boxWidth}px` }],
    {
      duration: 300, // 动画时长(毫秒)
      fill: 'forwards' // 动画结束后保持最终状态
    }
  );
});

方法二:使用CSS Transition

如果需要兼容更旧的浏览器,也可以通过CSS过渡属性实现:

const boxWidth = 200;
const boxes = document.querySelectorAll('.box');

boxes.forEach(box => {
  // 提前设置过渡规则
  box.style.transition = 'left 300ms ease';
  // 设置初始定位
  box.style.left = `${boxWidth * 2}px`;
  
  // 触发浏览器重绘,避免样式修改被合并导致动画不触发
  void box.offsetWidth;
  
  // 修改left值,触发过渡动画
  box.style.left = `${boxWidth}px`;
});

注意事项

  • .box元素必须设置position: relative/absolute/fixed定位,否则left属性不会生效,这一点和jQuery的要求一致。

内容的提问来源于stack exchange,提问作者user19540948

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:24:26