大致介绍

看到了一个轮播图的思路,就想的自己动手实践一下,总体来说用jQuery实现起来简单多了
思路
思路其实非常简单,就是当点击图片下面的圆点或者图片两边的箭头时,让想要看到的图片走到它的位置,然后当前的图片和想要看到的图片按照一个方向运动就可以了
例如:我们点击第五个小圆点,让第五个图片跑到当前图片的后面,然后一起向左运动
当然了,如果你想要看前面的图片,让图片先跑到当前图片的左边,然后和当前图片一起向右运动
基本结构与样式
<div class="lunbo"> <div class="picture"> <ul> <li><img src="img/1.jpg"></li> <li><img src="img/2.jpg"></li> <li><img src="img/3.jpg"></li> <li><img src="img/4.jpg"></li> <li><img src="img/5.jpg"></li> </ul> </div> <ul class="btn"> <li id="active"><div></div></li> <li><div></div></li> <li><div></div></li> <li><div></div></li> <li><div></div></li> </ul> <div id="left"><img src="img/left.png"></div> <div id="right"><img src="img/right.png"></div> </div>
*{
margin: 0;
padding: 0;
}
.lunbo{
width: 100%;
height: 410px;
position: relative;
text-align: center;
}
.picture{
width: 1190px;
height: 480px;
position: absolute;
top: 0;
left: 88px;
overflow: hidden;
}
.picture li{
width: 1190px;
height: 410px;
margin: 0 auto;
list-style-type: none;
margin-top: 70px;
position: absolute;
overflow: hidden;
top: ;
left: ;
}
.picture img{
cursor: pointer;
}
.btn{
display: block;
width: 150px;
height: 30px;
position: absolute;
top: 460px;
left: 130px;
}
.btn li{
display: block;
width: 10px;
height: 10px;
background-color:white;
list-style-type: none;
position: absolute;
top: 0px;
left: 0px;
border-radius: 10px;
cursor: pointer;
}
#active{
background-color: #03A9F4;
}
.btn li:hover{
background-color:#9e9e9e;
}
#left{
position: absolute;
top: 240px;
left: 90px;
cursor: pointer;
}
#right{
position: absolute;
top: 240px;
left: 1220px;
cursor: pointer;
}
然后我们用jQuery来设置初始图片的位置和小圆点的位置
function setCirPos(){
// 设置圆点的位置
$cir.each(function(){
$(this).css({
left:$(this).index()*25 + 500
})
});
// 设置刚开始不显示的图片的位置
$pic.slice(1).each(function(){
$(this).css({
left:$picW
})
})
}
自动轮播
先来看看定义的全局变量
var $cir = $('.btn li');
var $pic = $('.picture li');
var $picW = $pic.width();
var $oLeft = $('#left');
var $oRight = $('#right');
// 当前图片
var nowPic = 0;
// 防止用户连续的点击
var canClick = true;
// 定时器
var timer = null;
设置nowPic是为了记录当前显示的图片,因为这个轮播图一共有三种触发图片切换的方法,所以这个变量是三个方法要共享的
设置canClick变量是为了防止用户在图片切换动画效果还未完成的时候在进行点击
// 设置定时器自动切换
timer = setInterval(function(){
auto();
},2000);
//自动切换
function auto(){
var index = nowPic + 1;
if(index < 0){
index = 4;
}else if(index > 4){
index = 0;
}
$pic.eq(index).css('left',$picW);
$pic.eq(nowPic).animate({left:-$picW}, 400);
$pic.eq(index).animate({left:0}, 400);
nowPic = index;
// 设置当前图片的圆点的样式
$cir.eq(nowPic).attr('id','active').siblings().attr('id','');
}
点击小圆点
图片切换的方法都是一样的但是要注意,当点击小圆点时要清楚图片自动切换的定时器,在图片切换完成后,在设置自动切换的定时器
function lunbo(){
$cir.click(function(){
clearInterval(timer);
var index = $(this).index();
if(index > nowPic){
// 点击的值大于当前的值
$pic.eq(index).css('left',$picW);
$pic.eq(nowPic).animate({left:-$picW},400);
}else if(index < nowPic){
// 点击的值小于当前的值
$pic.eq(index).css('left',-$picW);
$pic.eq(nowPic).animate({left:$picW},400);
}
$pic.eq(index).animate({left:0},400,function(){
timer = setInterval(function(){
auto();
},3000);
});
nowPic = index;
// 设置当前图片的圆点的样式
$cir.eq(nowPic).attr('id','active').siblings().attr('id','');
});
}
点击箭头
当点击箭头时,我们为了防止用户多次连续的点击,所以设置了canClick这个全局变量,当点击了箭头时,要首先判断是否有为完成的动画即canClick是否为true,如果为true,就将canCilck设置为false,防止再次点击箭头,然后进行图片切换的动画,同样不要忘了清楚定时器,最后当切换图片的动画完成时,animate()方法的回调函数执行,将canClick设置为true
// 点击左箭头
$oLeft.click(function(){
if(canClick){
clearInterval(timer);
canClick = false;
var index = nowPic - 1;
if(index < 0){
index = 4;
}else if(index > 4){
index = 0;
}
$pic.eq(index).css('left',-$picW);
$pic.eq(nowPic).animate({left:$picW}, 400);
$pic.eq(index).animate({left:0}, 400,function(){
canClick = true;
timer = setInterval(function(){
auto();
},3000);
});
nowPic = index;
// 设置当前图片的圆点的样式
$cir.eq(nowPic).attr('id','active').siblings().attr('id','');
}
})
// 点击右箭头
$oRight.click(function(){
if(canClick){
clearInterval(timer);
canClick = false;
var index = nowPic + 1;
if(index < 0){
index = 4;
}else if(index > 4){
index = 0;
}
$pic.eq(index).css('left',$picW);
$pic.eq(nowPic).animate({left:-$picW}, 400);
$pic.eq(index).animate({left:0}, 400,function(){
canClick = true;
timer = setInterval(function(){
auto();
},3000);
});
nowPic = index;
// 设置当前图片的圆点的样式
$cir.eq(nowPic).attr('id','active').siblings().attr('id','');
}
})
总结
这个效果实现起来很简单,就是刚开始没有想到实现的思路。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jQuery
# 轮播图
# jquery实现左右轮播图效果
# JQuery和html+css实现带小圆点和左右按钮的轮播图实例
# jquery版轮播图效果和extend扩展
# jQuery制作全屏宽度固定高度轮播图(实例讲解)
# jquery实现左右滑动式轮播图
# jQuery实现一个简单的轮播图
# jQuery按需加载轮播图(web前端性能优化)
# jquery实现轮播图效果
# jQuery无缝轮播图代码
# jquery 实现轮播图详解及实例代码
# 原生Javascript和jQuery做轮播图简单例子
# jQuery实现简洁的轮播图效果实例
# jquery写出PC端轮播图实例
# 圆点
# 小圆点
# 跑到
# 刚开始
# 设置为
# 第五个
# 是为了
# 全局变量
# 走到
# 你想
# 要注意
# 很简单
# 要看
# 三种
# 还未
# 没有想到
# 就想
# 就将
# 时要
# 先来
相关文章:
零服务器AI建站解决方案:快速部署与云端平台低成本实践
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
宝塔新建站点报错如何解决?
三星网站视频制作教程下载,三星w23网页如何全屏?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
表情包在线制作网站免费,表情包怎么弄?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何在腾讯云服务器快速搭建个人网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
实例解析Array和String方法
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何快速搭建高效WAP手机网站吸引移动用户?
建站主机服务器选型指南与性能优化方案解析
内部网站制作流程,如何建立公司内部网站?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
北京企业网站设计制作公司,北京铁路集团官方网站?
如何在Windows 2008云服务器安全搭建网站?
建站VPS推荐:2025年高性能服务器配置指南
建站之星logo尺寸如何设置最合适?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何通过可视化优化提升建站效果?
如何获取开源自助建站系统免费下载链接?
如何配置支付宝与微信支付功能?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
c++ stringstream用法详解_c++字符串与数字转换利器
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何通过VPS建站实现广告与增值服务盈利?
javascript基本数据类型及类型检测常用方法小结
建站之星在线客服如何快速接入解答?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
存储型VPS适合搭建中小型网站吗?
如何在企业微信快速生成手机电脑官网?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
网站制作需要会哪些技术,建立一个网站要花费多少?
大同网页,大同瑞慈医院官网?
建站之星如何快速生成多端适配网站?
,交易猫的商品怎么发布到网站上去?
建站主机与服务器功能差异如何区分?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何通过西部建站助手安装IIS服务器?
上海网站制作开发公司,上海买房比较好的网站有哪些?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过商城自助建站源码实现零基础高效建站?
建站之星安装提示数据库无法连接如何解决?
婚礼视频制作网站,学习*后期制作的网站有哪些?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
*请认真填写需求信息,我们会在24小时内与您取得联系。