变量和参数之间的差异

时间:2018-03-10 22:27:49

标签: javascript

嘿伙计我正在处理我的第一个javascript脚本。 它是一个数字时钟。点击不同的按钮,您可以拥有不同城市的时间。 这是我的剧本:

var hourHand = document.getElementById('hourHand');
var minuteHand = document.getElementById('minuteHand');
var secondHand = document.getElementById('secondHand');

function initClock() {
    var offset= +5.5;
    var d = new Date();
    var utc = d.getTime() - (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000 * offset ));
    var date = nd;
    var hour = date.getHours() % 12; // 0 - 23
    var minute = date.getMinutes();
    var second = date.getSeconds();

    var hourDeg = (hour * 30) + (0.5 * minute); // every hour, 30 deg. 30 / 60
    var minuteDeg = (minute * 6) + (0.1 * second); // every minute, 6 deg. 6 / 60
    var secondDeg = second * 6; // 360 / 60

    hourHand.style.transform = 'rotate(' + hourDeg + 'deg)';
    minuteHand.style.transform = 'rotate(' + minuteDeg + 'deg)';
    secondHand.style.transform = 'rotate(' + secondDeg + 'deg)';

    setTimeout(initClock, 1000);
};

initClock();

它以这种方式工作,但是如果我尝试将偏移设置为参数而不是变量,那么手会改变它们的位置,但它们不像以前那样每秒移动一次。有人能帮我吗?很抱歉,如果这可能是一个愚蠢的问题,但我刚刚开始使用javascript:)

   var hourHand = document.getElementById('hourHand');
var minuteHand = document.getElementById('minuteHand');
var secondHand = document.getElementById('secondHand');

function initClock(offset) {
    var d = new Date();
    var utc = d.getTime() - (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000 * offset ));
    var date = nd;
    var hour = date.getHours() % 12; // 0 - 23
    var minute = date.getMinutes();
    var second = date.getSeconds();

    var hourDeg = (hour * 30) + (0.5 * minute); // every hour, 30 deg. 30 / 60
    var minuteDeg = (minute * 6) + (0.1 * second); // every minute, 6 deg. 6 / 60
    var secondDeg = second * 6; // 360 / 60

    hourHand.style.transform = 'rotate(' + hourDeg + 'deg)';
    minuteHand.style.transform = 'rotate(' + minuteDeg + 'deg)';
    secondHand.style.transform = 'rotate(' + secondDeg + 'deg)';

    setTimeout(initClock, 1000);
};

initClock(+5.5);

0 个答案:

没有答案