我想用純JavaScript(帶出利用任何庫)創建收款機影響,如何使用純Javascript創建收銀機效果?
這裏是鏈接,這是落實使用Mootools的收銀機的影響,
http://jsbin.com/ehuzes/edit#preview
我想使用原始Javascript來獲得這個效果。這將是巨大的幫助,如果有人提供解決方案。
我想用純JavaScript(帶出利用任何庫)創建收款機影響,如何使用純Javascript創建收銀機效果?
這裏是鏈接,這是落實使用Mootools的收銀機的影響,
http://jsbin.com/ehuzes/edit#preview
我想使用原始Javascript來獲得這個效果。這將是巨大的幫助,如果有人提供解決方案。
$('#number').on('change', function (e) {
$(this).cashregister($(this).val());
});
(function ($) {
$.fn.cashregister = function (num) {
var output = $('#output').html();
function intervalfunc(interval, num) {
var end = parseInt($('#number').html());
var cont = parseInt($('#output').html())
$('#output').html(cont + interval);
if ($('#output').html() == num) {
clearInterval(int);
return false;
}
}
if (num > output) {
var int = setInterval(function() { intervalfunc(1, num) }, 0.1);
}else if (num < output) {
var int = setInterval(function() { intervalfunc(-1, num) }, 0.1);
}else if (num == $('#output').html()) {
// do nothing
}else{
alert("Invalid Input!");
}
};
})(jQuery);
http://jsfiddle.net/DuLjC/3/ - >工作建議的修復
使用上的按鈕或東西一個onclick功能,它應該(也許從一個文本框的值)獲得的數量和該變量發送到使用.innerHTML上一個div來改變數值定義的功能,然後您使用SetInterval
函數使數字每上升或下降1個區間。當達到數字時使用clearInterval
。
也許是這樣的:
<div id = "container">0</div>
<input type = 'text'
id = 'number' />
<input type = 'button'
value = 'change amount'
onclick = "var num = document.getElementById('number').value;
cashregister(num);" />
爲HTML和:
<script type = "text/javascript">
function cashregister(num) {
var cont = document.getElementById('container').innerHTML;
if (num < cont) {
var int = setInterval("intervalfunc(1)", (interval_time_in_miliseconds));
function intervalfunc(num) {
var end = document.getElementById('number');
var cont = document.getElementById('cont').innerHTML;
cont.innerHTML = cont + num;
if (cont == end) {
clearInterval(int);
}
}
} else if (num > cont) {
var int = setInterval("intervalfunc(-1)", (interval_time_in_miliseconds));
function intervalfunc(num) {
var end = document.getElementById('number');
var cont = document.getElementById('cont').innerHTML;
cont.innerHTML = cont + num;
if (cont == end) {
clearInterval(int);
}
}
} else if (num == cont) {
//do nothing
} else {
alert("invalid input!");
}
}
</script>
我不知道這確切的代碼會工作,但你想要的是沿着這些路線的東西。
更好地使用'setTimeout'而不是'setInterval'並且不要將字符串傳遞給這些函數。 – 2012-03-08 13:37:59
但設置一個setTimeout只執行一次,使用setInterval創建一種動畫的數字向上或向下取決於它的定時有多快(或慢) – CKKiller 2012-03-08 13:42:34
這就是爲什麼你會在你的函數中再次調用它,創建一些類遞歸。 'setInterval'的問題是你可能建立一個函數隊列,因爲一個函數運行的時間要比intervall時間長。 – 2012-03-08 13:45:29
的版本,所以是不是 「給予解決方案。」這就是你付錢的原因。這是爲了幫助人們自己解決問題。你甚至試圖編碼任何東西,還是要求免費午餐? – spender 2012-03-08 13:08:02
這或多或少是純粹的JavaScript。只是事件處理程序註冊和類創建似乎與Mootools(*編輯*確定它擴展了Fx)完成,但大多數實際邏輯是純JavaScript。花點時間瞭解代碼... – 2012-03-08 13:08:44
@spender我的意思是我不需要任何代碼,我只需要一些方法來做到這一點。我的意思是算法。我從早上起就嘗試了一切。我能夠得到它的工作。我確實喜歡使用相同的mootools代碼,並從mootools中刪除了所有不需要的代碼,並且它的工作正常。但我想要一個算法來編碼我自己。我嘗試的文件是pastebin.com/h9TTBpyU,並且修改過的mootools.js是pastebin.com/YwTb7vBL – ravidsrk 2012-03-08 13:28:30