Javascript 我想使用jquery创建具有无限循环的图像库
我想创建一个图像库,我写了一个幻灯片,但我不知道如何为上一个和下一个按钮编码。这些应该像一个无限循环一样工作(最后一个图像跳回到第一个) 我应该如何开始?这就是我到目前为止所做的:Javascript 我想使用jquery创建具有无限循环的图像库,javascript,jquery,html,Javascript,Jquery,Html,我想创建一个图像库,我写了一个幻灯片,但我不知道如何为上一个和下一个按钮编码。这些应该像一个无限循环一样工作(最后一个图像跳回到第一个) 我应该如何开始?这就是我到目前为止所做的: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#play").click(function () {
$("#img1").fadeOut(2000);
$("#img2").fadeIn();
$("#img2").fadeOut(4000);
$("#img3").fadeIn();
});
});
</script>
<body>
<div id=outer>
<div id=inner>
<img id="img1" src="img1.jpg"/>
<img id="img2" src="img2.jpg" style="display:none"/>
<img id="img3" src="img3.jpg" style="display:none"/>
</div>
<div id=button>
<button id="bwd"><<</button>
<button id="play"><></button>
<button id="fwd">>></button>
</div>
</div>
</body>
$(文档).ready(函数(){
$(“#播放”)。单击(函数(){
美元(“#img1”)。淡出(2000年);
$(“#img2”).fadeIn();
美元(“#img2”)。淡出(4000);
$(“#img3”).fadeIn();
});
});
您需要使用javascript计时功能。比如:
$('#play').click(function(){
window.setInterval(function(){
if($('#img1').is(:visible)){
$("#img2").show()
$("#img1").hide()
}
if($('#img2').is(:visible)){
$('#img3').show()
$('#img2').hide()
}
if($('#img3').is(:visible)){
$('#img1').show()
$('#img3').hide()
}
}, 1000);
});
你也可以把这个逻辑浓缩下来,但这就得到了基本的想法。然后,如果仔细查看next的函数,它已经在代码中,可以提取出来并重用。一旦你有了下一个函数,后面的函数就完全相反了
要回答下面的问题,您可以将img更改为具有相同的类,然后根据可见的类和紧接可见的图像应用显示和隐藏:
#find the one currently being shown
$(".images:visible")
#find the one after the visible one
$(".images:visible").next()
#keep an id on the last image so that you can do something like
if($('.images:visible') == $('#last_image')){
$('.images').first().show()
}
您可以使用setInterval()。 此链接可以帮助您了解更多信息 也许这对你也有帮助:
您好,我创建了旋转木马,没有使用任何第三方插件。如果您需要,请参阅 Js代码是
$(document).ready(function () {
var currentPosition = 0;
var slideWidth = 300;
var slides = $('.slide');
var numberOfSlides = slides.length;
var timer = 3000;
var img1, img2;
var sliderLink = $("#slider a");
var direction = 1;
// Remove scrollbar in JS
$('#slidesContainer').css('overflow', 'hidden');
// Wrap all .slides with #slideInner // Float left to display horizontally, readjust .slides width
slides.wrapAll('<div id="slideInner"></div>').css({
'float': 'left',
'width': slideWidth
});
// Set #slideInner width equal to total width of all slides
$('#slideInner').css('width', slideWidth * numberOfSlides);
// Insert left and right arrow controls in the DOM
$('#slideshow').prepend('<span class="control" id="leftControl">Move left</span>').append('<span class="control" id="rightControl">Move right</span>');
// Hide left arrow control on first load
// manageControls(currentPosition);
// manageSlide();
// Create event listeners for .controls clicks
$('#rightControl').bind('click', rightControl);
$('#leftControl').bind('click', leftControl);
function leftControl() {
var butonid = 0;
direction = 0;
$("#slideInner").stop();
$("#slideInner").dequeue();
$('#timer').stop();
$('#timer').dequeue();
$('#leftControl').unbind('click');
manageSlide(0, direction);
setTimeout(function () {
$('#leftControl').bind('click', leftControl);
}, timer, null);
}
function rightControl() {
var butonid = 1;
direction = 1;
$("#slideInner").stop();
$("#slideInner").dequeue();
$('#timer').stop();
$('#timer').dequeue();
$('#rightControl').unbind('click');
manageSlide(0, direction);
setTimeout(function () {
$('#rightControl').bind('click', rightControl);
}, timer, null);
}
var slideIndex = 0;
var data = $("#slideInner .slide").toArray();
$("#slideInner").empty();
function manageSlide(auto, idButtonid) {
$("#slideInner").empty();
// console.log(slideIndex);
if (idButtonid == 0) {
$("#slideInner").css({ 'marginLeft': "-300px" });
$(data).each(function (index) {
// if (index == slideIndex - 1) {
// $(this).show();
// } else {
$(this).hide();
// }
});
$(data[slideIndex - 1]).show();
if (slideIndex == numberOfSlides - 1) {
slideIndex = 0;
img1 = data[0];
img2 = data[numberOfSlides - 1];
$("#slideInner").append(img1);
$("#slideInner").append(img2);
$(img2).show();
$(img1).show();
} else {
img1 = data[slideIndex];
img2 = data[slideIndex + 1];
$("#slideInner").append(img2);
$("#slideInner").append(img1);
$(img1).show();
$(img2).show();
slideIndex = slideIndex + 1;
}
$('#slideInner').animate({
'marginLeft': "0px"
}, 'slow', function () {
$('#timer').animate({
opacity: 1
}, timer, function () {
console.log('leftControl');
manageSlide(1, direction);
});
});
}
// right move here
else if (idButtonid == 1) {
$("#slideInner").css({ 'marginLeft': "0px" });
$(data).each(function (index) {
if (index == slideIndex + 1) {
$(this).show();
} else {
$(this).hide();
}
});
if (slideIndex == numberOfSlides - 1) {
slideIndex = 0;
img1 = data[0];
img2 = data[numberOfSlides - 1];
$("#slideInner").append(img2);
$("#slideInner").append(img1);
$(img2).show();
$(img1).show();
} else {
img1 = data[slideIndex];
img2 = data[slideIndex + 1];
$("#slideInner").append(img1);
$("#slideInner").append(img2);
$(img1).show();
$(img2).show();
slideIndex = slideIndex + 1;
}
$('#slideInner').animate({
'marginLeft': slideWidth * (-1)
}, 'slow', function () {
console.log('rightControl');
$('#timer').animate({
opacity: 1
}, timer, function () {
manageSlide(1, direction);
});
});
}
if (auto == 1) {
sliderLink.each(function () {
$(this).removeClass();
if ($(this).text() == (slideIndex + 1)) {
$(this).addClass('active');
}
});
}
auto = 1;
}
$("#slider a").click(function () {
sliderLink.each(function () {
$(this).removeClass();
});
slideIndex = $(this).addClass('active').text() - 1;
$('#timer').stop();
$('#timer').dequeue();
$("#slideInner").stop();
$("#slideInner").dequeue();
manageSlide(0, direction);
});
manageSlide(1, direction);
});
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=300;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
无功定时器=3000;
var-img1,img2;
var sliderLink=$(“#滑块a”);
var方向=1;
//删除JS中的滚动条
$('slidecontainer').css('overflow','hidden');
//用#slideInner//向左浮动以水平显示所有幻灯片,重新调整幻灯片宽度
slides.wrapAll(“”).css({
‘float’:‘left’,
“宽度”:滑动宽度
});
//将#幻灯片内部宽度设置为所有幻灯片的总宽度
$('slideInner').css('width',slideWidth*numberOfSlides);
//在DOM中插入左右箭头控件
$(“#幻灯片放映”)。前置('Move left')。追加('Move right');
//第一次加载时隐藏左箭头控件
//管理控制(当前职位);
//管理幻灯片();
//为控件创建事件侦听器。单击
$('#rightControl').bind('click',rightControl');
$('#leftControl').bind('click',leftControl');
函数leftControl(){
var butonid=0;
方向=0;
$(“#slideInner”).stop();
$(“#slideInner”).dequeue();
$(“#计时器”).stop();
$(“#计时器”).dequeue();
$('#leftControl')。取消绑定('单击');
管理幻灯片(0,方向);
setTimeout(函数(){
$('#leftControl').bind('click',leftControl');
},计时器,空);
}
函数rightControl(){
var butonid=1;
方向=1;
$(“#slideInner”).stop();
$(“#slideInner”).dequeue();
$(“#计时器”).stop();
$(“#计时器”).dequeue();
$('#rightControl')。解除绑定('click');
管理幻灯片(0,方向);
setTimeout(函数(){
$('#rightControl').bind('click',rightControl');
},计时器,空);
}
var slideIndex=0;
var data=$(“#slideInner.slide”).toArray();
$(“#slideInner”).empty();
函数管理幻灯片(自动,idButtonid){
$(“#slideInner”).empty();
//console.log(slideIndex);
如果(idButtonid==0){
$(“#slideInner”).css({'marginLeft':“-300px});
$(数据)。每个(函数(索引){
//如果(索引==滑动索引-1){
//$(this.show();
//}其他{
$(this.hide();
// }
});
$(数据[slideIndex-1]).show();
如果(slideIndex==numberOfSlides-1){
slideIndex=0;
img1=数据[0];
img2=数据[numberOfSlides-1];
$(“#slideInner”).append(img1);
$(“#slideInner”).append(img2);
$(img2.show();
$(img1.show();
}否则{
img1=数据[滑动索引];
img2=数据[slideIndex+1];
$(“#slideInner”).append(img2);
$(“#slideInner”).append(img1);
$(img1.show();
$(img2.show();
slideIndex=slideIndex+1;
}
$('slideInner')。设置动画({
“marginLeft”:“0px”
},“慢”,函数(){
$(“#计时器”)。设置动画({
不透明度:1
},计时器,函数(){
log('leftControl');
管理幻灯片(1,方向);
});
});
}
//右移
else if(idButtonid==1){
$(“#slideInner”).css({'marginLeft':“0px”});
$(数据)。每个(函数(索引){
如果(索引==滑动索引+1){
$(this.show();
}否则{
$(this.hide();
}
});
如果(slideIndex==numberOfSlides-1){
slideIndex=0;
img1=数据[0];
img2=数据[numberOfSlides-1];
$(“#slideInner”).append(img2);
$(“#slideInner”).append(img1);
$(img2.show();
$(img1.show();
}否则{
img1=数据[滑动索引];
img2=数据[slideIndex+1];
$(“#slideInner”).append(img1);
$(“#slideInner”).append(img2);
$(img1.show();
$(img2.show();
slideIndex=slideIndex+1;
}
$('#slideInn