我需要能够根据这样的百分比旋转占位符 div 内的内容。旋转将在页面加载时发生。因此,每次用户重新加载页面时,他都有机会在内容占位符中看到内容 1、2 或 3:
内容 1 = 显示 50% 的时间
内容 2 = 显示 25% 的时间
内容 3 = 显示 25% 的时间
我更喜欢 Javascript,但如果在前端模板而不是代码隐藏的 ASP.NET 中有更简单的方法,那也是可以接受的。如果您有解决方案或可以将我指向现有脚本,我将不胜感激。谢谢!
我需要能够根据这样的百分比旋转占位符 div 内的内容。旋转将在页面加载时发生。因此,每次用户重新加载页面时,他都有机会在内容占位符中看到内容 1、2 或 3:
内容 1 = 显示 50% 的时间
内容 2 = 显示 25% 的时间
内容 3 = 显示 25% 的时间
我更喜欢 Javascript,但如果在前端模板而不是代码隐藏的 ASP.NET 中有更简单的方法,那也是可以接受的。如果您有解决方案或可以将我指向现有脚本,我将不胜感激。谢谢!
真的不需要乘/地板/天花板任何东西:该Math.random()
函数给出大于或等于0且小于1的值。
如果您更改选项的数量或机会百分比,以下代码会更容易维护。
var contentId, random = Math.random();
if (random < 0.5) {
// option 1: chance 0.0–0.499...
contentId = 0;
} else (random < 0.75) {
// option 2: chance 0.50—0.7499...
contentId = 1;
} else {
// option 3: chance 0.75–0.99...
contentId = 2;
}
loadContent(contentId);
这是一个快速破解,可能有更好的方法。
var randomnumber=Math.floor(Math.random()*4)
if((num==0) || (num==1)) {
//show hidden div or document.write (50% probability)
} else if (num==2) {
//show hidden div or document.write (25% probability)
} else {
//show hidden div or document.write (25% probability)
}
对于脚本的随机部分,你只需要使用 Math.random 一些丑陋和硬编码的东西看起来像这样:
var contentToShow = -1;
var NB_MAX = 4;
var myRand = Math.floor(Math.random()*NB_MAX);
if(myRand<1) contentToShow = 1;
else if (myRand<2) contentToShow = 2;
else contentToShow = 3;
然后你只需要用ajax加载内容。
jQuery 中的一个示例可能如下所示:
var myPlaceHolder = $("#myPlaceHolder")
$.myPlaceHolder.load("/mycontents/mycontent_" + contentToShow + ".asp");
但是在页面加载时使用 ajax 请求并不是 imo 的方法。(如果随机内容由服务器处理,则为 2 个服务器请求而不是 1 个)