Shopify模版二次开发 Liquid实现响应式无缝跑马灯效果

news2024/7/6 5:45:16

在这里插入图片描述
1、HTML 代码结构
要实现无缝,我们需要复制出文案结构放在后面

<div class="marquee__wrapper">
  <div class="marquee">
    <div class="marquee__content">
      <p>有人知道在 Shopify 中使用@media 的正确方法吗?</p>
      <p>有人知道在 Shopify 中使用@media 的正确方法吗?</p>
    </div>
  </div>
</div>

效果
在这里插入图片描述
2、CSS 处理布局,使第二段文案衔接在第一段文案后面
代码
SCSS

// 演示使用,后面要删除
// 相当可视区域
.marquee__wrapper {
  width: 375px;
  margin: 100px auto 0;
  // overflow: hidden;
}

// 核心代码
.marquee {
  width: 100%;
  background: rgba(0, 0, 0, 0.1);
  .marquee__content {
    display: inline-block;
    white-space: nowrap;
    position: relative;
    p {
      margin: 0;
      // 插入一个字符,用于间隔开首尾
      &::after {
        content: "";
        width: 15.5px;
        display: inline-block;
      }
    }
    p:last-child {
      position: absolute;
      left: 100%;
      top: 0;
      color: red;
    }
  }
}

在这里插入图片描述
3、添加CSS动画
代码
SCSS

.marquee__content {
  // --marquee-time 动画时间, 默认10s
  animation: marquee var(--marquee-time, 10s) linear infinite;
}
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

在这里插入图片描述
添加 overflow: hidden;
在这里插入图片描述
Liquid + CSS 实现响应式无缝跑马灯
备注
由于每个字符的宽度都不是固定的,所以文案宽度会存在一定的误差(误差大小取决于你怎么取文案平均值)。字符宽度的取值可以取一段文案的平均值,至于怎么取就不用多说了。如果你的字体大小还受到分辨率影响,那么就考虑手动设置文案宽度,或者再做一些细致的计算

代码
Liquid

{%- liquid 
  assign text = "有人知道在 Shopify 中使用@media 的正确方法吗?" 
  # 一个字的宽度
  assign one_text_width = 14 
  # 文案字符数
  assign text_length = text | size
  # 文案宽度 == .marquee__content 的宽度
  assign text_width = text_length | plus: 1 | times: one_text_width
  # 跑马灯的时间, 可通过这个调节跑马灯的速度
  assign marquee_time = text_width | times: 15
-%}

<!-- 文案宽度能够完全显示时,取消动画,删除间隔,隐藏复制的文案 -->
<style>
  @media (min-width: {{ text_width }}px) {
    #shopify-section-{{ section.id }} .marquee__content {
      animation: none;
    }
    #shopify-section-{{ section.id }} .marquee__content p::after {
      content: none;
    }
    #shopify-section-{{ section.id }} .marquee__content p:last-child {
      display: none;
    }
  }
</style>
<div class="marquee__wrapper">
  <div class="marquee" style="--marquee-time: {{ marquee_time }}ms">
    <div class="marquee__content">
      <p>{{ text }}</p>
      <p>{{ text }}</p>
    </div>
  </div>
</div>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据链路层的作用和三个基本问题

目录 一. 数据链路层的作用二. 数据链路层解决的三个问题2.1 数据链路和帧2.2 三个基本问题(重要)2.2.1 封装成帧2.2.2 透明传输2.2.3 差错检测 \quad 一. 数据链路层的作用 \quad \quad \quad 光有链路不能传输数据, 还要加上协议, 这样才是数据链路 数据链路层的作用就是负责…

CVPR 2023 三维重建相关必读论文和代码合集

三维重建涉及将二维图像或视频转换为三维模型的过程&#xff0c;这个过程需要应用到多门学科的知识&#xff0c;比如数学、计算机图形学和多视图几何等&#xff0c;学习门槛较高。但尽管如此&#xff0c;三维重建仍然是CV领域的一个热门方向。 目前三维重建技术已经有了广泛应…

基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

桥梁巡查管理二维码

随着互联网世界的发展&#xff0c;二维码随处可见。二维码已经融入到我们生活的各个方面&#xff0c;不管是买东西&#xff0c;还是参观展览&#xff0c;甚至当我们走在路上&#xff0c;路牌上都会有二维码。甚至很多桥梁都用二维码来管理。 使用二维码管理桥梁能实现哪些功能…

有监督学习、无监督学习、半监督学习和强化学习

有监督学习 训练数据有标签 无监督学习 数据是没有标签的 聚类的思想&#xff1a;通过计算空间中的距离来判断是否属于同一类 强化学习 和环境交互&#xff0c;从环境中学习 三者对比 半监督学习 少量有标注&#xff0c;大量无标注 三个假设 1.连续性/平滑性假设:相…

肥猫游戏报价器|计价器|王者荣耀代练陪练等游戏报价器软件介绍说明

目录 1. 前言2. 软件著作权3. 软件使用说明3.1 进入软件3.2 用户登录3.3 首页3.4 报价器3.4.1 总体介绍3.4.2 王者报价器3.4.3 LOL手游报价器3.4.4 英雄联盟报价器3.4.5 云顶之弈报价器3.4.7 王者水晶报价器3.4.8 和平精英报价器3.4.9 蛋仔派对报价器3.4.10 穿越火线报价器3.4.…

验证栈序列(栈压入、弹出序列),剑指offer,力扣

