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

能否结合@media查询实现JS动画滑动门的响应式宽度适配?

完全可以实现,不需要大幅修改现有代码,仅需调整少量CSS和JS代码即可,具体修改方案如下:

实现逻辑

通过CSS原生媒体查询做响应式判断,将滑动动画从JS驱动改为CSS transition驱动,仅修改样式定义和极少量JS逻辑,原有页面结构、交互逻辑完全保留。

CSS修改

在原有CSS末尾新增以下代码即可:

/* 开启CSS过渡动画,替代原JS animate效果,动画时长可自行调整 */
#left-door {
  transition: right 0.3s ease;
}
/* 小屏及默认状态下打开时的位置 */
#left-door.isOpen {
  right: 0;
}

/* 屏幕宽度≥1024px时的适配样式 */
@media (min-width: 1024px) {
  #left-door {
    /* 宽度为屏幕宽度的33% */
    width: 33vw;
    /* 关闭时露出60px触发区域,和小屏交互体验保持一致 */
    right: calc(-33vw + 60px);
  }
  /* 适配滑动门动态宽度,避免内部内容溢出 */
  #left-door p2 {
    width: calc(100% - 70px);
  }
}

JS修改

将原有JS代码替换为以下代码,仅保留类切换逻辑,动画交给CSS处理即可:

$("#left-door").click(function(){
  $(this).toggleClass("isOpen");
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:03