js图片无缝滚动

JS实现图片无缝滚动效果 首先,借助一张草图来简单说明一下往左移动的做法(往右相同)。 如上图所示,图片的无缝滚动原理其实是把滚动的图片复制成两份并联排列,当滚动完一次后就把图片扯回到起点,重新滚动。这里的往左运动把图片扯回起点的临界点是offsetLeft的绝对值大于offsetWidth/2的绝对值。接着,我们再来看看具体实现的代码: 第一步:简单的布局,这里以外层的div为相对物设置相对定位并设置超出隐藏,再给 阅读详情

无缝滚动的原理:假设轮播区域有7张图片进行轮播,当第一张图片向左移动后,轮播区域尾部必然会有空缺的区域;为了不让不能播区域有空缺,我们可以在布局的7张图片后面再加上7张同样的照片,当第一张图片向左移动后,第八张图片就会补位到轮播区域的第7个位置。然而这样只能实现一次的轮播,那么我们就考虑 使用定时器来实现无限循环。(实现步骤如下)


一、首先先布局

准备一个盒子box作为轮播区域,然后 盒子里面用ul装着li标签,li标签为每个要轮播的图片(用img标签放图片也可以,我这里只做简单演示而已;还有上面说到的轮播区空缺补位的图片也是用js代码写出来,布局和样式不需要写);


二、写JS代码实现滚动

在布局和样式完成的前提下,编写js代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>无缝滚动</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
list-style: none;
}
#box{
width: 700px;
height: 150px;
margin: 50px auto;
background: lawngreen;
position: relative;
overflow: hidden;
}
#box ul{
width: 1400px;
height: 150px;
position: absolute;
left: 0;
}
#box ul li{
width: 100px;
height: 150px;
border: 1px solid #000000;
box-sizing: border-box;
float: left;
text-align: center;
line-height: 150px;
font-family: "微软雅黑";
font-size: 50px;
}
</style>
<script type="text/javascript">
window.onload=function(){
var oPic_box=document.getElementById('pic_box');
var aLi=oPic_box.getElementsByTagName('li');
oPic_box.innerHTML=oPic_box.innerHTML+oPic_box.innerHTML;//补位空缺区域的ul
oPic_box.style.width=aLi[0].offsetWidth*aLi.length+'px';//装着li的ul的宽,这样写是为了方便;假如轮播图片为8张,那么这样写就不用去样式里面改ul的宽度了
var timer=null;
var speed=-2;
timer=setInterval(function move(){
if (oPic_box.offsetLeft<-oPic_box.offsetWidth/2) {
oPic_box.style.left=0+'px';
} else if(oPic_box.offsetLeft>0){
oPic_box.style.left=-oPic_box.offsetWidth/2+'px';
}
oPic_box.style.left=oPic_box.offsetLeft+speed+'px';

},30);
};
</script>
</head>
<body>
<div id="box">
<ul id="pic_box">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
</div>
</body>
</html>


以上实例是向左轮播的代码;轮播还可以扩展到其他知识点,比如,我可以添加两个按钮,一个向左,一个向右,当点击向左,图片向左运动,反之向右运动;还有当鼠标移入轮播区域,轮播停止等等。
js实现图片无缝滚动特效 阅读详情

相关推荐

js图片文字向左无缝滚动效果代码

&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;tit

a403852386的博客 3217

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

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

unlilalila的博客 5726

使用 HTML + CSS + JavaScript 实现无缝滚动轮播图

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

Allen- 8277

javascript/js各种方向图片无限无缝滚动

javascript/js图片向上无限无缝滚动 ​ <div id="demo" style="overflow:hidden;height:100px;width:100px;background:#f4f4f4;color:#ffffff"> <div id="demo1"> <img src="yue.jpg"> <img src="yue.jpg"> <img src="yue.jpg"> <img...

月影WEB的博客 1784

实现JS无缝滚动的双层图片+文字技术探究

无缝滚动是一种常见的网页动态效果,通过连续不断地滚动内容,给用户带来动态和连续的视觉体验。它经常被应用于新闻滚动、商品展示和数据展示等多种场景。基本原理是通过JavaScript动态调整DOM元素的位置,使其在水平或垂直方向上循环滚动,而不会出现明显的断点。无缝滚动的基本步骤包括初始化滚动容器、创建滚动内容、通过JavaScript动态改变元素位置,并通过定时器或动画帧控制更新频率。下面章节会详细介绍JavaScript代码实现、双层滚动机制、缓动动画优化、自动滚动实现以及性能优化等关键步骤。

weixin_30820933的博客 1174

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(一)

