v26110468 百宝箱:第1条常驻滚动,后3条随机1条滚动
This commit is contained in:
@@ -244,5 +244,5 @@
|
||||
}
|
||||
/* feed.js 首页默认不加载(index.html 只引了 topics.js),这里按需拉一次 */
|
||||
if (window.GC_FEED) init();
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110467'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110468'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
})();
|
||||
|
||||
15
js/kit.js
15
js/kit.js
@@ -201,14 +201,13 @@
|
||||
function lvShuffle() {
|
||||
var rs = [].slice.call(box.querySelectorAll('.kit-rows .kr')).filter(function (r) { return r.querySelector('.kr-lv'); });
|
||||
if (!rs.length) return;
|
||||
var n = Math.min(rs.length, Math.random() < .5 ? 1 : 2), nx, t = 0; /* 11-04 用户:同时滚动 2~3 条 → 1~2 条,不超过 2 */
|
||||
/* 11-04 用户:「生娃到底要花多少钱」那条(.hot)尽量多轮播,约 70% 的轮次都有它;其余名额从另外几条里随机挑 */
|
||||
var hi = -1; rs.forEach(function (r, i) { if (r.classList.contains('hot')) hi = i; });
|
||||
var withHot = hi >= 0 && Math.random() < .7;
|
||||
do { /* 和上一轮完全一样就重挑(只有「生娃」一条时允许连着出,它自己的内容每 3 秒在换) */
|
||||
var rest = rs.map(function (r, i) { return i; }).filter(function (i) { return i !== hi; }).sort(function () { return Math.random() - .5; });
|
||||
nx = (withHot ? [hi].concat(rest.slice(0, n - 1)) : rest.slice(0, n)).sort();
|
||||
} while (nx.join() === LV_ON.join() && !(withHot && n === 1) && ++t < 9);
|
||||
/* 11-05 用户:「四个文章第一个一直保持滚动,其他三个随机选一个滚动」→ 第 1 条(生娃计算器)常驻滚动;
|
||||
后 3 条里每 5~7 秒随机换一条滚(和上一轮不同),同时最多 2 条在滚 */
|
||||
var first = rs[0] === box.querySelector('.kit-rows .kr') ? 0 : -1;
|
||||
var rest = rs.map(function (r, i) { return i; }).filter(function (i) { return i !== first; });
|
||||
var prev = LV_ON.filter(function (i) { return i !== first; })[0], c = rest.filter(function (i) { return i !== prev; });
|
||||
if (!c.length) c = rest;
|
||||
var nx = (first === 0 ? [0] : []).concat(c.length ? [c[Math.floor(Math.random() * c.length)]] : []).sort();
|
||||
LV_ON = nx;
|
||||
rs.forEach(function (r, i) {
|
||||
var go = LV_ON.indexOf(i) >= 0;
|
||||
|
||||
Reference in New Issue
Block a user