js改善轮播图(transform)时内部文本上下闪动问题

前些天绘制轮播图时,发现轮播图中不同span标签内(样式不同)文字上下跳动。

为了防止眩晕在岗位上,需要对其进行改善,试了很多种方法,最后来总结一下:

我的轮播图template代码片段:

<div class='timer_shanxi_screen_outter'>
  <div class="timer_shanxi_screen">
      <div v-for='item,index in [...(dataChart?.dataList||[]),...(dataChart?.dataList||[])]' class='subject-card'>
          <div class='subject_index'>{{ (((index)%(dataChart.dataList.length)+1)>9?'':'0')+((index)%(dataChart.dataList.length)+1) }}</div>
          <div class='subject_number'>{{ item[0] }}</div>
          <div style='width: 150px;text-align: left;'>
              <span style='color: rgba(255, 173, 57, 1);font-size: 20px;vertical-align: middle;margin: 0 4px;'>{{ item[1] }}</span>
              <span style='position: relative; top: 2px;'>元</span>
          </div>
          <div>
              <span style='position: relative; top: 2px;'>库存</span>
              <span style='color: rgba(255, 173, 57, 1);font-size: 20px;vertical-align: middle;margin: 0 4px;'>{{ item[2] }}</span>
          </div>
      </div>
  </div>
</div>

(vue框架)data参考:

data: function () {
  return {
    // 定时器本器
    timmer: '',
    // 当前滚动top值
    currentTop: 0,
    dataChart: {
      dataList: [
        ["蛋糕","22","5件"],
        ["饼干","49","2件"],
        ["蛋挞","19","8件"],
        ["可乐","10","4件"],
        ["荔枝","5","23件"],
        ["巧克力","17","7件"],
        ["冰淇淋","9","4件"],
        ["仙人掌","22","1件"],
        ["土豆雷","3","50件"]
      ]
    }
  }
},

定时器方法参考:

this.timmer = window.setInterval(() => {
  this.currentTop-=1;
  if(document.querySelector('.timer_shanxi_screen')) {
      let timer_shanxi_screen = document.querySelector('.timer_shanxi_screen');
      let aimDomHeight = window.getComputedStyle(timer_shanxi_screen).height.split('px')[0]/2+5;
      if(aimDomHeight+this.currentTop<=0) {
          this.currentTop = 0
      }
      timer_shanxi_screen.style.transform = 'translateY('+this.currentTop+'px) translateZ(0) translate3d(0, 0, 0)';
  } else {
      window.clearInterval(this.timmer);
  }
},25)

实现方法:

1.首先将定时器外部容器添加下列属性,提升渲染的品质,以解决闪烁问题(会略降性能):

.timer_shanxi_screen_outter {
        /* 。。。*/
        position: relative;
        transform: translate3d(0, 0, 0);
        -webkit-transform-style: preserve-3d; 
        -webkit-backface-visibility: hidden; 
        -webkit-perspective: 1000; 
        
}

2.将每个滚动的元素,除了translateY变动外,再额外添加两个条件(见上面的定时器方法图):

translateZ(0) translate3d(0, 0, 0)

3.此时若内部还有标签闪动,对改标签追加下列属性,举例说明:

    .subject-card div span {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }

然后闪动的问题就应该已经得到改善了。

希望本文会对您有所帮助~ ^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372368.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DBeaver连接人大金仓数据库

人大金仓的驱动 1. 打开DBeaver软件&#xff0c;点击“数据库”&#xff0c;选择“驱动管理器” 2. 点击“新建”进行达人大金仓驱动管理器配置。 3、创建驱动-设置&#xff1a;驱动名称、类名、url 驱动名称&#xff1a;人大金仓&#xff1b; 类名&#xff1a;com.kingbas…

2024美赛数学建模A题思路分析 - 资源可用性和性别比例(2)

# 1 赛题 问题A&#xff1a;资源可用性和性别比例 虽然一些动物物种存在于通常的雄性或雌性性别之外&#xff0c;但大多数物种实质上是雄性或雌性。虽然许多物种在出生时的性别比例为1&#xff1a;1&#xff0c;但其他物种的性别比例并不均匀。这被称为适应性性别比例的变化。…

UE中对象创建方法示例和类的理解

对象创建方法示例集 创建Actor示例 //创建一个护甲道具 AProp* armor GetWorld()->SpawnActor<AProp>(pos, rotator); 创建Component示例 UCapsuleComponent* CapsuleComponent CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComponent&qu…

C++多线程学习[六]: 多线程之间的同步

一、同步问题 实际开发场景中有很多需要同步的情况&#xff0c;例如&#xff0c;音频和视频的同步输出、或者通讯能够第一时间同步接受处理… 二、多线程同步demo 可以看到cond可以阻塞等待&#xff08;wait&#xff09;可以通知一个线程(notify_one)也可以通知所有的线程&am…

Mysql的BufferPool

Mysql的BufferPool Mysql是一个存储数据到磁盘的进程&#xff0c;但是磁盘的速度难以与CPU相比&#xff0c;所以InnoDB存储引擎在处理客户端的请求时&#xff0c;当需要访问某个页的数据时&#xff0c;就会把完整的页的数据全部加载到内存中。将整个页加载到内存中后就可以进行…

2 月 5 日算法练习- 字符串

