低仿pixiv自动轮播背景
2023.08.02 10:05 | 访问量:
改了又改的背景终于是看的过去了,再次重写ui后,写篇博客记录一下
svg图都是去阿里的图标库里找的
需要引用jQuery
Demo
bg.css
bg.js
<link rel="stylesheet" href="https://muxmus.com/blog/20230802/bg.css">
<script src="https://muxmus.com/js/jquery-3.6.0.min.js"></script>
<div id="bg"></div>
<script src="https://muxmus.com/blog/20230802/bg.js"></script>
ps:bg.js文件可能需要引用在</div>的后面
ps:下面的示例直接使用的pixiv的图片,可自行改用代理,或其他图片
// JavaScript Document
$("#bg").append("<div id=\"bg1\"></div><div id=\"bg2\"></div><div id=\"artist\"><span id=\"bgName\"> <img id=\"bf\" class=\"bf\" src=\"https://muxmus.com/img/bf.svg\" alt=\"\" ><img id=\"zt\" class=\"zt\" src=\"https://muxmus.com/img/zt.svg\" alt=\"\" ><img id=\"yc\" class=\"yc\" src=\"https://muxmus.com/img/yc.svg\" alt=\"\" ><img id=\"xs\" class=\"xs\" src=\"https://muxmus.com/img/xs.svg\" alt=\"\" ><a id=\"title\" href=\"\" target=\"_blank\"></a></span></div><div class=\"left\"><div class=\"left1\"><svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z\"></path></svg></div></div><div class=\"right\"><div class=\"right1\"><svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z\"></path></svg></div></div>");
var img = [
{
id: "34844544", \\这里放p站作品id
title: "星月夜", \\这里放作品名称
artist: "c7肘", \\这里放作品画师
url: "2013/04/07/01/53/07/34844544_p0.jpg" \\这里放p站作品原图后面那一长串
},
{
id: "id",
title: "title",
artist: "artist",
url: "url"
},
...
];
var bgCount = img.length - 1;
var bgOriginal = new Array;
var bgI = 0;
var bgNum = 0;
var bgFlag = 0;
var lastFlag = 0;
for (var bgJ = 0; bgJ <= bgCount; bgJ++){
bgOriginal[bgJ] = bgJ;
}
bgOriginal.sort(function(){
return 0.5 - Math.random();
});
function secondClick(){
var timer = setInterval(function(){
nextSwitch();
},60000);
$("#bf").click(function(){
$("#bf").attr("class","zt");
$("#zt").attr("class","bf");
clearInterval(timer);
});
$("#zt").click(function(){
$("#bf").attr("class","bf");
$("#zt").attr("class","zt");
secondClick();
});
}
function nextSwitch(){
if(bgI <= bgCount){
autoSwitch();
}else{
bgNum = bgOriginal[bgCount];
bgOriginal.sort(function(){
return 0.5 - Math.random();
});
ifNext();
bgI = 0;
autoSwitch();
}
}
function lastSwitch(){
if(bgI >= 2){
bgI -= 2;
autoSwitch();
}else{
bgNum = bgOriginal[0];
bgOriginal.sort(function(){
return 0.5 - Math.random();
});
ifLast();
bgI = bgCount;
autoSwitch();
}
}
function autoSwitch(){
if(bgFlag == 0){
$("#bg1").attr("style","position: fixed; top: 0%; left: 0%; width: 100%; height: 100%; transform: translate(0px, 0px); background: url(\"https://i.pximg.net/img-original/img/" + img[bgOriginal[bgI]].id + "\") center center / cover no-repeat fixed black; z-index: -10; opacity: 1;");
document.getElementById("title").innerHTML = "id:" + img[bgOriginal[bgI]].id + " | 画师:" + img[bgOriginal[bgI]].artist;
}else{
$("#bg1").attr("style","position: fixed; top: 0%; left: 0%; width: 100%; height: 100%; transform: translate(0px, 0px); background: url(\"https://i.pximg.net/img-original/img/" + img[bgOriginal[bgI]].id + "\") center center / cover no-repeat fixed black; z-index: 119; opacity: 1;");
document.getElementById("title").innerHTML = "id:" + img[bgOriginal[bgI]].id + " | 画师:" + img[bgOriginal[bgI]].artist;
}
$("#title").attr("href","https://www.pixiv.net/artworks/" + img[bgOriginal[bgI]].id);
if(bgI < bgCount){
bgI += 1;
$("#bg2").attr("style","position: fixed; top: 0%; left: 0%; width: 100%; height: 100%; transform: translate(0px, 0px); background: url(\"https://i.pximg.net/img-original/img/" + img[bgOriginal[bgI]].id + "\") center center / cover no-repeat fixed black; z-index: -11; opacity: 0;");
}else{
bgI += 1;
}
}
function ifNext(){
if(bgOriginal[0] == bgNum){
bgOriginal.sort(function(){
return 0.5 - Math.random();
});
ifNext();
}
}
function ifLast(){
if(bgOriginal[bgCount] == bgNum){
bgOriginal.sort(function(){
return 0.5 - Math.random();
});
ifLast();
}
}
$(function(){
autoSwitch();
});
if(document.all){
window.attachEvent('onload',secondClick);
}
else{
window.addEventListener('load',secondClick,false);
}
$(function(){
$("#yc").click(function(){
$("#yc").attr("class","xs");
$("#xs").attr("class","yc");
document.getElementById("bg1").style.zIndex = "119";
bgFlag = 1;
});
$("#xs").click(function(){
$("#yc").attr("class","yc");
$("#xs").attr("class","xs");
document.getElementById("bg1").style.zIndex = "-10";
bgFlag = 0;
});
$(".left").click(function(){
lastSwitch();
});
$(".right").click(function(){
nextSwitch();
});
});