无缝滚动轮播图

vue移动端轮播图(触摸滑动滚动、自动轮播、无缝滚动、循环无回滚) 移动端轮播图——Vue 喜欢的小伙伴可以和我互相关注哦 有任何疑问都可以私聊我 互相学习,共同进步 pc端轮播图主页里也有哦 还是老样子,先看效果图 具体实现代码解析 HTML结构<div class="swiper"> <div class="container"> <ul ref="imgBox" @transitionen... 阅读详情

最近看到好多撸原生轮播图的博客,我也来一发有一段时间没写了。

 html 部分

<div class="all" id='box'>
    <div class="screen">
        <ul>
            <li><img src="img/wf1.jpg" width="500" height="200"/></li>
            <li><img src="img/wf2.jpg" width="500" height="200"/></li>
            <li><img src="img/wf3.jpg" width="500" height="200"/></li>
            <li><img src="img/wf4.jpg" width="500" height="200"/></li>
            <li><img src="img/wf5.jpg" width="500" height="200"/></li>
        </ul>
        <ol>  // 等下用Js动态来生成序号
        </ol> 
    </div>
    <div id="arr"><span id="left"><</span><span id="right">></span></div>
</div>

css 部分

<style>
        * {
            padding: 0;
            margin: 0;
            list-style: none;
            border: 0;
        }
        .all {
            width: 500px;
            height: 200px;
            padding: 7px;
            border: 1px solid #ccc;
            margin: 100px auto;
            position: relative;
        }
        .screen {
            width: 500px;
            height: 200px;
            overflow: hidden;
            position: relative;
        }
        .screen li {
            width: 500px;
            height: 200px;
            overflow: hidden;
            float: left;
        }
        .screen ul {
            position: absolute;
            left: 0;
            top: 0;
            width: 3000px;
        }
        .all ol {
            position: absolute;
            right: 10px;
            bottom: 10px;
            line-height: 20px;
            text-align: center;
        }
        .all ol li {
            float: left;
            width: 20px;
            height: 20px;
            background: #fff;
            border: 1px solid #ccc;
            margin-left: 10px;
            cursor: pointer;
        }
        .all ol li.current {
            background: yellow;
        }
        #arr {
            display: none;
            z-index: 1000;
        }
        #arr span {
            width: 40px;
            height: 40px;
            position: absolute;
            left: 5px;
            top: 50%;
            margin-top: -20px;
            background: #000;
            cursor: pointer;
            line-height: 40px;
            text-align: center;
            font-weight: bold;
            font-family: '黑体';
            font-size: 30px;
            color: #fff;
            opacity: 0.3;
            border: 1px solid #fff;
        }
        #arr #right {
            right: 5px;
            left: auto;
        }
    </style>

js 部分

  先封装一个动画 下面用得到。

function animate(element,target,temp) {
      clearInterval(element.timerId);   // 保证只开启一个定时器
      var current;
      element.timerId = setInterval(function (){
          current = element.offsetLeft;
          if (current > target) {  // 如果当前位置大于目标位置,每次移动的距离取负
              temp = - Math.abs(temp)
         }
          if(Math.abs(current - target) <= Math.abs(temp)) { 
              clearInterval(element.timerId);
              element.style.left = target + 'px'
          }
          current += temp;
          element.style.left = current + 'px'
      },10)
  }

轮播部分

  // 获取元素
    var box = document.getElementById('box');
    var screen = box.querySelector('.screen');
    var ul = screen.querySelector('ul');
    var ol = screen.querySelector('ol');
    // 箭头
    var arr = document.getElementById('arr');
    var arrLeft = document.getElementById('left');
    var arrRight = document.getElementById('right');
    // 图片宽度
    var imgWidth = screen.offsetWidth;
// 1.动态生成序号        
    var len = ul.children.length;
    for (var i = 0; i < len; i++) {
        var li = document.createElement('li');
        li.innerText = i + 1;
        ol.appendChild(li);
// 2.点击序号 动画方式 切换图片        
        li.onclick = liClick;
        li.index = i;          // 让当前li 记录它的索引
    }
    function liClick() {
        for (var i = 0; i < len; i++) {  // 排他思想,先取消所有li的高亮显示,给当前li添加高亮显示
            var li = ol.children[i];
            li.className = '';
        }
        this.className = 'current';
        var liIndex = this.index;
        animate(ul, -this.index * imgWidth, 10);
        index = liIndex;               //  全局变量 index 和 li 里面的index保持一致
    }
    ol.children[0].className = 'current';  // 默认序号1高亮显示
