Javascript slider ,如何为滚动分配最大值以使其不会溢出?

标签 javascript jquery css slider

我想为滚动设置一个最小值和最大值,这样滚动就不可能超出 slider 内部的内容。现在,代码允许无限滚动。我对 Javascript 还很陌生,但我已经在大学编码多年。

JSFiddle

JavaScript

$('#vcards').width(function(){
var width = 0;                
$('.vcard').each(function(){
    width += $(this).outerWidth(true);
});
return width;
}());
$('#next').on('click',function(){
$('#vcards').animate({left : "-=170"});
});
$('#prev').on('click',function(){
$('#vcards').animate({left : "+=170"});
});

CSS

#slider{
width:500px;
overflow:hidden;
position:relative;
border:1px solid black;
height:225px;
padding:10px;
}  

.vcard{
width:150px;
margin: 0 10px;
height:200px;
float:left;
border:1px;
text-align:center;
font-weight:bold;
background-color:green;
}  

#vcards{
position:absolute;
top:0;
left:-170px;
}        

HTML

 <div id="slider">
 <div id="vcards">
    <div class="vcard">1</div>
    <div class="vcard">2</div>
    <div class="vcard">3</div>
    <div class="vcard">4</div>
    <div class="vcard">5</div>
 </div>
 </div>
<div id="next">Next</div>
<div id="prev">Prev</div>

最佳答案

你可以试试这个:

$('#next').on('click',function(){
    var v_offset = $('#vcards').offset();
    var v_width = $('#vcards').width();
    var left = v_offset.left;
    var total = v_width - Math.abs(left);
    var cont_w = $('#slider').width();
    if(total>=cont_w)
    $('#vcards').animate({left : "-=170"});
    });

$('#prev').on('click',function(){
    var v_offset = $('#vcards').offset();
    var left = v_offset.left;
    if(left<=0)
    $('#vcards').animate({left : "+=170"});
    });

关于Javascript slider ,如何为滚动分配最大值以使其不会溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977839/

相关文章:

javascript - Tabulator 4 我可以扩展格式化程序而不是创建自定义格式化程序吗?

Javascript Json 内部循环

javascript - 如何使导航 HREF 根据浏览器大小不同地加载链接

javascript - 使用 jquery/javascript 请求参数

java - 在 JavaFX 的 WebView 中使用 JavaScript 设置任意 CSS 规则

html - css背景标题图片

javascript - 用ajax和flask连续调用python函数

javascript - 如何获取 Ajax 函数的回调

javascript - 如何将元素添加到 jQuery UI Accordion header ?

jquery - 使用标签 html css 和 jquery