十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
现在没空帮你写代码了,给你个思路自己写吧!轮播肯定是要切换图片的,并且一般切换的时候是从左到右或从右到左慢慢切的,所以你定义一个图片地址数组,再定义两个jlabel用来显示图片,一个JLabel显示当前图片,另一个显示最新图片!好了,现在你定义一个timer定时器来切换,每隔两秒,就判断一下最新的图片是哪个jlabel,然后将另一个jlabel填充新的图片,然后setlocation()来移动图片,x坐标每次向左几个像素,直至移动完成!这样就是一次轮播,当然你需要将两个jlabel放到一个panel中,免得会出现第二个图片多出一截在慢慢移动的情况
创新互联专注于企业全网营销推广、网站重做改版、中方网站定制设计、自适应品牌网站建设、H5网站设计、商城网站制作、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为中方等各大城市提供网站开发制作服务。
工具/材料
Sublime Text
01
首先在Sublime Text下面准备一个html和5张图片,图片宽高为600px和400px,如下图所示
02
然后在HTML页面中布局轮播图的结构,如下图所示,主要包括图片区域,圆形按钮,左右箭头
03
接下来需要给轮播图页面布局声明一些样式,请按照下图所示的样式代码进行声明
04
最后就是实现轮播图的JS脚本功能,如下图所示,主要包括前进,后退,自动播放的功能
05
最后运行页面,你就会看到下图所示的轮播图效果,点击圆圈或者左右箭头可以切换轮播图
//轮播器
var crs_num=1
function interval(){
carousel=setInterval(function(){
num2=crs_num*-800
$('.crs_img').animate({
attr:'x',
target:num2,
time:50,
speed:10,
})
$('.crs_words p').html($('.crs_img img').getnum(crs_num).attr('alt'))
$('#carousel li').css('color','#999')
$('#carousel li').getnum(crs_num).css('color','#333')
crs_num++;
if(crs_num==3)crs_num=0;
},3000)
}
interval();
$('#carousel li').hover(function(){
var num=$(this).childNum()*-800
clearInterval(carousel)
$('.crs_img').animate({
attr:'x',
target:num,
time:50,
speed:5,
})
$('.crs_words p').html($('.crs_img img').getnum($(this).childNum()).attr('alt'))
$('#carousel li').css('color','#999')
$(this).css('color','#333')
},function(){
interval()
})
animate是自己封装的,可能和jq不兼容
function caroAnimate(imgNum) // 定义函数,参数是imgNum,表示图片数量
{
var currNav = 0; //定义变量,初始为0,表示当前图片是所有图片中的第几张。
var timer = "";// 切换时间,
var caroWidth = 320;//定义轮播图片的宽度
var imgArea = $("#adveCaro");///获取轮播图片所在的父级元素
var navArr = $("#nav_adveCaro").find("li");// 查找li元素,统计有多少张图片
var delay = 5000;//延迟切换时间。5秒切换一次
var aniSpeed = 500;//动画时间。也就是0.5秒就切换完成
loopImg(); //调用looImg函数,这里表示开始切换
startTimer(); // 设置动画切换时间
bindNavClick(); //调用用户点击事件,也就是用户点击哪张,就切换到哪张。
function loopImg(){//定义函数
imgArea.append(imgArea.children(":first").clone());///将列表中的第一张图片克隆,并附加到前面定义的父级元素下。
}
function bindNavClick(){///定义点击事件函数
navArr.click(function(){ ///点击事件
var nav = navArr.index($(this));///设置当前点击的序号,保存到nav这个变量里。
if(currNav != nav){
animate(nav);//判断,如果点击的位置不是上次点击的,就开始切换
}
});
}
function startTimer(){//设置动画切换函数
timer = setInterval(autoAnimate, delay);//表示每隔多长时间执行autoAnimate这个函数,也就是实现自动播放
}
function restartTimer(){//设置重新开始时间段,也就是设置,当播放到最后的时候,又重新来过
clearInterval(timer);//清除时间
startTimer();//重新设置时间
}
function autoAnimate(){//动事切换主函数
if(currNav == 0){
imgArea.css("margin-left","0px");//判断,如果是第一张,则设置图片显示区域左边距为0px
}
currNav++;//播放序号自加1,也就是每执行这个函数,就自动加1,相当于currNav=currNav+1
imgArea.animate({"margin-left":caroWidth*(-currNav)}, aniSpeed);//以动画的形式,aniSpeed秒后,将左边距设置父元素的宽度再减去当前的序号。
if(currNav = imgNum){
currNav = 0;//判断当前位置,currNavimgNum表示,已经到最后了,重新设置开始位置为0
}
changNav(currNav);//调用函数,根据上下文,这个功能应该是切换样式用的
}
function animate(nav){
imgArea.stop().animate({"margin-left":caroWidth*(-nav)}, aniSpeed);//这是定义停止动画时执行的特效,和面播放动画时的特效是一样的。
currNav = nav;//设置当前位置
changNav(nav);//改变样式
restartTimer();///重置时间
}
function changNav(nav){//该函数是切换样式用的
navArr.removeClass("ui-feedback");//首先将所有的图片区域样式清除
navArr.eq(nav).addClass("ui-feedback");//再给当前的图片区域加个样式
}
}
轮播图自动切换吗?
script language =javascript
var curIndex=0;
//时间间隔 单位毫秒
var timeInterval=1000;
var arr=new Array();
arr[0]="1.jpg";
arr[1]="2.jpg";
arr[2]="3.jpg";
arr[3]="4.jpg";
arr[4]="5.jpg";
arr[5]="6.jpg";
arr[6]="7.jpg";
setInterval(changeImg,timeInterval);
function changeImg()
{
var obj=document.getElementById("obj");
if (curIndex==arr.length-1)
{
curIndex=0;
}
else
{
curIndex+=1;
}
obj.src=arr[curIndex];
}
/script
img id=obj src ="1.jpg" border =0 /
这样能看懂吗?
自己设置每张图片切换的时间间隔,自己设置每张图片的路径,绝对、相对路径都可以。