// 3.鼠标放到盒子上显示箭头
    box.onmouseenter = function () {
        arr.style.display = 'block';
        clearInterval(timerId)          // 清除定时器
    };
    box.onmouseleave = function () {
        arr.style.display = 'none';
        timerId = setInterval(autoPlay, 2000)
    };
// 4.上一张,下一张    
    var autoPlay = function () {
        if (index === len) {    // 判断是否是克隆的第一张图,如果是修改ul的坐标,显示真正的第一张图
            ul.style.left = '0px';
            index = 0
        }
        index++;
        if (index < len) {
            ol.children[index].click()      // 获取图片对应的序号,让序号点击
        } else {
            animate(ul, -index * imgWidth, 10);  // 如果是最后一张,以动画的形式移动到克隆的第一张
            for (var i = 0; i < len; i++) {
                var li = ol.children[i];
                li.className = ''
            }
            ol.children[0].className = 'current'
        }
    };
    var index = 0;   // 第一张图片的索引
    arrRight.onclick = function () {
        autoPlay()
    };
    arrLeft.onclick = function () {
        if (index === 0) {    // 如果是第一张就偷偷的切换的最后一张图片位置(克隆的第一张图片)
            index = len;
            ul.style.left = -index * imgWidth + 'px' 
        }
        index--;
        ol.children[index].click()
    };
    var firstLi = ul.children[0].cloneNode(true);  // 实现无缝滚动的关键,
    ul.appendChild(firstLi);
// 5.自动切换图片    
    var timerId = setInterval(autoPlay, 2000)


使用 HTML + CSS + JavaScript 实现无缝滚动轮播图 JavaScript 学习经典案例:使用 HTML + CSS + JavaScript 实现无缝滚动轮播图 阅读详情

相关推荐

使用JavaScript和jQuery打造无缝滚动轮播图

在定义轮播图样式时,需要考虑到轮播项的尺寸、轮播容器的定位和轮播控制按钮的样式。top: 50%;/* 更多样式定义 */通过以上HTML和CSS,我们已经构建了轮播图的基础框架,包括图片切换逻辑的下一步是利用JavaScript或jQuery实现图片的无缝切换。在现代网页设计中,响应式布局已经成为标准配置之一。轮播图作为页面的重要元素,也需要支持响应式设计,以适应不同大小的屏幕。

weixin_42430341的博客 980

最全面的无缝滚动轮播图(只为解放你的双手)

文章目录1. 轮播图效果展示2. 轮播图剖析2.1. 原理简介2.2. 功能需求3. 代码分析3.1. HTML代码分析3.2. JavaScript代码逐步引导 写在前面:最近在给自己的二手网页添加动画时发现轮播图还真是无处不在,样式也是五花八门。于是手写轮播图的想法涌上心头,经过一番折腾之后,它诞生了。优化了些内容,对无js基础的小伙伴也很友好(只需改动样式,js动态变化)。 1. 轮播图效果展示 2. 轮播图剖析 2.1. 原理简介 2.2. 功能需求 3. 代码分析 3.1. HTML代码分析 3.

Jdoit CW的博客 1万+

js实现无缝滚动轮播图

js+jquery实现无缝滚动轮播图,导航条可左右切换 , js+jquery实现无缝滚动轮播图,导航条可左右切换 ,

原生js实现轮播图及无缝滚动

原生js实现轮播图及无缝滚动

m0_64642443的博客 3595

原生JS实现无缝滚动轮播图

原生JS实现无缝滚动轮播图,使用相对定位进行无缝滚动,五张图的轮播只需五张图

原生JS实现无缝滚动轮播图(附加无注释版+详解版)

原生JS实现无缝滚动轮播图,最大的优点:使用相对定位进行无缝滚动,五张图的轮播只需五张图

轮播图 (无缝轮播图)

1.无缝轮播核心:在最后多加一张第一张图,当达到最后一张t1的时候一瞬间将ul拉回到0的位置 结构: <div class="wrap"> <ul> <li><img src="./image/t1.png" alt=""></li> <li><img src="./image/t2.png" alt=""></li> ...

m0_46088512的博客 3486

用友U8接口开发全攻略:从EAI到OpenAPI的5种方式详解(附避坑指南)

本文深度解析了用友U8系统接口开发的五种核心方式:EAI、API、OpenAPI、SQL直连与内部CO组件。文章详细对比了各方式的适用场景、优缺点及实战操作,并提供了清晰的选型决策框架与避坑指南,帮助开发者根据具体业务需求选择最高效、最稳定的集成路径。

