纯js实现淘宝商城轮播图
需求:
循环无缝自动轮播3张图片,点击左右箭头可以手动切换图片,鼠标点击轮播图下面的小圆点会跳转到对应的第几张图片。鼠标放到轮播图的图片上时不再自动轮播,鼠标移开之后又继续轮播。
效果图:

下面是html代码:
<div id="box">
<div id="imgbox">
<div><img src="img/tu1.jpg" alt="" /></div>
<div><img src="img/tu2.jpg" alt="" /></div>
<div><img src="img/tu3.jpg" alt="" /></div>
</div>
<div class="yuandian">
<a href="#" class="xiaoyuan"></a>
<a href="#" class="xiaoyuan"></a>
<a href="#" class="xiaoyuan"></a>
</div>
<div id="jiantou">
<span id="jt_left" class="jiant"><</span>
<span id="jt_right" class="jiant">></span>
</div>
</div>
css代码:
* {
margin: ;
padding: ;
}
#box {
position: relative;
width: 520px;
height: 280px;
/*background-color: pink;*/
margin:100px auto;
overflow: hidden;
}
#imgbox {
position: absolute;
top: ;
left: ;
width: 99999px;
cursor: pointer;
height: %;
}
#imgbox img {
float: left;
}
.yuandian {
position: absolute;
left: 230px;
bottom: 20px;
width: 60px;
height: 15px;
border-radius: 20px;
background: rgba(,,,.);
}
.yuandian a {
float: left;
width: 10px;
height: 10px;
border-radius: 10px;
margin: 2px 7px;
background-color: white;
}
#jt_left {
left: ;
border-top-right-radius:2em;
border-bottom-right-radius:2em;
}
#jt_left,
#jt_right {
position: absolute;
top: 140px;
width: 35px;
height: 35px;
line-height: 35px;
cursor: pointer;
font-size: 18px;
text-align: center;
background: rgba(,,,.);
}
#jt_right {
right: ;
border-top-left-radius:2em;
border-bottom-left-radius:2em;
}
js代码:
<script type="text/javascript">
// 获取小圆点
var xiaoyuan = document.getElementsByClassName("xiaoyuan");
// 获取装图片的盒子
var imgbox = document.getElementById("imgbox");
// 获取左右箭头
var jiantou = document.getElementsByClassName("jiant");
//小圆点控制图片
xiaoyuan[].onclick = function () {
imgbox.style.left = ;
}
xiaoyuan[].onclick = function () {
imgbox.style.left = "-520px";
}
xiaoyuan[].onclick = function () {
imgbox.style.left = "-1040px";
}
//左箭头控制图片
jiantou[].onclick = function () {
if (imgbox.offsetLeft == ) {
imgbox.style.left = "-1040px";
console.log(imgbox.offsetLeft);
} else {
imgbox.style.left = imgbox.offsetLeft + + "px";
}
}
//右箭头控制图片
jiantou[].onclick = function () {
if (imgbox.offsetLeft <= -) {
console.log(imgbox.offsetLeft);
imgbox.style.left = ;
} else {
imgbox.style.left = imgbox.offsetLeft - + "px";
}
}
//定时器控制图片轮播
var fun1 = function () {
if (imgbox.offsetLeft <= -) {
imgbox.style.left = ;
} else {
imgbox.style.left = imgbox.offsetLeft - + "px";
}
}
var t = setInterval(fun1, );//fun1是你的函数
// 鼠标经过停止轮播
imgbox.onmouseover = function () {
clearInterval(t) //关闭定时器
}
// 鼠标离开开启定时器
imgbox.onmouseout = function () {
t=setInterval(fun1,)//重新开始定时器
}
</script>
纯js实现淘宝商城轮播图的更多相关文章
- js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...
- JS封装动画框架,网易轮播图,旋转轮播图
JS封装动画框架,网易轮播图,旋转轮播图 1. JS封装运动框架 // 多个属性运动框架 添加回调函数 function animate(obj,json,fn) { clearInterval(ob ...
- 原生js实现简单移动端轮播图
最近项目不是很忙,自己就用原生js写了一个简单的移动端轮播图的小demo,可实现自动轮播和手势滑动轮播,然后就把它记录到个人博客里.还有很多不足的地方,希望多多指出,以便改进. 1.代码部分 分为四个 ...
- JS应用实例2:轮播图
在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...
- 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)
SuperSlide 2 轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...
- 原生js实现一个简单的轮播图
想锻炼一下自己的原生js能力可以从写一个轮播图开始,轮播图的运用想必大家都知道吧,好了废话不多说,开始记笔记了,一些需要注意的点,我都在代码中标注了 首先是构造html: <div id=&qu ...
- 纯HTML和CSS实现JD轮播图
博主使用了纯HTML和CSS实现了JD的轮播图,没有加动态效果,主要是使用了定位的知识. ,如图为两个侧边箭头图片(其实实际中应该使用CSS3的图标字体,这里没有使用). <!DOCTYPE ...
- 基于js的自适应、多样式轮播图插件(兼容IE8+、FF、chrome等主流浏览器)
插件github地址:https://github.com/pomelott/slider-plug_in 使用方式: slider plug-in 左右滑动的自适应.多样式全能插件.多次调用时只需传 ...
- JS原生带小白点轮播图
咱们刚刚说了js原生轮播图,现在给他加上可以随着一起走动的小圆点吧! css代码: *{ margin:0px; padding: 0px; } ul{ width: 2500px; height: ...
随机推荐
- shell括号和linux算术运算
一.小括号() 1. 单小括号() a).命令组 (a=0;touch a.txt) 小括号中的内容会开启一个子shell独立运行:括号中以分号连接,最后一个命令不需要:各命令和括号无空格 b).命令 ...
- scrapy框架爬取蜂鸟网的人像图片
今天有点无聊,本来打算去蜂鸟网爬点图片存起来显得自己有点内涵,但是当我点开人像的时候就被里面的小姐姐所吸引了,下面就是整个爬图片的思路和过程了 第一步:先创建一个爬虫项目 scrapy startpr ...
- Gdiplus的使用 gdi+
使用步骤: 1.包括相应的头文件及引入相应的lib 1 #include <GdiPlus.h> 2 #pragma comment(lib, "gdiplus.lib" ...
- Proxy模式(代理[延迟]模式)
Proxy?? Proxy是"代理人"的意思,它指的是代替别人进行工作的人.代理实际上就是使用委托的机制,在代理的过程中你可以做点其他的事情,然后再来执行被代理对象的代码. 知识储 ...
- springboot 参数校验详解
https://www.jianshu.com/p/89a675b7c900 在日常开发写rest接口时,接口参数校验这一部分是必须的,但是如果全部用代码去做,显得十分麻烦,spring也提供了这部分 ...
- JAVA内存模型(Java Memory Model ,JMM)
http://blog.csdn.net/hxpjava1/article/details/55189077 JVM有主内存(Main Memory)和工作内存(Working Memory),主内存 ...
- Python 的execfile用法
可以直接执行脚本 而import是将脚本导入另一个文件里,可以看 http://docs.python.org/2/library/functions.html 例如一个Python文件 a.py: ...
- (一)Redis简介和安装
1 Redis介绍 1.1 什么是NoSql 为了解决高并发.高可扩展.高可用.大数据存储问题而产生的数据库解决方案,就是NoSql数据库. NoSQL,泛指非关系型的数据库,N ...
- Docker | 第七章:Docker Compose服务编排介绍及使用
前言 前面章节,我们学习了如何构建自己的镜像文件,如何保存自己的镜像文件.大多都是一个镜像启动.当一个系统需要多个子系统进行配合时,若每个子系统也就是镜像需要一个个手动启动和停止的话,那估计实施人员也 ...
- 扒前端网页js代码
红框是前端代码:输出script中 的内容 可以把红色区域的前端代码 转为java代码 来扒别的网站前端代码 转换成java代码之后,在控制台输入以下代码,点击回车则可以去打印出当前网页上的js fo ...