2015-05-26 96 views
0

我不是JavaScript专家,所以如果这不是最好的方法,那很可能是为什么。我已经建立了使用这些JavaScript功能的功能幻灯片:将开始和结束参数设置为JavaScript幻灯片

<script type="text/javascript"> 
    function shiftLeft() { 
     var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) + 560; 
     document.getElementById('slides').style.left = val + 'px'; 
    } 
    function shiftRight() { 
     var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) - 560; 
     document.getElementById('slides').style.left = val + 'px'; 
    } 
</script> 

基本上,这种移动图像560个像素的一种方式或其他取决于如果向左或向右按​​钮被点击。在这一点上一切都按预期工作,但是我期待添加参数以防止幻灯片滑动超过0px(即在正整数上)并且不超过-3360像素。任何有关如何设置这些参数的建议?任何见解都非常感谢。

回答

1

之前设置val,首先要检查它,看它是否超出了极限:

<script type="text/javascript"> 
    var leftBound = 0, 
     rightBound = -3360; 
    function shiftLeft() { 
    var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) + 560; 
    val = val > leftBound ? leftBound : val; 
    document.getElementById('slides').style.left = val + 'px'; 
    } 
    function shiftRight() { 
    var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) - 560; 
    val = val < rightBound ? rightBound : val; 
    document.getElementById('slides').style.left = val + 'px'; 
    } 
</script> 

我还送fiddle

+0

这是完美的!托尼,我感激不尽! – keithiopian

0
<script type="text/javascript"> 
function shiftLeft(min, max) { 
    var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) + 560; 
    if (val<min) {val=min;} else if (val > max) {val=max;} 
    document.getElementById('slides').style.left = val + 'px'; 
} 
function shiftRight (min, max) { 
    var val = (parseInt(document.getElementById('slides').style.left, 10) || 0) - 560; 
    if (val<min) {val=min;} else if (val > max) {val=max;} 
    document.getElementById('slides').style.left = val + 'px'; 
} 

+0

感谢您的洞察力。我遇到的主要问题是幻灯片在最小和最大参数处消失。但是我对理解的追求非常翔实。感谢您的帮助! – keithiopian