weixin_29322855的博客 681

js完整轮播图-无缝滚动(详解+源码)

一、模块步骤分析 首先明确一些每个类名,focus是整个轮播区域的类名,下面的ul里面的li是轮播图片的位置 ol也是focus里面的,里面的li是专门的小圆圈,ol的类名是circle 左右箭头的类名分别是arrow-l和arrow-r 4.注意要在index.js文件一个window加载事件,animate.js在index.html引入时要放在index.js文件上方 模块一:鼠标进入轮播区域focus时出现左右箭头 这个还是比较简单的,只需要在focus区域给鼠标一个经过/离开事件即可 获

weixin_40507158的博客 2501

Warning-[INFL_DELTA] Too many events zero delay loop

项目场景: 运用VCS工具执行仿真的时候,遇到如下错误提示,但仿真还在继续。 Warning-[INFL_DELTA] Too many events Possible zero delay loop. Too many events in the simulation at time 0 fs. 问题描述: 为什么会有这个问题; 什么导致了这个问题; 原因分析: 1、为什么会有这个问题 由于竞争条件或编码风格不明确,可能会产生零延时回路,导致仿真挂起或仿真时间无限。 2、什么导致了这个问题 举

hh199203的博客 1万+

STM32开发工具链选型:MDK、CubeIDE、VSCode与IAR深度对比

嵌入式开发工具链是连接软件逻辑与硬件行为的核心枢纽,其选择直接影响代码可靠性、调试效率与量产稳定性。从编译器优化能力、调试协议支持(如ARM CoreSight、SWO)、硬件抽象层级(寄存器/LL/HAL)到跨平台构建能力,不同工具在实时性保障、静态分析合规性(如MISRA-C)、WCET可预测性及生态开放度上存在本质差异。尤其在STM32平台,Keil MDK凭借深度调试能力成为HardFault定位首选,STM32CubeIDE依托图形化配置加速外设初始化,而VSCode+PlatformIO则以LS

weixin_42602368的博客 429

JS轮播图--无缝滚动

JS轮播图–无缝滚动 利用相对定位改变left值,实现轮播图滚动效果。 <div class="box"> <ul> <li></li> <li></li> <li></li> <li&...

qq_40581760的博客 726

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

AI人人懂 2237

css3实现无缝滚动的轮播图

