Bilibili-Evolved/min/blackboard.vue.min.js
2019-10-25 20:37:20 +08:00

1 line
2.3 KiB
JavaScript

(()=>{return(a,i)=>{const r=`<div class=blackboards><div class=header><div class=title>活动</div><a class=more><icon type=mdi icon=dots-horizontal></icon>更多</a></div><input class="hidden-input blackboard-radio"type=radio name=blackboard v-for="(b, i) of blackboards":checked="i === 0":id="'blackboard' + i":data-index=i :key=i><div class=jump-dots><label v-for="(b, i) of blackboards":for="'blackboard' + i":key=i><div class=jump-dot></div></label></div><div class=blackboard-cards><a class=blackboard-card target=_blank v-for="(b, i) of blackboards":key=i :href=b.url :title=b.title><dpi-img :src=b.imageUrl :alt=b.title :size="{width: 500, height: 250}"></dpi-img><div class=title>{{b.title}}</div></a></div></div>`;i.applyStyleFromText(`.simple-home .blackboards{display:grid;grid-template-areas:"header header" "dots cards";grid-template-columns:8px 1fr;grid-template-rows:1fr 250px;row-gap:16px;column-gap:16px;align-self:start;justify-self:center}.simple-home .blackboards .blackboard-cards{grid-area:cards;--blackboard-width:500px;--blackboard-height:250px;width:var(--blackboard-width);height:var(--blackboard-height);border-radius:16px;overflow:hidden}.simple-home .blackboards .blackboard-cards .blackboard-card{width:100%;height:100%;position:relative;display:block;transition:.3s cubic-bezier(.65,.05,.36,1)}.simple-home .blackboards .blackboard-cards .blackboard-card img{width:100%;height:100%;object-fit:fill;display:block}.simple-home .blackboards .blackboard-cards .blackboard-card .title{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);padding:4px 16px;color:#fff;background-color:#000a;font-size:14px;font-weight:700;border-radius:14px;white-space:nowrap}`,"blackboard-style");return{export:Object.assign({template:r},{components:{Icon:()=>i.importAsync("icon.vue"),"dpi-img":()=>i.importAsync("dpi-img.vue")},data(){return{blackboards:[],interval:0}},destroyed(){if(this.interval){clearInterval(this.interval)}},async mounted(){const{getBlackboards:a}=await i.importAsync("blackboard");this.blackboards=(await a()).filter(a=>!a.isAd);const r=dq(".blackboards");this.interval=setInterval(()=>{if(!document.hasFocus()||r.matches(".blackboards:hover")){return}const a=parseInt(dq(`.blackboard-radio:checked`).getAttribute("data-index"));let i;if(a===this.blackboards.length-1){i=0}else{i=a+1}dq(`.blackboard-radio[data-index='${i}']`).checked=true},5e3)}})}}})();