人物相关性分析 思路&#xff1a;枚举前缀和。枚举字符串中的 Bob 位置利用前缀和来记录&#xff0c;然后枚举 Alice 的位置&#xff0c;通过判断 Bob 在 Alice 前面还是后面来进行不同的前缀和差值计算距离 k 距离中 Bob 的个数求和就是答案&#xff0c;复杂度是 On。注意 Bob…

力扣刷题之旅:进阶篇(一)

力扣&#xff08;LeetCode&#xff09;是一个在线编程平台&#xff0c;主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目&#xff0c;以及它们的解题代码。 --点击进入刷题地址 题目1&#xff1a;三数之和 题目描述&#xff1a; 给定一个包含n个…

算法学习——LeetCode力扣哈希表篇1

算法学习——LeetCode力扣哈希表篇1 242. 有效的字母异位词 242. 有效的字母异位词 - 力扣&#xff08;LeetCode&#xff09; 描述 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同…

轻松修复msvcr100.dll丢失的解决方法,修复时需要注意事项

msvcr100.dll文件缺失是一种普遍遇到的电脑问题&#xff0c;此类问题会妨碍一些程序的正常启动或引发其他错误。幸运的是&#xff0c;我们可以采取多种方法修复msvcr100.dll文件。下面将介绍三种常用的解决方法&#xff0c;包括更新电脑系统、使用dll修复工具修复以及手动下载m…

docker安全与https协议

一、docker存在的安全问题 1、docker 自身漏洞 docker 应用本身实现上会有代码缺陷&#xff0c;docker 历史版本共有超过 20 项漏洞 2、docker公有仓库安全问题 docker 提供了 docker hub&#xff0c;可以让用户上传创建的镜像&#xff0c;以便其他用户下载&#xff0c;快速…

Linux内核编译-ARM

步骤一、下载源码及交叉编译器后解压 linux kernel官网 ARM GCC交叉编译器 步骤二、安装软件 sudo apt-get install ncurses-dev sudo apt-get install flex sudo apt-get install bison sudo apt install libgtk2.0-dev libglib2.0-dev libglade2-dev sudo apt install libs…

【Java篇】——浅拷贝or深拷贝

目录 &#x1f6a9;克隆步骤 &#x1f6a9;拷贝 &#x1f388;浅拷贝 &#x1f388;深拷贝 &#x1f6a9;源代码 &#x1f6a9;克隆步骤 Java 中内置了一些很有用的接口 , Clonable 就是其中之一 .【一般接口都是able来设定的&#xff0c;able是可以..的表示一种能力】 …

tab切换

任务描述&#xff1a;鼠标点击不同商品类别标题时切换不同页面 html代码&#xff1a; <div class"tab"><div class"tab-head"><h3>家电</h3><ul><li><a class"active" href"javascript:;"&g…

arcpy高德爬取路况信息数据json转shp

最近工作上遇到爬取的高德路况信息数据需要在地图上展示出来&#xff0c;由于json数据不具备直接可视化的能力&#xff0c;又联想到前两个月学习了一点点arcpy的知识&#xff0c;就花了一些时间去写了个代码&#xff0c;毕竟手动处理要了老命了。 1、json文件解读 json文件显…

编程实例分享,物流车辆调度管理系统软件教程

编程实例分享&#xff0c;物流车辆调度管理系统软件教程 一、前言 以下教程以 佳易王物流车辆调度管理系统软件V16.0为例说明 如上图&#xff0c;左侧为 导航栏&#xff0c;在系统设置里可以设置打印参数 如上图&#xff0c;填写托运方&#xff0c;货物&#xff0c;司机等信…

走进施耐德电气:数字化转型要奉行长期主义

数字化不是新“银弹”&#xff0c;其前身是电子化、信息化&#xff0c;至今已走过几十年的历程。回头来看&#xff0c;在这个人人都谈数字化、家家都在数字化转型的时代&#xff0c;影响数字化真正走深向实的核心因素有哪些&#xff1f; 2024年1月16日&#xff0c;在主题为“如…

c语言--assert断言(详解)

目录 一、断言的概念二、assert断言2.1 代码12.1.1运行结果2.1.2分析 2.2代码22.2.1运行结果2.2.2分析2.3代码32.3.1运行结果及其分析 三、优点四、缺点五、注意 一、断言的概念 assert.h 头⽂件定义了宏 assert() &#xff0c;用于在运行时确保程序符合指定条件&#xff0c;如…

vue基本语法总结大全

vue基本语法 文章目录 vue基本语法基本用法内容渲染指令属性绑定指令使用js表达式事件绑定指令条件渲染指令v-else和v-else-if指令列表渲染指令v-for中的key 组件化开发安装详细讲解 第三方组件1. 组件间的传值2. element-ui介绍3. 组件的使用4. 图标的使用 Axios网络请求1. Ax…

Redis渗透SSRF的利用

Redis是什么&#xff1f; Redis是NoSQL数据库之一&#xff0c;它使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。默认端口是&#xff1a;6379 工具安装 下载地址&#xff1a; http://download.redis.io/redis-stable.tar.gz然…

【Redis】字符串原理--简单动态字符串SDS

一.SDS定义 free 属性值为0&#xff0c;标识SDS没有分配任何未使用空间。len 属性值为5&#xff0c;标识SDS保存了一个5字节长度的字符串。buf 属性是一个char类型数组&#xff0c;数组的前5个字节保存了&#xff0c;R e d i s 五个字符&#xff0c;最后一个保存空字符串 \0…