div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox

yizhihongxing

要实现类似marquee的无缝滚动效果,可以使用div、CSS和JavaScript结合的方式。具体实现步骤如下:

HTML结构

先创建一个包含滚动内容的div,再在div内部创建两个包裹滚动内容的div,其中一个用于显示内容,一个用于隐藏内容,两个div的宽度相等,高度与滚动内容相同。如下所示:

<div class="scroll-wrap">
  <div class="scroll-show">
    <!-- 显示的滚动内容 -->
  </div>
  <div class="scroll-hide">
    <!-- 隐藏的滚动内容 -->
  </div>
</div>

CSS样式

  1. 将包裹滚动内容的div设置为相对定位,overflow属性设置为hidden,以隐藏超出内容。

  2. scroll-showscroll-hide两个div设置为绝对定位。其中,scroll-showleft值为0,scroll-hideleft值等于scroll-show的宽度。topbottom属性都设置为0,使得两个div与包裹滚动内容的div高度一致。

  3. scroll-showscroll-hide两个div添加相同的样式,如下所示:

.scroll-show,
.scroll-hide {
  position: absolute;
  top: 0;
  bottom: 0;
  white-space: nowrap; /* 防止文字换行 */
}

同时,为两个div设置相同的宽度,使得滚动内容能够完全填充两个div

  1. scroll-wrap设置width属性,使得其能够容纳两个div的宽度之和。

JavaScript实现

JavaScript的实现方式有多种,以下以定时器的方式实现。具体步骤如下:

  1. 获取scroll-showscroll-hide两个div

  2. 设置一个全局变量offset,表示滚动的位移量,初始值为0。

  3. 创建一个定时器,每个一定时间(如20ms)将offset值减少。同时,将scroll-showscroll-hide根据offset值左移,实现滚动效果。

  4. scroll-hide完全被滚动到显示区域中时,将scroll-showscroll-hide交换位置,再将offset值重置为0,重新开始滚动。

以下是一段示例代码,实现了向左滚动的效果:

<div class="scroll-wrap">
  <div class="scroll-show">
    <span>第一条滚动内容</span>
    <span>第二条滚动内容</span>
    <span>第三条滚动内容</span>
  </div>
  <div class="scroll-hide">
    <span>第四条滚动内容</span>
    <span>第五条滚动内容</span>
    <span>第六条滚动内容</span>
  </div>
</div>
.scroll-wrap {
  width: 500px;
  position: relative;
  overflow: hidden;
}
.scroll-show,
.scroll-hide {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  white-space: nowrap;
  width: 100%;
}
.scroll-show {
  left: 0;
}
.scroll-hide {
  left: 100%;
}
var scrollShow = document.querySelector('.scroll-show');
var scrollHide = document.querySelector('.scroll-hide');
var offset = 0;

setInterval(function() {
  offset--;
  scrollShow.style.left = offset + 'px';
  scrollHide.style.left = (offset + scrollShow.offsetWidth) + 'px';
  if (offset <= -scrollShow.offsetWidth) {
    offset = 0;
    scrollShow.style.left = '0';
    scrollHide.style.left = '100%';
    var tmp = scrollShow;
    scrollShow = scrollHide;
    scrollHide = tmp;
  }
}, 20);

另外,为了兼容Firefox浏览器,需要为scroll-showscroll-hide两个div添加一个display: inline-block样式,如下所示:

.scroll-show,
.scroll-hide {
  display: inline-block;
}

以上是实现“div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox”的完整攻略,另外还可以使用transform属性实现滚动效果,具体可以参考一些插件库的实现方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • css3动画效果小结(推荐)

    对于“css3动画效果小结(推荐)”这一话题,以下是详细的攻略: 1. 前置知识 在学习和实践 CSS3 动画效果之前,需要掌握一些基本的前端知识,包括但不限于: HTML 和 CSS 的基本语法和使用方法 DOM 结构和节点的概念 CSS 中的选择器和优先级 CSS 盒模型和布局 CSS3 中新特性的概念和用法 同时也需要了解一些与动画相关的 CSS 属性…

    css 2023年6月9日
    00
  • Vue学习笔记进阶篇之单元素过度

    下面是“Vue学习笔记进阶篇之单元素过度”的完整攻略: 什么是单元素过度 我们在网页中进行跳转或某些操作时,页面的变化是瞬间完成的,这样会给用户一个突兀的感觉。为了让页面的变化更加自然,我们可以使用过渡动画效果。在Vue中,可以通过内置的过渡类实现元素间的过渡效果。单元素过渡是指在一个元素的状态之间进行切换时,自动应用过渡效果。 单元素过度的实现 使用Vue…

    css 2023年6月10日
    00
  • Spring Boot实现文件上传下载

    来讲解一下“Spring Boot实现文件上传下载”的完整攻略。这里将分为以下步骤: 添加依赖 创建上传文件的控制器 创建下载文件的控制器 1. 添加依赖 首先,在我们的Spring Boot项目中添加依赖。这里我们需要添加的依赖是Spring Boot Web和Apache Commons Fileupload,后者是用来支持文件上传的。在Maven项目中…

    css 2023年6月10日
    00
  • 5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)

    5分钟让你掌握CSS3阴影、倒影、渐变小技巧 介绍 本教程将向你展示如何使用CSS3的阴影、倒影、渐变等小技巧来美化你的网站页面。通过学习这些技巧,你可以让你的网站看起来更加炫酷、专业。 阴影 CSS3的阴影属性可以为任何元素添加阴影效果。你可以通过使用box-shadow属性来实现这个效果。box-shadow有四个参数:水平位置、垂直位置、模糊半径和颜色…

    css 2023年6月9日
    00
  • 67 个节约开发时间的前端开发者的工具、库和资源

    67 个节约开发时间的前端开发者的工具、库和资源 作为一名前端开发者,我们需要使用各种工具和库来提高开发效率。这篇攻略总结了67个节约前端开发时间的工具、库和资源。 前端开发工具 1. Visual Studio Code Visual Studio Code是一个快速且免费的代码编辑器,支持多种语言和插件,比如自动补全、语法高亮和调试器等。 2. Subl…

    css 2023年6月11日
    00
  • 通过CSS禁用页面内容选中和复制操作

    为了禁用页面内容选中和复制操作,我们可以采取以下两种方法: 1. 通过CSS的user-select属性来禁用选中操作 CSS的user-select属性可以控制用户是否可以选中页面中的文本,通过将其属性值设置为none可以禁用选中操作,代码如下: * { -webkit-user-select: none; /*webkit浏览器*/ -moz-user-…

    css 2023年6月10日
    00
  • 如何解决前端笔记本屏幕显示缩放比例125%,150%对页面布局的影响

    解决前端笔记本屏幕显示缩放比例125%、150%对页面布局的影响,可以采用如下方法: 方法一:使用Viewport适配 Viewport是移动端常用的适配方案,可以将网页按照设备的物理像素来渲染。使用Viewport适配,可以避免屏幕缩放对页面布局的影响。 在页面头部引入以下代码: <meta name="viewport" con…

    css 2023年6月10日
    00
  • CSS三角箭头应用实践

    下面是“CSS三角箭头应用实践”的详细攻略: 1. 什么是CSS三角箭头 CSS三角箭头是在CSS中实现三角形形状的常用技术。三角形形状可以用于很多不同场景,比如箭头、下拉菜单等等。 2. 如何实现CSS三角箭头 在CSS中,实现CSS三角箭头主要有两种方法,一种是使用border属性,另一种是使用伪元素(::before和::after)。 2.1 使用b…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部