移动端 hover 问题处理

在移动端和PC端公用一套样式时, 移动端中 hover 特性, 如果滑动时稍微触碰了下,会导致一直 hover 高亮状态, 需要点击空白地方才能恢复原状。如果PC和移动端公用一套样式, 那就需要分开处理。

移动端 hover 高亮状态的处理, 有些是在 body 上绑定一个空的 touchstart 事件, 但是很多手机还是会存在问题, 一样会一直保持 hover 状态。

document.body.addEventListener('touchstart', () => {}, false);

最好的方式还是通过媒体标签处理, pc 端正常显示 hover 状态, 移动端禁用该状态。如下所示:

css 写法, 使用较繁琐:
@media (any-hover: hover) {
  .test-li {
    color: red;
  }
}
less写法:
// 定义混入类
.pc-hover(@rules) {
  @media (any-hover: hover) {
    @rules();
  }
}

// 使用时, 比如 sort-link 类需要加上 hover 效果
.pc-hover({
    .sort-link:hover {
      transform: scale(1.05);
    }
  }
);

// 或者如下方式均可
.sort-link:hover {
  .pc-hover({
      transform: scale(1.05);
    }
  );
}
sass写法:
// 定义混入方法
@mixin pc-hover {
  @media (any-hover: hover) {
    @content;
  }
}

// 使用时
@include pc-hover {
  .grid-item-content:hover {
    transform: scale(1.009);
    font-size: 14px;
  }
}

本文转载至 hover 问题处理, https://www.nqone.com/router/d…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值