js水平无缝滚动代码实例详解

js水平自定义滚动,实现拖动效果 js水平横向滚动条自定义 阅读详情

本章节分享一段代码实例,它实现了图片无缝水平滚动效果。

这样的功能在实际应用中比较常见,感兴趣的朋友可以做一下参考。

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
* {
  margin: 0;
  padding: 0;
}
#box {
  position: relative;
  width: 800px;
  margin: 100px auto;
}
#div1 {
  width: 800px;
  height: 120px;
  position: relative;
  overflow: hidden;
}
ul {
  position: absolute;
  left: 0;
  top: 0;
}
li {
  float: left;
  list-style: none;
  width: 160px;
  height: 120px;
}
a {
  text-decoration: none;
  position: absolute;
  z-index: 10;
}
.left {
  left: -15px;
  top: 11px;
}
.right {
  right: -15px;
  top: 11px;
}
</style>
<script type="text/javascript">
window.onload = function () {
  var oDiv = document.getElementById("div1");
  var oUl = oDiv.getElementsByTagName("ul")[0];
  var aLi = oUl.getElementsByTagName("li");
  var button = document.getElementsByTagName("a");
  var speed=3;
  oUl.innerHTML += oUl.innerHTML;
  oUl.style.width = aLi[0].offsetWidth * aLi.length + "px";
  function move() {
    if (oUl.offsetLeft < -oUl.offsetWidth / 2) {
      oUl.style.left = 0
    }
    if (oUl.offsetLeft > 0) {
      oUl.style.left = -oUl.offsetWidth / 2 + "px"
    }
    oUl.style.left = oUl.offsetLeft + speed + "px"
  }
  var timer = setInterval(move, 30)
  oDiv.onmousemove = function () {
    clearInterval(timer)
  }
  oDiv.onmouseout = function () {
    timer = setInterval(move, 30)
  }
  button[0].onclick = function () {
    speed = -3
  }
  button[1].onclick = function () {
    speed = 3
  }
}
</script>
</head>
<body>
<div id="box">
  <div id="div1">
    <ul>
      <li><img src="demo/js/img/one.jpg"></li>
      <li><img src="demo/js/img/two.jpg"></li>
      <li><img src="demo/js/img/three.jpg"></li>
      <li><img src="demo/js/img/four.jpg"></li>
      <li><img src="demo/js/img/five.jpg"></li>
    </ul>
  </div>
  <a href="javascript:;" class="left"><img src="demo/js/img/leftbt.jpg"></a>
  <a href="javascript:;" class="right"><img src="demo/js/img/rightbt.jpg"></a>
</div>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).window.onload = function () {},文档内容完全加载完毕再去执行函数汇总的代码。

(2).var oDiv = document.getElementById("div1"),获取id属性值为div1的元素对象。

(3).var oUl = oDiv.getElementsByTagName("ul")[0],获取一个ul元素。

(4).var aLi = oUl.getElementsByTagName("li"),获取oUI元素下所有的li元素集合。

(5).var button = document.getElementsByTagName("a"),获取链接a元素集合。

(6).var speed,声明一个变量,用来设置运动的速度,下面会有介绍。

(7).oUl.innerHTML += oUl.innerHTML,再追加一份原来oul元素下的html内容。

(8).oUl.style.width = aLi[0].offsetWidth * aLi.length + "px",设置oul元素的宽度为所有li的数目乘以li元素宽度。

(9).function move() {

  if (oUl.offsetLeft < -oUl.offsetWidth / 2) {

    oUl.style.left = 0

  }

  if (oUl.offsetLeft >= 0) {

    oUl.style.left = -oUl.offsetWidth / 2 + "px"

  }

  oUl.style.left = oUl.offsetLeft + speed + "px"

},定时器函数每隔指定的时间调用一次move函数也就实现了无缝滚动效果。

如果oul元素小于-oUl.offsetWidth / 2,也就是oul元素向左滚动完毕一个完整图片队列(因为html内容进行了拷贝追加,那么就变成了两个图片队列),那么就将oul的left属性值重置为0。

(10).if (oUl.offsetLeft > 0) {

  oUl.style.left = -oUl.offsetWidth / 2 + "px"

},这个是判断向右滚动是否完成一个图片队列或者处于起始位置。

如果满足上面的条件,那么就将oul的left值设置为-oUl.offsetWidth / 2 + "px"。

(11).oUl.style.left = oUl.offsetLeft + speed + "px",实现滚动效果。

Js实现文字水平滚动 公司项目中有一个公告栏,写的时候我先想到了用marquee,于是发现了marquee有很多弊端,当文字全部显示完才出现新的文字,这样不是很友好,然后一查发现marquee这个标签已经被W3C标准废弃了,也就是不再支持使用这个标签了,于是我便用js+css去替代这个写法,并且做到类似无缝滚动的效果。直接上代码: html代码 <div id="scroll_div" class="fl... 阅读详情

