下面的函数将改变<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