
手把手教你用JS写一个图片轮播效果
发布日期:2021-05-10 05:02:25
浏览次数:24
分类:原创文章
本文共 2192 字,大约阅读时间需要 7 分钟。
1、前言
写页面的时候,有些地方经常会用到一些轮播图,比如主页Banner的轮播,或者在页面最下面的小图片轮播,这篇文章就教大家如何写一个小的轮播效果。
2、正文
先放一张效果图。
图片轮播
然后直接看代码吧。看一下代码,在讲里面的原理。
<div id="content"> <div id="content_img"> <div id="content_img1"> <a href="#"><img src="1.jpg" style="width:100px;height:80px" border="0" /></a> <a href="#"><img src="2.jpg" style="width:100px;height:80px" border="0" /></a> <a href="#"><img src="3.jpg" style="width:100px;height:80px" border="0" /></a> <a href="#"><img src="4.jpg" style="width:100px;height:80px" border="0" /></a> <a href="#"><img src="5.jpg" style="width:100px;height:80px" border="0" /></a> </div> <div id="content_img2" style="border:1px solid red"></div> </div> </div> <script> var speed = 10; var img = document.getElementById("content"); var img1 = document.getElementById("content_img1"); var img2 = document.getElementById("content_img2"); img2.innerHTML = img1.innerHTML; //把img1的内容给img2 function Carousel() { if (img2.offsetWidth - img.scrollLeft <= 0) //如果img2的宽度 减去img滚动条 距离左边的距离小于等于0 也就 img2距离左边的距离小于等于0 img.scrollLeft -= img1.offsetWidth // 把img2的位置,继续放到右侧 开始向左滚动 else { img.scrollLeft++; //向左移动 每次加一 } } var MyMar = setInterval(Carousel, speed); //写个定时器 img.onmouseover = function () { clearInterval(MyMar) //鼠标移动进去的时候 停止图片滚动 }; img.onmouseout = function () { MyMar = setInterval(Carousel, speed) //鼠标一开,继续滚动 }; </script>
这里主要有三点需要解释下。
1.图片为什么会滚动?
答:我先看一下img2这个div的宽度是多少,然后看这个div距离左边的位置有多远,如果位置大于0,那就距离左边的位置-1,代码里写的是img2.offsetWidth - img.scrollLeft <= 0
,这里img.scrollLeft
是img这个大div里面的滚动条距离左边的距离,其实也就是img2距离左边的距离。然后动起来的关键是setInterval(Carousel, speed);
写个定时器,10毫秒执行一次。
2.为什么写两个放图片的div。
答:如果不写两个,那效果是这样的。
Video_2018-10-29_112552.gif
3.写onmouseover
和onmouseout
的作用?
一般这种轮播图都是可以点击的,所以写onmouseover
作用就是鼠标放到图片上的时候,图片静止,然后写onmouseout
是鼠标离开的时候,图片在继续滚动。
3.总结
一个小小的轮播里面涉及的知识还是挺多的,学无止境。
Study hard and make progress every day.
想要源码的同学请关注微信公众号“爱游戏爱编程”,然后回复“轮播”即可获取源码。
爱游戏爱编程.jpg
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月23日 00时24分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
chapter.requests库1.2
2021-05-10
C/C++初学之创建项目
2021-05-10
C/C++语法规则
2021-05-10
C/C++输入与数据类型
2021-05-10
C/C++之内联函数与递归函数
2021-05-10
爱生气的书店老板
2021-05-10
132模式
2021-05-10
洛谷 P5712 【深基3.例4】Apples
2021-05-10
vue3.0基础语法
2021-05-10
24.一张图简单概述io流
2021-05-10
什么是JDBC?
2021-05-10
字节跳动后端开发开发者生态一面算法题思考
2021-05-10
ENSP模拟器
2021-05-10
基础数据结构之字符串
2021-05-10