目录 题目地址&#xff1a; 相同题型&#xff1a; 我们直接看题解吧&#xff1a; 解题方法&#xff1a; 审题目事例提示&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 题目地址&#xff1a; 946. 验证栈序列 - 力扣&#xff08;LeetCode&#…

想入门Web测试,看这篇文章!

今天要谈的是很多软件测试工程师都需要面对的——Web测试 不管你是处在二十不惑的青春有你阶段还是三十而已的乘风破浪阶段我们都需要面对“Web测试”。 Web测试其实有以下几个方面&#xff1a; 1、页面测试 大多数的Web网站的网页都是html语言编写的&#xff0c;测试工程师…

网络基础(九):VLAN的概述及配置

目录 前言 一、分割广播域的方法 二、VLAN 1、VLAN的概述及优势 1.1VLAN的概述 1.2VLAN的优势 2、VLAN的种类 3、VLAN的三种端口类型 4、VLAN 的工作原理 4.1VLAN数据帧 4.2VLAN的范围 4.2VLAN的access类型工作原理 4.3VLAN的trunk类型工作原理 4.4VLAN的Hybird类…

算法中的最优化方法课程复习

算法中的最优化方法课程复习 单模函数、拟凸函数、凸函数证明证明一个线性函数与一个凸函数的和也是凸的 梯度线性规划标准形式以及如何标准化标准形式常见标准化方法线性化技巧 单纯形法二次规划无约束优化Nelder-Mead线搜索FR共轭梯度法例题 优化算法的选择、停止准则算法选择…

主动学习与弱监督学习

人工智能数据的获取没有想象中的那么简单&#xff0c;虽然我们早已身处大数据的浪潮下&#xff0c;很多公司在获取数据的大浪中翻滚却始终没有找到一个合适的获取数据的渠道。很多情况下&#xff0c;获取高质量的人工智能数据需要消耗大量的人力、时间、金钱&#xff0c;但是对…

Py之scikit-surprise:scikit-surprise的简介、安装、使用方法之详细攻略

Py之scikit-surprise&#xff1a;scikit-surprise的简介、安装、使用方法之详细攻略 目录 scikit-surprise的简介 1、基准测试 Movielens 100k Movielens 1M scikit-surprise的安装 scikit-surprise的使用方法 1、基础用法 (1)、简单的示例&#xff0c;展示如何&#x…

分类预测 | Matlab实现HPO-GRU【23年新算法】基于猎食者优化算法优化门控循环单元的数据分类预测

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】分类效果基本描述程序设计参考资料 分类效果 基本描述 1.HPO-GRU【23年新算法】基于猎食者优化算法优…

生物燃料市场分析:预计2029年将达到1968亿美元

生物燃料(biofuel)泛指由生物质组成或萃取的固体、液体或气体燃料&#xff0c;可以替代由石油制取的汽油和柴油&#xff0c;是可再生能源开发利用的重要方向。所谓的生物质是指利用大气、水、土地等通过光合作用而产生的各种有机体&#xff0c;即一切有生命的可以生长的有机物质…

配置文件中的$和@

配置文件中的$和 0、前言 借鉴文章&#xff1a; https://blog.csdn.net/Saintmm/article/details/124603343 https://blog.csdn.net/ster_ben/article/details/119295815在yml配置文件中&#xff0c;可以使用${}和{}来引用其他配置项的值作为配置项的值。 spring:applicati…

19、WEB攻防——.NET项目DLL反编译未授权访问配置调试报错

文章目录 一、.NET项目——DLL文件反编译指向—代码特性二、.NET项目——Web.config错误调试—信息泄露三、.NET项目——身份验证未授权访问—安全漏洞 web搭配&#xff1a; windowsiisaspaccesswindowsiisaspxsqlserver 一、.NET项目——DLL文件反编译指向—代码特性 bin目…

基于物联网的智能仓管理系统方案

基于物联网的智能仓管理系统方案 一、项目背景 随着企业业务的快速发展&#xff0c;传统的人工仓库管理方式已经无法满足现代企业的需求。仓库运营效率低下、货物出入库错误、库存不准确等问题不断涌现。因此&#xff0c;我们提出一个基于物联网技术的智能仓管理系统方案&…

被围绕的区域[中等]

一、题目 给你一个m x n的矩阵board&#xff0c;由若干字符X和O&#xff0c;找到所有被X围绕的区域&#xff0c;并将这些区域里所有的O用X填充。 示例 1&#xff1a; 输入&#xff1a;board [["X","X","X","X"],["X",&qu…

输入一组数据,以-1结束输入[c]

我们新手写题时总能看到题目中类似这样的输入 没有给固定多少个数据&#xff0c;我们没有办法直接设置数组的元素个数&#xff0c;很纠结&#xff0c;下面我来提供一下本人的方法&#xff08;新手&#xff0c;看到有错误或者不好的地方欢迎大佬指出&#xff0c;纠正&#xff0…

NOIP2017提高组day2 - T2:宝藏

题目链接 [NOIP2017 提高组] 宝藏 题目描述 参与考古挖掘的小明得到了一份藏宝图&#xff0c;藏宝图上标出了 n n n 个深埋在地下的宝藏屋&#xff0c; 也给出了这 n n n 个宝藏屋之间可供开发的 m m m 条道路和它们的长度。 小明决心亲自前往挖掘所有宝藏屋中的宝藏。但…