相关推荐

原生Js无缝滚动效果的简单实现

前言: 1.仍然是比较简单的内容,从简单开始慢慢加深自己的js水平。 2.无缝滚动,前提条件是子box的高度要大于父box的高度,这样才有必要去滚动,否则直接展示就可以了。 3.增添了鼠标移入停止和移出继续滚动的效果。 4.在小结部分会总结一些过程中遇到的疑问,还望各位不啬赐教,拜谢。 代码如下: <!-- Time:2016.8.5 Author:Joel 1.html标

TimeToBeWinner 4441

CSS 实现无缝滚动

CSS实现无缝滚动

qq_33003143的博客 1118

JavaScript技巧:实现水平循环滚动的Marquee效果

通过以上的HTML、CSS和JavaScript代码,我们可以实现一个简单的水平循环滚动(Marquee)效果。你可以根据实际需求调整容器的宽度、高度和滚动速度,以及内容的样式,来满足你的需求。首先,我们需要一个容器元素来包含需要滚动的内容。我们可以使用一个div元素,并设置固定的宽度和高度,以及overflow属性为hidden,来隐藏超出容器的内容。接下来,我们复制内容元素,并将其附加到容器的末尾,以实现循环滚动的效果。变量的值,并在内容滚动到末尾时将其重置为0,我们可以实现循环滚动的效果。

TechNovaX的博客 676

无缝滚动的实现

普通代码实现滚动 <div class="m-t-20 fz12 m-l-15">普通滚动</div> <div class="scroll-box"> <div class="new-icon"> </div> <div class="n...

u013262823的博客 531

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

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

weixin_30820933的博客 1174

实现具有按钮控制的JS横向无缝滚动项目

