如何隐藏导航的左和右基于第一个和最后一个
how to hide navigation left and right based on first and last li
如何根据首尾距隐藏左右导航
我已经使用jQuery开发了一个滑块来显示图像总数中的3个图像。
函数moveRight()和movelleft(),在单击导航链接时显示一组3个图像。
现在我只是我想知道如何隐藏navLeft和navright基于第一个和最后一个图像。
代码在这里:-小提琴
<script>
var currentImage = 3;
var numImages = 0;
jQuery('.gallery-li').each(function () {
numImages++;
if (numImages <= 3) {
jQuery('.navRight').hide();
jQuery('.navLeft').hide();
} else {
jQuery('.navRight').show();
}
});
jQuery('a.navLeft').click(function () {
moveLeft();
});
jQuery('a.navRight').click(function () {
moveRight();
});
function moveRight() {
jQuery(".gallery-li").animate({left: "-=380px",}, "slow" );
jQuery('.navLeft').css('display' , 'block');
}
function moveLeft() {
jQuery(".gallery-li").animate({left: "+=380px",}, "slow" );
}
</script>
gallery-li内的图片是动态的
任何帮助都是非常感谢的
使用一个变量来跟踪你的移动,并为边界设置隐藏箭头的条件:
就像这样:
var currentImage = 3;
var numImages = 0;
var shift = 0;
var numberOfImagesShiftedByClick = 3;
var numberOfImagesDisplayed = 5;
jQuery('.gallery-li').each(function () {
numImages++;
if (numImages <= 3) {
jQuery('.navRight').hide();
jQuery('.navLeft').hide();
} else
$('.navRight').show();
});
jQuery('a.navLeft').click(function () {
moveLeft();
});
jQuery('a.navRight').click(function () {
moveRight();
});
function moveRight() {
jQuery(".gallery-li").animate({left: "-=380px",}, "slow" );
jQuery('.navLeft').css('display' , 'block');
shift++;
if (1 + shift*numberOfImagesShiftedByClick + numberOfImagesDisplayed > numImages + 1)
$("a.navRight").hide();
$("a.navLeft").show();
}
function moveLeft() {
jQuery(".gallery-li").animate({left: "+=380px",}, "slow" );
shift --;
if (shift == 0)
$("a.navLeft").hide();
$("a.navRight").show();
}
下面是一个jsfiddle来展示这段代码的实际效果:http://jsfiddle.net/Tfy8h/24/
这样就可以了(http://jsfiddle.net/QG9m4):
var currentImage = 0;
var numImages = jQuery('.gallery-li').length;
jQuery('a.navLeft').click(function () {
moveLeft();
});
jQuery('a.navRight').click(function () {
moveRight();
});
function updateNav() {
var hideLeft = currentImage == 0;
var hideRight = currentImage == numImages;
if( hideLeft )
jQuery('.navLeft').hide();
else
jQuery('.navLeft').show();
if( hideRight )
jQuery('.navRight').hide();
else
jQuery('.navRight').show();
}
function moveRight() {
if( currentImage >= numImages )
return;
currentImage += 3;
jQuery(".gallery-li").animate({left: "-=380px",}, "slow" );
jQuery('.navLeft').css('display' , 'block');
updateNav();
}
function moveLeft() {
if( currentImage < 1 )
return;
currentImage -= 3;
jQuery(".gallery-li").animate({left: "+=380px",}, "slow" );
updateNav();
}
试试这个:
var current = 3;
var numImages = $('.gallery-li').length;
jQuery('a.navLeft').click(function () {
move();
});
jQuery('a.navRight').click(function () {
move("right");
});
function move(d){
if(d == "right"){
current += 3;
$(".gallery-li").animate({left: "-=380px",}, "slow" );
}else{
current -= 3;
$(".gallery-li").animate({left: "+=380px",}, "slow" );
}
$(".navRight, .navLeft").show();
if(current == 0) $(".navLeft").hide();
if(current >= numImages) $(".navRight").hide();
}
http://jsfiddle.net/Tfy8h/22/相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 手风琴我想更改第一个 li 边框半径和最后一个 li 边框半径,我该怎么做请帮助我.
- 当移动到最后一个li时,返回到第一个li(使用Jquery滚动到下一个)
- CSS的条件包含,但不作为最后一个(或第一个)CSS
- 为什么jQuery代码将最后一个图像替换为第一个
- 删除最后一个无效字符,而不是第一个(javascript验证)