2

我需要能够根据这样的百分比旋转占位符 div 内的内容。旋转将在页面加载时发生。因此,每次用户重新加载页面时,他都有机会在内容占位符中看到内容 1、2 或 3:

内容 1 = 显示 50% 的时间
内容 2 = 显示 25% 的时间
内容 3 = 显示 25% 的时间

我更喜欢 Javascript,但如果在前端模板而不是代码隐藏的 ASP.NET 中有更简单的方法,那也是可以接受的。如果您有解决方案或可以将我指向现有脚本,我将不胜感激。谢谢!

4

3 回答 3

10

真的不需要乘/地板/天花板任何东西:该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);
于 2009-06-17T16:21:57.397 回答
0

这是一个快速破解,可能有更好的方法。

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)
}
于 2009-06-17T16:07:29.083 回答
0

对于脚本的随机部分,你只需要使用 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 个)

于 2009-06-17T16:08:37.820 回答