Jquery实现左右轮播效果
首先展示下静态布局h5代码,代码非常简单。
<div id="slide">
<ul class="pic-list">
<li><img src="banner1.jpg"></li>
<li><img src="banner2.jpg"></li>
<li><img src="banner3.jpg"></li>
<li><img src="banner1.jpg"></li>
</ul>
<div class="btn next">右</div>
<div class="btn prev">左</div>
<ul class="icon-list">
<li class="active"></li>
<li></li>
<li></li>
</ul>
</div>

以下代码为样式布局部分。通过先li左浮动,设置ul的overflow值为hidden,将其他图片隐藏。主要结构如下图,黑色框内部分为可见部分。其他部分为不可见。至于为什么多放一张图1,稍后会解释。

css样式
<style type="text/css">
*{
margin: 0;
padding: 0;
}
ul,li{
list-style-type: none;
}
#slide{
height: 400px;
width: 600px;
margin: 100px auto;
position: relative;
overflow: hidden;
}
.pic-list{
width: 2400px;
height: 400px;
position: absolute;
top: 0;
left: 0;
}
.pic-list li{
float: left;
}
.pic-list li img{
width: 600px;
height: 400px;
}
.btn{
opacity: 0;
position: absolute;
top: 50%;
height: 50px;
width: 50px;
/*opacity: 0.5;*/
border-radius: 5px;
cursor: pointer;
user-select: none;
background: white;
font-size: 25px;
line-height: 50px;
text-align: center;
transition: all 1s;
transform: translateY(-50%);
}
.next{
right: 0;
}
.icon-list{
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
}
.icon-list li{
float: left;
margin: 0 5px;
height: 10px;
width: 10px;
border-radius: 50%;
background: #ccc;
cursor: pointer;
}
.icon-list .active{
background: #fff;
}
</style>
静态布局后,布局如下图所示

静态布局后,最后开始写入JS代码,实现轮播效果,其他的不说 ,先上代码
<script type="text/javascript">
$(function(){
var timer = null; //声明一个全局定时器
var index = 0; //索引
$(".next").click(function(){ //点击右按钮,调用下一张
next();
});
$(".prev").click(function(){ //点击左按钮,调用上一张
prev();
})
function next(){ //右按钮
index++;
if(index > 2){
/*
当图片到最后一张时跳回第一张,
本例中在最后一张中放入了第一张的图片,
为实现无缝切换图片的效果。
*/
$(".pic-list").animate({left:-(index)*600},500);
index = 0;
$(".pic-list").animate({left:0},0);
}
$(".pic-list").animate({left:-index*600},500);
iconHover(index);
}
function prev(){ //左按钮
index--;
if(index < 0 ){
index = 2;
$(".pic-list").animate({left:-(index+1)*600},0);
}
$(".pic-list").animate({left:-index*600},500);
iconHover(index);
}
function auto(){
timer = setInterval(function(){ //设置自动播放的定时器
next();
iconHover(index);
},2000)
}
auto(); //调用auto
$("#slide").mouseover(function(){ //鼠标移入 定时器取消
clearInterval(timer);
$('.btn').css("opacity",0.5)
})
$("#slide").mouseleave(function(){ //鼠标离开 定时器开启
auto();
$('.btn').css("opacity",0)
})
//鼠标碰触圆点图标实现图片左右轮播
$(".icon-list li").mouseover(function(){
var index = $(this).index();
$(".pic-list").animate({left:-index*600},500);
iconHover(index);
})
//实现被选图片对应圆点图标索引更新
function iconHover(index){
$(".icon-list li").eq(index).addClass("active").siblings().removeClass("active");
}
})
</script>
https://blog.csdn.net/weixin_39230257/article/details/82431354
Jquery实现左右轮播效果的更多相关文章
- jQuery个性化图片轮播效果
jQuery个性化图片轮播效果 购物产品展示:图片轮播器<效果如下所示> 思路说明: 每隔一段时间,实现图片的自动切换及选项卡选中效果,鼠标划入图片动画停止,划出或离开动画开始 两个区域: ...
- JQuery实现图片轮播效果源码
======================整体结构======================== <div class="banner"> <ul class ...
- MBB类似jquery.bxslider插件轮播效果
首先,如图一:当打开页面是,产品出现了淡入淡出切换轮播状态,当鼠标点击左边的小图时,就会切换出相对应的大图,当鼠标移开的时候,这个轮播就会停止自动轮播,只有人工手动才能进行切换:是一个不错的体验! 如 ...
- [转]jQuery实现图片轮播效果,jQuery实现焦点新闻
本文转自:http://blog.csdn.net/tsyj810883979/article/details/8986157 效果图: 实现代码: <!DOCTYPE html> < ...
- jquery简单的轮播效果!
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- 使用JQuery实现图片轮播效果
[效果如图] [原理简述] 这里大概说一下整个流程: 1,将除了第一张以外的图片全部隐藏, 2,获取第一张图片的alt信息显示在信息栏,并添加点击事件 3,为4个按钮添加点击侦听,点击相应的按钮,用f ...
- jQuery带缩略图轮播效果图片切换带缩略图
以上为效果图 HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...
- [Jquery]焦点图轮播效果
$(function(){ var $next=$(".right"); var $prev=$(".left"); var $list_nu ...
- (转)jquery实现图片轮播
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- scanf的返回值
参考这个博客,https://blog.csdn.net/sinat_40936062/article/details/84348021 #include<stdio.h> int mai ...
- Ubuntu下搭建Kubernetes集群(2)--docker基本操作
查看当前的容器和images docker ps -a docker images 1.创建新的容器 docker run -it --name 容器名 镜像名 /bin/bash # 挂载目录和端口 ...
- Linux系统下root密码遗忘等系统故障的修复方法 - 运维总结
IDC机房有一台centos系统的服务器,由于这台服务器的系统装了好长时间,且root密码中间更新过几次,后面去机房现场维护时,登陆密码遗忘了,悲催啊~没办法,只能开机进入“单用户模式”进行密码重置了 ...
- MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式
视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...
- 【Android】从Eclipse到AndroidStudio的工程迁移
1.新建Android Studio的代码目录 2.打开AS,选择File---->New---->Import Project 3.在弹出的对话框选择Eclispe代码目录 4.选择Ec ...
- 06-人脸识别-MTCNN的感性认识(转载)
找到一个总结很好的blog. 具体训练的过程会在后续的随笔中给出. 转载自: https://blog.csdn.net/lff1208/article/details/77328357 以下是内容: ...
- Mybatis-Plus Bugs
Mybatis-Plus Bugs 实体类中属性和数据库字段对应异常 Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'user ...
- Docker底层原理(三)
1. 我们运行:docker run hello-world 由于本地没有hello-world,所以会远程下载一个hello-world的镜像,并在容器内运行. 2. docker run干了什么?
- Python 包:
分享一波油藏描述方面的Python开源包 前一阵去捷克参加了数学地质年会(IAMG2018),听完汇报,发现在数学地质领域用python的越来越多了,他们的很多成果都是用python做出来的.不管喜不 ...
- Jmeter接口测试,怎么在下一个接口调用上一个接口的数据
常用的两种方式,第二种容易上手1.使用正则提取器 jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器(http://www.cnblogs.com/0201zcr/p/5089 ...