jQuery - 在滑块中显示/隐藏上一个/下一个按钮
jQuery - Show/Hide prev/next buttons in slider
我正在尝试在一个非常基本的滑块中控制导航(从简单的在线示例拼凑而成(。
我的目标是在到达最后一张幻灯片时隐藏"下一步"按钮,反之隐藏第一张幻灯片上的"上一张"按钮,这可以通过捕获 li"活动"(当前幻灯片显示(类然后隐藏它来完成吗?
我的相关代码如下:
jQuery(document).ready(function ($) {
//set vars for slider size
var slideCount = $('#slider ul li').length;
var slideWidth = $('#slider ul li').width();
var slideHeight = $('#slider ul li').height();
var sliderUlWidth = slideCount * slideWidth;
$('#slider').css({ width: slideWidth, height: slideHeight });
$('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth });
$('#slider ul li:last-child').prependTo('#slider ul');
//move left function (prev)
function moveLeft() {
$('#slider ul').animate({
left: + slideWidth
}, 700, function () {
$('#slider ul li:last-child').prependTo('#slider ul');
$('#slider ul').css('left', '');
});
};
//move right function (next)
function moveRight() {
$('#slider ul').animate({
left: - slideWidth
}, 700, function () {
$('#slider ul li:first-child').appendTo('#slider ul');
$('#slider ul').css('left', '');
});
};
// call functions on click
$('a.control_prev').click(function () {
moveLeft();
});
$('a.control_next').click(function () {
if ($(this).hasClass('final')){
$('a.control_next').hide();
}
else{
moveRight();
}
});
});
和 HTML 滑块列表:
<div id="slider">
<a href="#" class="control_next">></a>
<a href="#" class="control_prev"><</a>
<ul>
<li><img src="sme1.png" height="550"/></li>
<li><img src="sme2.png" height="550"/></li>
<li><img src="sme3.png" height="550"/></li>
<li class="final"><img src="sme4.png" height="550"/></li>
</ul>
</div>
我可以想到不同的方法来解决这个问题,但这是我决定尝试解决的解决方案,任何帮助都值得赞赏!!
JSFIDDLE: http://jsfiddle.net/o31ksujt/3/
可以在动画结束时添加控件。
在你的代码中也存在错误,在你的点击函数中你验证$(this).hasClass('final')
,但是是相对于标签a
的,你必须具体$('#slider ul li:first-child')
。
解决方案如下。
创建新函数
函数验证控制按钮(({ if( $('#slider ul li:first-child'(.hasClass("final"(({ $('a.control_next'(.hide((; }else{ $('a.control_next'(.show((; }};
在移动操作中设置对新方法的调用:
向左移动功能(上一个(函数 moveLeft(( { $('#slider ul'(.animate({ 左: + 滑动宽度 }, 700, 函数 (( { $('#slider ul li:last-child'(.prependTo('#slider ul'(; $('#slider ul'(.css('left', ''(; 验证控制按钮((; });};右移功能(下一步(函数 moveRight(( { $('#slider ul'(.animate({ 左: - 幻灯片宽度 }, 700, 函数 (( { $('#slider ul li:first-child'(.appendTo('#slider ul'(; $('#slider ul'(.css('left', ''(; 验证控制按钮((; });};
单击控制调用简单方法。
点击调用函数$('a.control_prev'(.click(function (( { 向左移动((;});
$('a.control_next'(.click(function (( { 移动右((;});
http://codepen.io/anon/pen/gbaoxK
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何将值传递到上一个html页面
- 我如何将多个 svg 隐藏到一个 png 中,因为它们在 html 上
- 获取下一个或上一个隐藏元素的高度,以设置父元素的高度.jquery.
- 如果上一个元素为空,则隐藏下一个元素
- iOS中的上一个/下一个按钮对于通过JavaScript隐藏/显示的输入被禁用
- jQuery 循环 如果只有一张幻灯片,则隐藏上一个/下一个导航
- 选择上一个隐藏元素
- jQuery - 在滑块中显示/隐藏上一个/下一个按钮
- JQuery 日期选取器隐藏页面上一个日历中的日期
- 如何在 JavaScript 中创建新弹出窗口时隐藏上一个弹出窗口
- 如何在屏幕上出现另一个引导程序时隐藏另一个引导程序的模式
- 显示基于上一个选择下拉列表的隐藏选择选项
- 在执行上一个的处理程序之前检查下一个事件以隐藏自动完成
- jQuery在dom上按位置隐藏下一个元素
- Onclick隐藏/显示-下一个或上一个类
- 如果jQuery.show()在上一个事件中使用,则jQuery不会隐藏DIV
- 循环输入和选择元素,并隐藏上一个td
- 如何从 OWL 轮播组件中隐藏下一个和上一个
- 当我隐藏上一个面板时,下一个面板会向左移动到前一个面板的位置,我希望它保持原样