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

要实现类似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日

相关文章

  • Canvas和SVG的区别小结

    Canvas是HTML5新增的一个元素,它可以通过JavaScript实现动态绘制和渲染2D图形,常用于游戏、数据可视化和动画等领域。而SVG则是一种基于XML语言的图形标记语言,与HTML类似,它也可以通过DOM进行操作。 下面将从绘制方式、可访问性、性能等方面对Canvas和SVG进行比较,更好地理解它们的区别。 绘制方式 Canvas的绘制方式基于像素…

    css 2023年6月11日
    00
  • SpringBoot+Vue+Redis实现单点登录(一处登录另一处退出登录)

    下面是 “SpringBoot+Vue+Redis实现单点登录(一处登录另一处退出登录)” 的完整攻略。 一、前置知识 在讲解实现单点登录的过程中,我们需要掌握以下技术: SpringBoot:后端框架,用来提供 RESTful API 服务; Vue:前端框架,用来构建单页应用; Redis:一个内存数据库,用来保存用户会话信息。 如果对这些技术还不太了解…

    css 2023年6月9日
    00
  • css Sprites小实例代码

    下面我将详细讲解“CSS Sprites小实例代码”的完整攻略。 什么是CSS Sprites CSS Sprites是一种技术,用于将多个小图片合并成一张大图片,并通过CSS的background-position属性来控制显示哪个小图片。通过这种技术,可以减少网页的http请求,提升网页加载速度,从而提高用户体验。 CSS Sprites的使用流程 准备…

    css 2023年6月10日
    00
  • 基于css3仿造window7的开始菜单

    下面是“基于CSS3仿造Windows 7的开始菜单”的完整攻略: 1. 确定开始菜单的布局 仿照Windows 7的开始菜单,我们需要确定开始菜单的布局。一般情况下,开始菜单由“主菜单”和“子菜单”两部分组成。在主菜单上方,通常会设置一个用于搜索和启动程序的搜索框。在主菜单下方,会列出可操作的内容,如所有应用程序、文档、设置等等。在配置好子菜单之后,就可以…

    css 2023年6月10日
    00
  • 浅谈为什么我的 z-index 又不生效了

    我会详细讲解浅谈为什么我的 z-index 又不生效了的完整攻略。 1. 理解 z-index 属性 首先,我们需要理解 z-index 属性。z-index 属性是 CSS 的一个很重要的属性,用于设置元素的层级关系。它是一个整数值,数值越大,相对于其他元素就越靠上,就会显示在其他元素的前面。 2. z-index 属性的设置要求 接下来,我们需要了解 z…

    css 2023年6月9日
    00
  • Angular4 中常用的指令入门总结

    Angular4 中常用的指令入门总结可以帮助初学者快速掌握 Angular4 中常用的指令知识,包括结构指令、属性指令、双向绑定等内容。下面是一个完整的攻略: 目录 结构指令 ngIf ngFor 属性指令 ngClass ngStyle 双向绑定 ngModel 1. 结构指令 在 Angular4 中,结构指令用于控制 HTML 元素的显示和隐藏,以及…

    css 2023年6月9日
    00
  • 关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦

    关于IE、Firefox、Opera页面呈现异同写脚本很痛苦,主要原因是不同浏览器的页面呈现方式存在差异,导致相同的HTML、CSS代码在不同浏览器下呈现效果不同,导致需要编写兼容性代码。以下是详细攻略: 1. 熟悉各浏览器的特点 了解每个浏览器的特性,可以使我们更好地编写兼容性代码。 Internet Explorer Internet Explorer(…

    css 2023年6月10日
    00
  • 微信小程序实现登录页云层漂浮的动画效果

    让我们来详细讲解“微信小程序实现登录页云层漂浮的动画效果”的完整攻略。 1. 实现思路 实现登录页云层漂浮的动画效果需要用到微信小程序的动画API和canvasAPI。 具体实现思路如下: 在登录页的wxml文件中定义一个canvas元素,用于显示背景云层。 使用微信小程序的canvasAPI,绘制若干张透明的云朵图片。 通过定时器,控制每张云朵图片的位置和…

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