在JavaScript事件中添加最小值和最大值

时间:2016-04-27 12:06:56

标签: javascript jquery css3 css-transitions

我想知道是否有人可以帮助我,下面代码的目的是在每次用户点击按钮时翻译整个屏幕,所以

  

第一页= var距离= 0

     

第一页= var距离= -100

     

第一页= var距离= -200

依此类推,但我不希望用户继续使用宽度为100%的页面数量,是否有某种方法可以将边界放在此上,因此最小值= 0且最大值= 500

var distance = 0;
    $('.right').click(function() {
        distance -= 100;
        $('#container').css('transform', 'translateX(' + distance + '%)')
        console.log(distance);
    });
    $('.left').click(function() {
        distance += 100;
        $('#container').css('transform', 'translateX(' + distance + '%);')
        console.log(distance);
    });

2 个答案:

答案 0 :(得分:2)

Math.min() Math.max() 可以解决问题

var distance = 0;

$('.right').click(function() {
    distance = Math.max(0, distance- 100);
    $('#container').css('transform', 'translateX(' + distance + '%)')
    console.log(distance);
});
$('.left').click(function() {
    distance = Math.min(500, distance+ 100);
    $('#container').css('transform', 'translateX(' + distance + '%);')
    console.log(distance);
});

或者您可以使用三元运算符

var distance = 0;

$('.right').click(function() {
    distance -=  (distance==0 ? 0 : 100);
    $('#container').css('transform', 'translateX(' + distance + '%)')
    console.log(distance);
});
$('.left').click(function() {
    distance += (distance==500 ? 0 : 100);
    $('#container').css('transform', 'translateX(' + distance + '%);')
    console.log(distance);
});

答案 1 :(得分:1)

所以添加if语句并在减少数字时检查数字是否小于零

if (distance<0) distance = 0;

当你递增时,看它是否高于你的最大值

if (distance>500) distance = 500;