滚动动画的实现通常依赖于CSS3的@keyframes规则来定义动画的关键帧,然后应用到滚动容器上。以下是一个简单的CSS关键帧动画示例:from {to {在上面的代码中,定义了一个动画,使得内的内容从左到右滚动,并在10秒内完成一个完整的动画周期。linear表示动画速度不变,infinite表示动画会无限次循环。

weixin_26805451的博客 816

水平方向无缝滚动的图片特效

1 编写HTML文件 在这里插入代码片 2 编写CSS样式 在这里插入代码片 3 编定JS脚本 在这里插入代码片

weixin_45884768的博客 1937

jQuery拖动时间轴

jQuery拖动时间轴,选取一天某个时间段。

javascript无缝水平滚动实例

首先看源代码: &lt;html&gt; &lt;head&gt; &lt;title&gt;无缝滚动实例--左右滚动&lt;/title&gt; &lt;style type="text/css"&gt; img { border:none; margin:0px; } #demo { width:600px; overflow:hidden; height:120px; borde...

Code loading 173

NC65实现Restful接口开发及调试

NC65实现Restful接口开发及调试

linzhongshu的专栏 2146

10分钟上手YOLOv11:最强姿态估计模型来了,代码开源,效果炸裂!

【10分钟玩转YOLOv11实时姿态估计】🚀 YOLOv11作为YOLO家族最新成员,在速度、精度和易用性上全面升级,尤其适用于姿态估计等复杂视觉任务。本文带您快速掌握: 1️⃣ 核心概念:姿态估计即识别人体17个关键点(如关节部位)并连接成数字骨架,是智能健身、体感游戏等应用的基础。 2️⃣ 技术优势: 超轻量级(最小仅2.9M参数) 极速推理(GPU仅1.7ms) 高精度(COCO mAP@50-95达50%) 3️⃣ 三步实操: ① 安装:pip install ultralytics ② 准备人物

weixin_41246802的博客 1789

手把手教你用原生js实现无缝滚动

效果展示 上图就是我们要实现的无缝滚动效果。 整体思路 按照惯例我们先来说一下思路,一开始图片静止,点击各个按钮,顾名思义都有相应的效果,无缝滚动最主要的效果就是图片一直保持匀速运动。 点击向右按钮(点击事件),红色框框内(框框相对定位)的图片(图片绝对定位)开始滚动,不停止(定时器),这里所有图片应该用一个容器包裹起来绝对定位给到这个图片的父级容器,然后,设置一个定时器,获取图片父级容器的left,每运行一次定时器,增加一次或减少一次left,这样就可以做出向...

Devil_ErKang的博客 5865

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

基于vue.js的无缝滚动

本文介绍了两种实现无缝滚动效果的方法。第一种基于requestAnimationFrame,通过JavaScript动态计算偏移量实现垂直和水平方向的平滑滚动,支持鼠标悬停暂停功能。第二种方法基于CSS动画实现。示例代码展示了Vue组件AutoScroll的实现,包含方向控制、数据绑定、滚动速度调节等功能,并支持垂直和水平两种滚动方式。两种方法都适用于列表数据超过指定数量时自动开启无缝滚动效果,组件设计考虑了性能优化和响应式交互需求。

qq_41985405的博客 9079

K210视觉项目上位机避坑指南:解决C#解析ESP8266 TCP图像流的乱码、卡顿与连接中断

本文详细解析了K210与ESP8266在视觉项目中的上位机开发问题,重点解决TCP图像流解析中的乱码、卡顿与连接中断问题。通过自定义协议、JPEG流重组、TCP连接优化等实战技巧,提升系统稳定性和性能,适用于嵌入式视觉开发者和C#上位机程序员。

weixin_28730131的博客 402

Vector CANape的使用记录

开门见山,今天想和大家分享下CANape使用记录,分享原因是近日在分析一个客户现场软件问题时,需要用到CANape来实时的监测ECU中的变量,因为之前对CANape的认知比较浅薄,觉得标定工程师使用他就足够了,但是这次的经历让我觉得需要写点东西来记录自己学习并使用他的过程。 相信大家能够在网上找到很多关于如何使用CANape的文章,从新建Project到后面的数据的观测、保存以及回放等等。我个人也是这么学过来的,所以我不打算从那些方面着手去描述如何使用她,而是根据我的真实使用过程以及问题的抛出到如何解决来

2万+

html5实现图片无缝滚动,原生javascript实现图片无缝滚动效果,javascript无缝滚动...

原生javascript实现图片无缝滚动效果,javascript无缝滚动图片水平无缝滚动效果在大量的网站都有应用,特别是一些企业网站在展示产品的时候,因为是动态效果,所以能够给网站增色不少,相比静态图片展示更能够吸引用户的注意力,下面就通过实例代码介绍一下如何实现此效果。代码如下:登博教程#demo{background:#FFF;overflow:hidden;border:1px dashe...

weixin_32264185的博客 648

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 299

css 实现跑马灯/走马灯无缝衔接 js实现无缝滚动图片

先上效果图 首先呈上效果图,主要是针对图片跑马灯效果(请忽略我的快速播放和录屏图标) 具体实现方式 目前我需要展示6张图片,但是为了实现无缝衔接,我的列表放了12张(放2遍图片),这样就不至于在切换时出现那么几毫秒的跳动。 <div id="swiper-roll-wrapper"> <div id="swiper-roll"> <d...

Taurus_666 6003

【数据集8】全球人口数据WorldPop详解

全球人口数据WorldPop详解

WW、forever的博客 7882

YOLOv13改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU)

本文记录的是改进YOLOv13的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 870

js图片无缝滚动

虽然是一个简单的案例,但思想确实很巧妙,且一通百通! 主要原理:利用利用动态创建一个与当前相同的图片条,利用scrollLeft(滚动条的左水平偏移来实现滚动 用利用视觉暂留效应,实现图条的无缝循环; &lt;!-- 像电子屏一样的循环滚动 --&gt; &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;...

ICY___的博客 630

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jQuery插件 之 无缝滚动

实现效果 二. Html骨架结构 <div class="box"> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> </div> 三. 原理讲解 1. div....

Lisen的博客 1202

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JS无缝转动代码

<br />[导读] 一个中级的上、下、左、右滚动代码,Js无缝滚动代码,可以控制滚动速度、滚动方向,而且考虑到了obj.style.attr只能获取到行内样式,因而还增加了JS判断获取确切的外补丁,以消除非行内样式的外补丁对无缝衔接的影响。JS通过四次循环内部元素的方式来保持滚动,所以只要原始内容尺寸超过容器对应尺寸的1/4就能滚动,降低了之前两次循环元素时的滚动门槛。<br />  第一个参数 con_id 是用于JS找到元素的,是滚动元素的id。<br />  第二个参数 speed_num 是用来设

MyNomber的专栏 667

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

js实现无缝滚动的水平公告

js实现无缝滚动的水平公告// css .box { margin: 50px auto; padding: 10px; width: 1000px; height: 35px; line-height: 35px; border: 1px dashed red; background: lightgoldenrodyellow; }.wrap

m0_37068028的博客 5674

html滚动效果代码,javascript 实现滚动效果代码整理

1.先写两个最常用最简洁的滚动代码代码如下:水平滚动:水平滚动字幕内容垂直滚动:垂直滚动字内容2.平稳不间断滚动var tm=nullfunction newsScroll() {var scrollimg=document.getElementById("scroll")if(scrollimg.parentNode.scrollTop!=(scrollimg.clientHeight/2))s...

weixin_33444829的博客 1918
上一篇: t计算时间差详解
下一篇: JavaScript可以开始和停止的倒计时
Return_KB
博客等级 码龄9年 23粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值