53 lines
3.5 KiB
JavaScript
53 lines
3.5 KiB
JavaScript
/* 11-02 首页品牌露出(用户定 4 处都要,默认加载;?brand=0 关掉)
|
||
用户:「首页缺少品牌性露出(兜爸心选),增加一些品牌曝光,但不要太过,要合理」
|
||
原则:不加横幅/弹窗/开屏,只在「内容是谁做的」这种自然位置署名 —— 共 4 处:
|
||
① 页底落款(logo + 一句话)② 专属福利「兜爸出品」③ 测一测「兜爸原创」④ 广场投稿卡「兜爸心选官方征集」 */
|
||
(function () {
|
||
var CHIP = function (t) { return '<span class="br-chip"><i>兜</i>' + t + '</span>'; };
|
||
// ① 页底落款
|
||
var hb = document.getElementById('homeBody');
|
||
if (hb) {
|
||
var f = document.createElement('div'); f.className = 'br-foot';
|
||
f.innerHTML = '<img src="assets/img/brand-logo-c.png" alt="兜爸心选"><div class="br-l">陪你从孕期到育儿的每一天</div>';
|
||
hb.appendChild(f);
|
||
}
|
||
// ② 专属福利标题旁
|
||
[].forEach.call(document.querySelectorAll('#homeBody .sh-title'), function (h) { if (/专属福利/.test(h.textContent) && !h.querySelector('.br-chip')) h.insertAdjacentHTML('beforeend', CHIP('兜爸出品')); });
|
||
// ③④ 广场 / 测一测是异步渲染的,等它们出来再加
|
||
var n = 0, t = setInterval(function () {
|
||
var q = document.querySelector('.g6-qh'); /* ④ 投稿卡文案直接写在 js/gch/v4.js(卡堆会重绘) */
|
||
if (q && !q.querySelector('.br-chip')) { var sm = q.querySelector('small'); if (sm) sm.remove(); q.insertAdjacentHTML('beforeend', CHIP('兜爸原创')); }
|
||
if (q || ++n > 40) clearInterval(t);
|
||
}, 300);
|
||
})();
|
||
/* 11-05 用户:「孕期福利每一个文章调用的头像 4-7 个,可以随机显示」
|
||
→ 三张福利卡各随机 4~7 个头像,每次打开重抽,三张之间不重复。
|
||
池子 = 分配表 gift 的 9 个 + 11-05 新加的非人像头像 12 个(女生常用 g / 宠物 p),共 21 个,够三张都抽满 7 个。
|
||
mama-box.css 里 .gift2 .sb-faces i:nth-child(n+4){display:none} 只留 3 个 → 这里用行内 display 盖掉;
|
||
「N 万妈妈已领取」被挤出省略号就先把头像叠紧(5→9px),再不够才从尾巴减头像,最少留 2 个(人数是信息,头像是装饰)。 */
|
||
(function () {
|
||
var box = document.querySelectorAll('.gift2 .sb-faces');
|
||
if (!box.length) return;
|
||
var pool = ((window.MB_AVA && MB_AVA.S.gift) || []).concat(
|
||
['g010', 'g025', 'g040', 'g055', 'g070', 'g085', 'p012', 'p030', 'p048', 'p066', 'p084', 'p100'].map(function (n) { return 'av:' + n; }));
|
||
for (var i = pool.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)), t = pool[i]; pool[i] = pool[j]; pool[j] = t; }
|
||
var at = 0;
|
||
[].forEach.call(box, function (f) {
|
||
var c = 4 + Math.floor(Math.random() * 4), h = '';
|
||
for (var k = 0; k < c; k++) {
|
||
var a = pool[at++ % pool.length];
|
||
h += '<i style="display:block;background-image:url(guangchang/av/' + a.replace(/^av:/, '') + '.webp)"></i>';
|
||
}
|
||
f.innerHTML = h;
|
||
});
|
||
function fit() {
|
||
[].forEach.call(box, function (f) {
|
||
var got = f.parentNode.querySelector('.sb-got'), ims = f.children, k = ims.length;
|
||
function tight() { return got && got.scrollWidth > got.clientWidth + 1; }
|
||
for (var m = 5; m <= 9 && tight(); m++) [].forEach.call(ims, function (im, x) { if (x) im.style.marginLeft = -m + 'px'; }); /* 先叠紧一点(最多压 9px),还放不下再减个数 */
|
||
while (k > 2 && tight()) ims[--k].style.display = 'none';
|
||
});
|
||
}
|
||
fit(); setTimeout(fit, 800);
|
||
})();
|