CHB-MIT癫痫EEG脑电数据处理CHB-MIT头皮脑电图数据介绍CHB-MIT头皮脑电图数据下载CHB-MIT头皮脑电图数据处理提取原始数据滤波(0.1~50hz)数据分块(时间窗口) CHB-MIT头皮脑电图数据介绍 该数据库收集自波士顿儿童医院,其中包括患有难治性癫痫发作的儿科患者的脑电图记录。停用抗癫痫药物后最多持续几天对受试者进行监测,以表征其癫痫发作并评估其对手术干预的候选资格。 从22位受试者中收集了23个病例的记录(5例男性,3至22岁; 17例女性,1.5至19岁)。 (案例chb21是

AI_DOG的博客 1万+

js实现无缝轮播图

一、轮播图需求 需要实现每隔一定时间进行下一张图片的自动轮播 需要点击左右按钮可以进行上下图片的切换 显示当前位置的小圆点 点击小圆点可以切换到对应的图片上 鼠标移入可视区时,停止轮播,显示左右按钮 下面我们来看一下效果图: 二、轮播图的原理 图片移动实现原理:利用浮动将所有所有照片依次排成一行,给这一长串图片ul添加一个父级的遮罩(就是可视区),每次只显示一张图,其余的都隐藏起来。对图片添加绝对定位,通过控制left属性,实现照片的移动。 图片移动动画原理:从当前图片移动到下一张...

weixin_45571121的博客 4519

CANoe SOME/IP实战:从ARXML到VCODM的完整配置与调试

本文详细介绍了使用CANoe进行SOME/IP通信测试的完整流程,从硬件环境准备、ARXML文件处理到VCODM文件配置与调试。通过实战技巧和常见问题解决方案,帮助工程师高效完成从ARXML到VCODM的配置,确保SOME/IP通信的稳定性和可靠性。

weixin_29169899的博客 466

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

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

zoro的博客 1万+

华为eNSP与VMware虚拟机联动实战:从零搭建仿真网络环境

本文详细介绍了如何从零开始搭建华为eNSP与VMware虚拟机的联动仿真网络环境。通过环境准备、网络适配器配置、eNSP与VMware网络集成、安全策略与NAT配置等步骤,帮助读者掌握构建企业级网络实验场景的关键技术。这种组合特别适合网络工程师进阶训练和华为认证考试准备,实现低成本、高灵活性的网络仿真实验。

weixin_30415113的博客 502

Anaconda镜像源切换全攻略:从清华源到恢复默认设置的完整流程

本文详细介绍了Anaconda镜像源的管理与优化,重点讲解了如何配置清华源以提升国内下载速度。内容涵盖镜像源工作原理、清华源详细配置步骤、多源管理策略、常见问题排查以及如何安全恢复默认设置,帮助用户构建完整的镜像源管理体系。

weixin_28828243的博客 1021

JS图片无缝滚动

JS图片无缝滚动: 效果如下图: 效果是很美丽的,非常平滑的JS图片滚动特效代码,无缝循环,速度可自定义,

NiceGY 1933

二、ROS2完成Docker容器和宿主机通信,使用ros2 topic list看到,但是无法echo

如果容器和主机权限不一致,则会导致无法通信(我的代码中,docker容器是root,宿主机是普通用户),虽然可以查询到相关话题,但是订阅后没有消息输出。比如,docker容器创建了一个共享内存,其所有者为docker容器用户root,当宿主机去访问的时候,由于用户不同,没有权限访问,也就无法进行信息传递。该方法只是临时修改共享内存的权限,每次运行完,需要重新运行上述命令,才可以进行通信。在运行的过程中,ROS2使用了共享内存机制,会共享内存。运行之后,宿主机和容器可能用户名不同,这是因为。

qq_43280851的博客 1265

dw按钮图片滚动js_js实现图片无缝滚动特效

首先,无缝滚动的第一个重点就是——动。关于怎么让页面的元素节点动起来,这就得学明白关于JavaScript中定时器的相关知识。JS中的创建定时器的方法包括两种:setTimeout和setInterval。首先它们接收的参数相同:第一个参数是一个函数,用于定时器执行,第二个参数是一个数字,代表过多少毫秒之后定时器执行函数。它们的不同在于:setTimeout 是在经过指定的时间之后,只执行一次函数...

weixin_39926588的博客 2458

SOEM主站开发篇(1):移植SOEM主站到Linux开发板

详细介绍了SOEM主站源码移植到Linux开发板上的步骤,同时演示了如何使用Linux开发板获取EtherCAT从站的PDO映射信息。

kevin1499的博客 2396

符合DO-178C和DO-331的机载软件研制体系

DO-178C的核心要求软件开发生命周期:DO-178C定义了软件开发的生命周期过程,包括需求获取、设计、实现、验证和确认等。它为机载软件开发提供了一套系统化的指导,确保在开发过程中考虑安全性和可靠性。安全等级(DAL):根据系统的重要性,DO-178C将软件划分为不同的开发保障等级(DAL A到E),DAL A的要求最为严格,适用于关键安全功能,而DAL E的要求较低,适用于非关键功能。DO-178C在非基于模型软件开发中的应用。

qq_41854911的博客 978

html无缝滚动原理,JavaScript实现图片无缝滚动效果

图片无缝滚动就是图片一直不停的滚动,好像没有无穷无尽似的,实际上就是几张图片不停的循环,但是看不出有从最后面切换到最前面的效果,这就是无缝滚动,文字和图片都可以无缝滚动,这里介绍的是图片,文字是同样的原理。原理以向上无缝滚动为例,其余几个方向的无缝滚动原理是一样的,点击向上无缝滚动。设定一个可视区域,超过可视区域的部分隐藏,这里是将nav部分作为可视区域,ul#img是中包含所有的图片,实现无缝滚...

weixin_27372101的博客 867

YOLOv11改进策略【卷积层】| CVPR 2024 可变形卷积 v4(DCNv4)无界权重提表达 + 线程合并降冗余,强化模型收敛速度

DCNv4(Deformable Convolution v4)是一种专为广泛视觉应用设计的高效算子,它对DCNv3进行了关键改进,有效解决了DCNv3存在的速度慢和表达能力受限等问题。

Limiiiing的博客 925

JavaScript实现图片的无缝滚动

html部分 //展示窗口 <div class="showWin"> //包裹图片的div <div class="wrapper"> <img src="img/1.jpg" title="小奶妈"> <img src="img/2.jpg" title="大乔"> <img src="img/3.jpg" title="李...

goulite的博客 187

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

前端emojs_原生js javascript实现图片无缝滚动

原生js javascript实现图片无缝滚动,原理很简单,直接上代码!CSS样式:*{margin:0;padding:0;}ul{list-style:none;float:left;}a{border:none;outline:none;}img{border:0;}li{margin:5px;border:3pxdouble#00a67c;float:left;}liimg{wid...

weixin_39947521的博客 184

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JS实现图片无缝滚动的完美解决 无间隙滚动

摘录网上JS实现图片无缝滚动的完美解决 无间隙滚动2007-08-09 09:31innerHTML:    设置或获取位于对象起始和结束标签内的 HTMLscrollHeight: 获取对象的滚动高度。scrollLeft:   设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:    设置或获取位于对象最顶端和窗口

shuilv2000的专栏 2895

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

在html中使用js实现图片的无缝滚动(四种状态)

获取整个ul和ul下面的所有li, 把ul里面的li内容添加一份,因为需要完成图片滚动效果所以需要二份完成无缝对接, 定义初始速度。设置定时器 在定时中进行判断 实现原理:因为ul是跟着父元素div进行定位的,所以ul的offsetleft的值初始值为0。只需要改变ul的left值就可以完成滚动效果 当ul的offsetleft值大于0的时候说明图片正在向右滚动,此时只需要把当前left值变成整个盒子的一半。并且将盒子定位到左边一半的位置就能完成滚动中的无缝对接。当uL的offset值小于负的此时盒

梁辰兴的博客 8790

[js] 图片无缝连续循环滚动(转)

[js] 图片无缝连续循环滚动(转)作者:城市睦人 日期:2006-07-08字体大小: 小 中 大    如何做到首尾两张图片相连不间断(无缝连续循环)滚动呢?  解决思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆副本,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目

ie421.Net 2806

js图片滚动无缝衔接

js图片滚动无缝衔接 &lt;style&gt; *{ margin:0; padding:0; } div{ width:600px; height:200px; position:relative; border:1px solid red; margin:100px; overflow:hidden; } ul{ wi...

lixiaoyan_star的博客 1019

原生JS简单实现图片无缝滚动

图片无缝滚动的轮播主要利用滚动轴–x来实现,首先是HTML部分的实现 <div id="d1"> <div id="d2"> <div id="d3"> <img src="./0118练习/img/111.jpg" alt=""/> <img src="./0118练习/...

nrskhdzl的博客 326
上一篇: 数组的定义
下一篇: 如何去掉点击a链接时周围的虚线框
小小樟鱼
博客等级 码龄10年 38粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值