如何在滑块中重复滚动图像
How to repeat scroll image in a slider
我的问题是如何无限滚动缩略图?我的意思是当我点击右点图像时(>)应该向左滚动并从第一张图像再次重复并且与右指针相同。
我已经成功地滚动了图片,但是在滚动结束时图片没有滚动。我想无限滚动(意味着应该再次重复)。
请帮忙。
先谢谢了。
function slider(action){
if(action == 'next'){
var leftPos = $('#bx-pager').scrollLeft();
$("#bx-pager").animate({scrollLeft: leftPos - 50}, 500);
} else {
var leftPos = $('#bx-pager').scrollLeft();
$("#bx-pager").animate({scrollLeft: leftPos + 50}, 500);
}
}
.slideWrap{position: relative;height: 50px;width:300px;overflow:hidden}
.slideWrap span{background: rgba(0,0,0,.3);height: 100%;position: absolute;top:0px;right: 0;z-index: 1;}
.slideWrap span i{color: #fff;height:50px;padding: 15px 2px}
.slideWrap span i:hover{color: #f2822e}
span#moveNext {}
span#movePrev{left: 0;right: auto;}
#bx-pager ul {padding: 0;margin: 0;width: 400px;list-style:none}
#bx-pager ul li{float: left}
#bx-pager ul li a img{height: 50px;width: 50px;border:3px solid #333;margin:2.5%}
<script src="https://github.com/stevenwanderski/bxslider-4/blob/master/src/js/jquery.bxslider.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<div class="slideWrap">
<span id="moveNext"><a href="javascript:void(0);" onclick="slider('next')"><i class="glyphicon glyphicon-chevron-right"></i></a></span>
<div id="bx-pager">
<ul>
<li><a data-slide-index="0" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="1" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="1" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
</ul>
</div>
<span id="movePrev" > <a href="javascript:void(0);" onclick="slider('prev')"><i class="glyphicon glyphicon-chevron-left"></i></a></span>
</div>
基本的方法是:
1. 在事件为 'next' 时:从 ul 中删除第一个子项并将其添加到 ul 标记的末尾。
2. 单击 'previous':从 ul 中删除最后一个子项并将其添加到 ul 的前面。
使用 .children 获取子节点,然后访问第 0 个或 chilren.length - 第 1 个子节点并使用它
对我来说,问题是 CSS3 转换和添加 useCSS: false 强制 bxslider 使用 jQuery 作为转换而不是 CSS。
<script type="text/javascript">
$(document).ready(function(){
$('.bxslider').bxSlider({
auto: true,
autoControls: false,
controls: false,
pause: 4000,
infiniteLoop: true,
mode: 'horizontal',
autoDirection: 'next',
responsive: true,
preloadImages: 'all',
minSlides: 2,
autoDelay: 0,
randomStart: false,
pager: false,
moveSlideQty: 1,
useCSS: false,
});
});
</script>
我认为你应该为此任务使用插件,
希望这个插件能帮到你,http://sorgalla.com/jcarousel/
感谢大家的努力,但我得到了正确的答案。
function slider() {
var item_width = $('#bx-pager ul li').width();
var left_value = item_width * (-1);
var left_indent = parseInt($('#bx-pager ul').css('left')) - item_width;
$('#bx-pager ul ').animate({'left' : left_indent}, 100, function () {
$('#bx-pager ul li:last').after($('#bx-pager ul li:first'));
$('#bx-pager ul').css({'left' : left_value});
});
}
我的问题是如何无限滚动缩略图?我的意思是当我点击右点图像时(>)应该向左滚动并从第一张图像再次重复并且与右指针相同。
我已经成功地滚动了图片,但是在滚动结束时图片没有滚动。我想无限滚动(意味着应该再次重复)。
请帮忙。
先谢谢了。
function slider(action){
if(action == 'next'){
var leftPos = $('#bx-pager').scrollLeft();
$("#bx-pager").animate({scrollLeft: leftPos - 50}, 500);
} else {
var leftPos = $('#bx-pager').scrollLeft();
$("#bx-pager").animate({scrollLeft: leftPos + 50}, 500);
}
}
.slideWrap{position: relative;height: 50px;width:300px;overflow:hidden}
.slideWrap span{background: rgba(0,0,0,.3);height: 100%;position: absolute;top:0px;right: 0;z-index: 1;}
.slideWrap span i{color: #fff;height:50px;padding: 15px 2px}
.slideWrap span i:hover{color: #f2822e}
span#moveNext {}
span#movePrev{left: 0;right: auto;}
#bx-pager ul {padding: 0;margin: 0;width: 400px;list-style:none}
#bx-pager ul li{float: left}
#bx-pager ul li a img{height: 50px;width: 50px;border:3px solid #333;margin:2.5%}
<script src="https://github.com/stevenwanderski/bxslider-4/blob/master/src/js/jquery.bxslider.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<div class="slideWrap">
<span id="moveNext"><a href="javascript:void(0);" onclick="slider('next')"><i class="glyphicon glyphicon-chevron-right"></i></a></span>
<div id="bx-pager">
<ul>
<li><a data-slide-index="0" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="1" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="1" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="2" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
<li><a data-slide-index="3" href=""><img src="http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg" /></a></li>
</ul>
</div>
<span id="movePrev" > <a href="javascript:void(0);" onclick="slider('prev')"><i class="glyphicon glyphicon-chevron-left"></i></a></span>
</div>
基本的方法是: 1. 在事件为 'next' 时:从 ul 中删除第一个子项并将其添加到 ul 标记的末尾。 2. 单击 'previous':从 ul 中删除最后一个子项并将其添加到 ul 的前面。
使用 .children 获取子节点,然后访问第 0 个或 chilren.length - 第 1 个子节点并使用它
对我来说,问题是 CSS3 转换和添加 useCSS: false 强制 bxslider 使用 jQuery 作为转换而不是 CSS。
<script type="text/javascript">
$(document).ready(function(){
$('.bxslider').bxSlider({
auto: true,
autoControls: false,
controls: false,
pause: 4000,
infiniteLoop: true,
mode: 'horizontal',
autoDirection: 'next',
responsive: true,
preloadImages: 'all',
minSlides: 2,
autoDelay: 0,
randomStart: false,
pager: false,
moveSlideQty: 1,
useCSS: false,
});
});
</script>
我认为你应该为此任务使用插件,
希望这个插件能帮到你,http://sorgalla.com/jcarousel/
感谢大家的努力,但我得到了正确的答案。
function slider() {
var item_width = $('#bx-pager ul li').width();
var left_value = item_width * (-1);
var left_indent = parseInt($('#bx-pager ul').css('left')) - item_width;
$('#bx-pager ul ').animate({'left' : left_indent}, 100, function () {
$('#bx-pager ul li:last').after($('#bx-pager ul li:first'));
$('#bx-pager ul').css({'left' : left_value});
});
}