javascript实现的左右无缝滚动效果

实现左右无缝滚动效果,可借助于jQuery插件Marquee或Carousel等实现。本文以实现无限滚动轮播为例,提供以下详细攻略。

使用jQuery Marquee插件实现无限滚动轮播

jQuery Marquee是一款jQuery插件,用来实现前端展示的无限滚动,尤其适用于网站的一些公告、广告等需要循环横幅展示的业务场景。实现步骤如下:

  1. 引入jQuery和jQuery Marquee插件库文件
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.marquee/1.5.0/jquery.marquee.min.js"></script>
  1. HTML结构
<div class="marquee_box">
  <ul class="marquee_content">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
  </ul>
</div>
  1. CSS样式
.marquee_box {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
}
.marquee_content {
  display: inline-block;
  position: absolute;
  width: 100%;
}
  1. JavaScript代码
$('.marquee_content').marquee({
  duration: 5000, // 动画效果时间
  delayBeforeStart: 0, // 开始动画前延迟
  direction: 'left', // 动画滚动方向
  duplicated: true // 是否循环滚动
});

使用JavaScript实现无限滚动轮播

如果不想使用插件,可以使用JS代码实现无限滚动轮播,具体步骤如下:

  1. 获取元素和数据
const box = document.querySelector('.carousel_box');
const content = document.querySelector('.carousel_content');
const items = [...content.children];
  1. 复制元素并插入对应位置
content.append(items[0].cloneNode(true));
content.prepend(items[items.length - 1].cloneNode(true));
  1. 重新获取元素
const itemsNew = [...content.children];
  1. 设置样式属性
content.style.width = `${itemsNew.length * 100}%`;
content.style.left = '-100%';
itemsNew.forEach(item => item.style.width = `${100 / itemsNew.length}%`);
  1. 定义轮播函数
function carousel() {
  const distance = parseInt(content.style.left) - 100;
  content.style.transition = 'left 0.5s';
  content.style.left = `${distance}%`;

  setTimeout(() => {
    if (distance == -(itemsNew.length - 1) * 100) {
      content.style.transition = 'none';
      content.style.left = '-100%';
    }
    if (distance == 0) {
      content.style.transition = 'none';
      content.style.left = `${-(itemsNew.length - 2) * 100}%`;
    }
  }, 500);
}
  1. 定义定时器
setInterval(carousel, 3000);

示例1:使用JS实现无限滚动轮播

示例2:使用jQuery Marquee插件实现无限滚动轮播

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现的左右无缝滚动效果 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JQuery搜索框自动补全(模糊匹配)功能实现示例

    下面是针对“JQuery搜索框自动补全(模糊匹配)功能实现示例”的完整攻略。 1. 引入 jQuery UI 在实现自动补全功能之前,需要先引入 jQuery UI 库。在文档末尾添加如下代码即可: <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js">&lt…

    jquery 2023年5月28日
    00
  • jQuery UI对话框调整大小事件

    以下是关于 jQuery UI 对话框调整大小事件的详细攻略: jQuery UI 对话框调整大小事件 对话框调整大小事件是在用户调对话框大小时触发的事件。可以使用该事件来执行一些操作,例如重新计算对话框内容的大小或重新布局对话框的元素。 语法 $(selector).dialogresize(function(event, ui) { // 在这里编写事件…

    jquery 2023年5月11日
    00
  • Django 通过JS实现ajax过程详解

    Django 通过JS实现ajax过程详解 什么是Ajax Ajax,全称Asynchronous JavaScript and XML,指的是一种基于现有的Web标准,利用JavaScript在保持页面无刷新的情况下与服务器进行数据交互的技术。 Django中的Ajax Django通过提供内置的JSONResponse类以及Django REST fra…

    jquery 2023年5月27日
    00
  • Thinkphp框架+Layui实现图片/文件上传功能分析

    让我来为你分享一下“ThinkPHP框架+Layui实现图片/文件上传”的攻略吧。 步骤一:准备工作 在开始使用ThinkPHP框架和Layui实现图片/文件上传功能之前,你需要在你的电脑上安装好以下软件: PHP环境(5.6+或7.0+版本) Composer(用于依赖管理和安装ThinkPHP框架) MySQL数据库 同时,你还需要准备好一个用于上传文件…

    jquery 2023年5月27日
    00
  • jQWidgets jqxDataTable ready属性

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxDataTable,它是一个用于显示和编辑表格数据的件。jqxDataTable 提供多个属性和事件,其中之一是 ready。下面是关于 jqxDataTable 的 ready 属性的详攻: ready 属性概述 ready 属性用于设置…

    jquery 2023年5月11日
    00
  • javascript进阶篇深拷贝实现的四种方式

    Javascript进阶篇:深拷贝实现的四种方式 在Javascript中,数据类型可以分为原始类型和引用类型。其中,原始类型在赋值、作为函数参数、返回值传递等情况下,直接进行值的传递。而引用类型则是传递引用地址。这样一来,在同一个作用域下、赋值、作为函数参数、返回值传递等情况下,多个变量可能会指向同一引用地址的内存空间,导致某些问题。为了避免这种问题,我们…

    jquery 2023年5月27日
    00
  • jquery+ajax验证不通过也提交表单问题处理

    当使用jQuery和Ajax进行表单验证时,我们希望在表单验证未能通过的情况下,不会提交表单以及出现页面刷新等行为。一种常见的解决方案是使用Ajax来发送请求并验证数据,如果验证失败,则阻止表单提交。本文将详细演示如何实现“jquery+ajax验证不通过也提交表单问题处理”这一问题的完整攻略。 步骤一:阻止表单的默认提交行为 在提交表单之前,我们需要阻止掉…

    jquery 2023年5月28日
    00
  • jQuery实现的简单手风琴效果示例

    下面是“jQuery实现的简单手风琴效果示例”的完整攻略。 介绍 手风琴效果是一种常见的Web页面设计特效,使用jQuery可以轻松实现该效果。本篇攻略将提供基于jQuery的手风琴效果实现方法和示例,帮助大家掌握该效果的制作方法。 实现方法 手风琴效果实现的核心是控制元素的动画效果,具体步骤如下: 首先,需要通过CSS设置手风琴各个元素的样式,包括容器的样…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部