下面的函數將改變<meta ... content="...densityDPI=250dpi" />
所以密度DPI會在每次循環時減少20dpi。加速遞歸函數
有沒有一種方法可以加快速度,所以它通過比較以前值的比例在大約4個循環中完成......?我認爲在x++
之前應該有一些東西可以將5改成稍大一些,這樣$(window).width()==480
就會更快。
$(document).ready(function(){
$('meta[name="viewport"]').remove();
$('<meta name="viewport" id="the_vp_special" content="width=320,target-densityDPI=250dpi"/>').appendTo('head');
setTimeout(function(){
var x = 0;
var changeDPI = function (curr){
x++;
var sub = 5;
if(x>500) return false;
var curr = curr?parseInt(curr):320;
curr = curr-sub;
var txt = $('<meta/>',{name:"viewport",id:"the_vp_special",content:"width=320,initial-scale=1,target-densityDPI="+(parseInt(curr))+"dpi"});
$('#the_vp_special').replaceWith(txt)
if($(window).width()==480) {}
else setTimeout(function(){ changeDPI(curr); },5);
}
changeDPI(250);
}, 2500);
});
請問一下,如果不明確,我會盡力解釋一下。
你能改變'2500ms'超時延遲嗎?或者,這是否需要我不知道的方式? – aefxx
這不是問題,它只是在那裏表明整個功能何時開始......更容易接受,我認爲如果我改變幾次,就可以簡化整個事情,並且計算出這個比例它會精確地增加或減少,因爲只有一個因素在變化,但它是星期五,我今天似乎無法做數學......,我知道窗寬將是多少,我知道dpi是什麼,所以我需要正在找到它們的變化率...每個分辨率的寬度有多少像素:) – Val
像素和dpi之間的常量比率是多少?因爲如果有的話,一個簡單的交叉乘法就可以做到。見http://en.wikipedia.org/wiki/Cross-multiplication – aefxx