Files
mama-box/js/gch/brand.js

55 lines
3.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* 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 个(人数是信息,头像是装饰)。 */
/* 11-05 起福利卡由 app.js 按后台资料现画,画完调 window.mbGiftFaces() 再抽头像 */
window.mbGiftFaces = 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; }
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);
};
window.mbGiftFaces();