css3实现无缝滚动的轮播图 效果图 css3动画知识应用 指定动画名称:animation-name: moveTest; 定义动画 @keyframes moveTest { 0% { transform: translate(100px); } 50% { ...

rufeike的博客 4849

机器学习实战7-基于机器学习算法预测相亲成功率

大家好,我是微学AI,今天给大家介绍一下机器学习实战7-基于机器学习算法预测相亲成功率,随着社会的发展,大家都忙于事业,对自己的终身大事就耽搁了,相亲是一种传统的寻找伴侣的方式,随着时代的发展,相亲的方式也在不断地改变。在这个过程中,了解相亲双方的信息以及预测相亲是否成功变得越来越重要。本文将介绍如何使用随机森林算法对相亲成功进行预测,通过分析男女双方的房子、车子、长相、家庭条件、父母情况、生活习惯、学历、性格、兴趣等因素,来预测相亲是否成功。

微学AI的博客 3032

OpenClaw 实战:7个真实场景的多 Agent 落地经验

《OpenClaw实战:7个真实场景的多Agent落地经验》摘要: 作者Maynor分享了从单Agent转向多Agent架构的实战经验。最初遇到的单Agent记忆混乱问题(如Flutter助手被C++话题干扰),通过拆分专项Agent(flutter-tutor/cpp-tutor等)并配置独立workspace解决。随后面临的技能调用混乱问题,采用"基础通用能力+专属能力"分层策略,通过Clawhub管理工具市场,将工具调用准确率从60%提升至95%。最后探讨多Agent协同方案,引入

Maynor的博客 1411

淘宝无缝滚动轮播图jQuery,京东无缝滚动轮播图jQuery

前面我有篇笔记是小米淡入淡出轮播图的,现在顺手附上淘宝首页的无缝滚动轮播图,这是源码地址 https://github.com/luoyu6/slideshow_taobao 暂时没有效果图,劳烦大家去下载源码自己看一下了,这个轮播图细节处理的还是比较好的,点击很快的时候,也不会出现空白的情况 代码在这里: &lt;!DOCTYPE HTML&gt; &lt;html&gt;     &l...

luoyu6的博客 1220

R语言Dunnett’s检验实战:寻找差异组之间的效果

总结起来,本文以R语言为工具,演示了如何使用Dunnett’s检验来找出单因素方差分析中不同组之间的效果差异。在本篇文章中,我们将通过R语言实战演示如何使用Dunnett’s检验来寻找不同组之间的效果差异。在分析结果时,通常我们会关注具有显著差异的组别,并基于Dunnett’s检验结果进行进一步的解释和讨论。首先,我们需要准备一组数据,假设我们有一个实验,涉及到四个不同的处理组和一个对照组。当我们发现方差分析结果显示存在显著差异时,我们可以进一步进行Dunnett’s检验来确定具体哪些组之间存在差异。

CoderExtra的博客 1104

轮播图的无缝滚动其实不难

轮播图无缝滚动原理: 利用css3中的transition 进行动画的过度 用css3中的transform :translateX() 进行平移 在图片最后放一张第一张的图片,到最后一张的时候,迅速的跳到第一张,然后继续滚动 注意跳回去的时候要将过度动画取消,再来移动 在最后一个图片过度事件完成后,跳回第一张 用到transitionend事件 window.onload = function() { let focus = document.querySelector('.focu.

qq_44755188的博客 1584

企业级大数据平台的数据网格(Data Mesh)转型之路

随着企业数字化转型的深入,传统大数据平台面临数据孤岛化、治理成本高、业务响应慢等核心痛点。数据网格作为一种新兴的分布式数据管理架构,通过领域驱动设计(DDD)、数据产品化和联邦治理模式,为企业提供了打破数据壁垒、提升数据生产力的全新路径。本文聚焦企业级数据平台从传统架构(数据湖/数据仓库)向数据网格转型的关键技术、实施步骤和组织配套,涵盖技术架构设计、核心算法实现、项目实战案例及工具链推荐。背景介绍:定义转型目标、术语体系与核心挑战核心概念与联系:解析数据网格四大支柱及技术架构图谱核心算法原理。

AI 领航者的博客 1083

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JS实现轮播图图片无缝滚动原理

当轮播图滚动至现有图片最后一张时,需要让轮播图下一跳回到第一张图片,从而实现无限无缝循环滚动效果,但是为什么需要采用克隆来实现呢?为什么不直接从最后一张回到第一张? 原理:在我们采用 num 变量计算图片移动的次数时,增加了一个 if 的判断条件,用于判断图片是否滚动至最后一张图片位置,如果没有复制或者克隆来新增一个子节点,循环就会在到达最后一张图时num 和left 变为 0 ,但是结束了 if 判断后会有一个 num 自增的动作,所以 num 变为 1 ,就会直接跳到第二张图,故需要克隆第一张图片作.

unlilalila的博客 5726

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【原生js】详解轮播图之无缝滚动

前言:轮播图,是网站首页中最常见的一种图片切换特效,作为前端开发者,我相信很多开发者都直接调用了JQuery中的封装好的方法实现图片轮播,省事简单。所以我今天想介绍一下原生js代码实现的图片轮播。结构部分html部分<body> <!--展示窗口--> <div class="show_box"> <!--轮播图图片--> <div class="pic_box">

zoro的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

vue实现轮播图(滚动切换,无缝切换,自动切换,循环无回滚,暂停滚动等效果)

vue实现轮播图 喜欢的小伙伴可以和我互相关注哦 有任何疑问都可以私聊我 互相学习,共同进步 话不多说,先看效果 滚动切换、无缝切换、循环滚动 鼠标进入暂停自动滚动和离开继续自动滚动 主要代码: HTML结构 <div class="swiper"> <div class="moveL" @click="switchImg(-1)"><&...

qq_42586895的博客 2万+

轮播图无缝滚动实现

//样式 <style> * { margin: 0; padding: 0; } li { list-style: none; } body { background-color: #F7F5F5; } .one { margin: 50px auto; height: 280px; width: 1380px;

weixin_48002669的博客 375

原生js实现无缝滚动轮播图

演示地址:http://runjs.cn/detail/qzawzm8y 前几天参加了zuoyebang的面试,其中的一道面试题要求实现百度百科的轮播图,今天有时间整理了一下轮播图中的其中的一种,无缝滚动轮播图,话不多说上代码。 HTML: <div class="container" id="container"> <div id="bt...

277
上一篇: 关于JS你不得不知道的几个小算法。(-)
下一篇: 基于面向对象 来写一个简单的贪吃蛇小游戏(代码可直接用)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值