js轮播图无缝滚动效果

发布时间 - 2026-01-11 01:55:55    点击率:

在做轮播图时如果首尾不能连起来的话,效果会有点丑,下面介绍一种我常用的方法:

先文字说明一下:

如果要展示5张图,分别为1,2,3,4,5  那么在代码的引入中是这样的:1,2,3,4,5,1

按顺序的轮播在此就不多说,重点说的是5>1和1>5的轮播

i  表示当前图片的索引

pre 表示上一张图片的按钮

next 表示下一张图片的按钮

ul 表示图片列表

(1)  5>1>2...   当“next”按钮从5到1时按顺序正常轮播,当前图片为第二个“1”时,下一张图片应该是“2”,那么再“next”时是ul的left的值为0,i==1;

(2) 1>5>4....  当“pre”按钮从当前图片“1”(第一个1)轮播到图片5时,i==4,ul的left值变为img宽的-5倍,也就是让第一个1悄悄的变为最后一个1;

用语言表述有点乱,下面放代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style type="text/css">
 *{padding: 0;margin: 0;}
 .container{
 width: 273px;height: 163px;overflow: hidden;
 position: relative;margin: 0 auto;
 }
 .list{
 position: absolute;width: 1638px;top: 0;left: 0px;
 }
 .list li{
 float: left;list-style: none;
 }
 .btn{
 position: absolute;display: block;width: 40px;height: 50px;font-size: 40px;
 text-align: center;font-weight: bold;top: 50%;margin-top: -25px;background-color: rgba(255,255,255,0.5);cursor:pointer;
 }
 .btn:hover{
 background-color: rgba(0,0,0,0.3);color: #fff;
 }
 .pre{
 left: 0;
 }
 .next{
 right: 0;
 }
 .nav{
 position: absolute;bottom: 5px;display: flex;justify-content: center;width: 100%;
 }
 .nav span{
 width: 10px;height: 10px;border-radius: 10px;background-color: #fff;z-index: 2;display: inline-block;margin-right: 10px;cursor: pointer;
 }
 span.on{
 background-color: orange;
 }
 </style>
</head>
<body>
 <div class="container">
 <ul class="list" style="left: 0px">
 <li><img src="./images/1.png" alt=""></li>
 <li><img src="./images/2.png" alt=""></li>
 <li><img src="./images/3.png" alt=""></li>
 <li><img src="./images/4.png" alt=""></li>
 <li><img src="./images/5.png" alt=""></li>
 <li><img src="./images/1.png" alt=""></li>
 </ul>
 <div class="nav">
 <span class="on"></span>
 <span></span>
 <span></span>
 <span></span>
 <span></span>
 </div>
 <em class="next btn">></em>
 <em class="pre btn"><</em>
 </div>
 <script type="text/javascript" src="../jquery.js"></script>
 <script type="text/javascript">
 $(function(){
 var i=0;
 $('.next').click(function(){
 i++;
 console.log(i);
 
 moveImg(i);
 
 });
 $('.pre').click(function(){
 i--;
 moveImg(i);
 
 });
 $('.nav span').click(function(){
 var _index=$(this).index();
 i=_index;
 moveImg(i);
 
 
 });
 // i的作用:决定下一张图片是谁————也就是说ul的left是多少。
 // $('.list').css({left)的值是从图a过度是此时的ul的left。
 function moveImg(){
 if (i==6) {
 i=1;
 $('.list').css({'left':'0'});
 }
 // 是第一张
 if(i==-1){
 i=4;
 $('ul').css({left:(5*-273)});
 }
 $('.list').stop().animate({'left':-273*i+'px'},1000);
 if (i==5) {
 $('.nav span').eq(0).addClass('on').siblings().removeClass('on');
 
 }
 $('.nav span').eq(i).addClass('on').siblings().removeClass('on');
 
 }
 })
 </script>
</body>
</html>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js轮播图无缝滚动  # js无缝滚动  # js轮播  # vue利用better-scroll实现轮播图与页面滚动详解  # 如何使用JavaScript实现无缝滚动自动播放轮播图效果  # 原生Js 实现的简单无缝滚动轮播图的示例代码  # 解决vue-seamless-scroll滚动加点赞衔接处数据不同步问题  # JavaScript滚动轮播图制作原理详解  # vue+j简单的实现轮播效果  # 滚动公告  # 衔接  # 下一张  # 第一个  # 的是  # 在此  # 是这样  # 就不  # 是从  # 第二个  # 分别为  # 多说  # 第一张  # 值为  # 大家多多  # 文字说明  # 应该是  # 言表  # 也就是说  # height  # px  # overflow 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  HTML 中动态设置元素 name 属性的正确语法详解  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  音乐网站服务器如何优化API响应速度?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  如何快速生成凡客建站的专业级图册?  如何构建满足综合性能需求的优质建站方案?  python中快速进行多个字符替换的方法小结  Laravel如何保护应用免受CSRF攻击?(原理和示例)  EditPlus中的正则表达式 实战(1)  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  公司网站制作价格怎么算,公司办个官网需要多少钱?  免费网站制作appp,免费制作app哪个平台好?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  轻松掌握MySQL函数中的last_insert_id()  Android使用GridView实现日历的简单功能  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel如何实现多对多模型关联?(Eloquent教程)  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何快速搭建个人网站并优化SEO?  linux写shell需要注意的问题(必看)  如何在 Pandas 中基于一列条件计算另一列的分组均值  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何用AWS免费套餐快速搭建高效网站?  韩国服务器如何优化跨境访问实现高效连接?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  常州企业网站制作公司,全国继续教育网怎么登录?  EditPlus中的正则表达式 实战(2)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  如何在不使用负向后查找的情况下匹配特定条件前的换行符  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Android Socket接口实现即时通讯实例代码  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  网易LOFTER官网链接 老福特网页版登录地址  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  装修招标网站设计制作流程,装修招标流程?  如何快速生成专业多端适配建站电话?