闲逛之余,在慕若曦博客看到了一个萌萌哒的浮动小人。这个东西和看板娘很像,作用都是一样的,用来装扮网站。之前我也玩过看板娘,最后还是放弃了,因为开启了看板娘后,移动端超级慢,虽然很好看,但是还是不能影响网站的访问。使用ZBlog的可以直接在应用中心搜索看板娘。另外贴出一些看板娘的教程文章。《网页添加 Live2D 看板娘》、《不用插件自己搭一个可以换人物的看板娘》另外我的另一个站点http://wp.zjh336.cn使用的主题自带看板娘,可以去看一看效果。主题参考《好看的WordPress博客主题 kratos》。
好了,闲话少说,看到这个萌萌哒的浮动小人,我终于有按捺不住了,也想放到自己的网站中来。寻觅踪迹,发现代码来自萝莉社。找到了教程文章《在自己的博客里养一只saber吧》。原来也是看的其他大佬的,不过源站已经访问不了。
下载素材文件,为防止以后资源可能找不到,特添加到个人网盘中,下载:https://cloudreve.zjh336.cn/s/gQoc1
按照教程的说法,将其添加到网站中很简单
1、这个脚本需要jQuery库,必须先加载jQuery库(有可能是原来已经加载了,这样就不用设置),您可能需要修改spig.js里面的一些东西,比如里面的一些域名网址提示等。
2、添加代码到footer.php底部文件body里。
<!--.浮动小人--> <script type="text/javascript"> <?php if(is_home()) echo 'var isindex=true;var title="";';else echo 'var isindex=false;var title="', get_the_title(),'";'; ?> <?php if((($display_name = wp_get_current_user()->display_name) != null)) echo 'var visitor="',$display_name,'";'; else if(isset($_COOKIE['comment_author_'.COOKIEHASH])) echo 'var visitor="',$_COOKIE['comment_author_'.COOKIEHASH],'";';else echo 'var visitor="游客";';echo "\n"; ?> </script> <script type="text/javascript" src="http://myhloli.com/spig.js"></script> <style> .spig {display:block;width:130px;height:170px;position:absolute;bottom: 300px;left:160px;z-index:9999;} #message{color :#191919;border: 1px solid #c4c4c4;background:#ddd;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;min-height:1em;padding:5px;top:-45px;position:absolute;text-align:center;width:auto !important;z-index:10000;-moz-box-shadow:0 0 15px #eeeeee;-webkit-box-shadow:0 0 15px #eeeeee;border-color:#eeeeee;box-shadow:0 0 15px #eeeeee;outline:none;} .mumu{width:130px;height:170px;cursor: move;background:url(https://myhloli.com/wp-content/themes/loveloli/img/spig.png) no-repeat;} </style> <div id="spig" class="spig"> <div id="message">加载中……</div> <div id="mumu" class="mumu"></div> </div> <!--.end浮动小人-->3、其中这两行代码换成你的路径
<script type="text/javascript" src="http://myhloli.com/spig.js"></script> .mumu{width:130px;height:170px;cursor: move;background:url(https://myhloli.com/wp-content/themes/loveloli/img/spig.png) no-repeat;}
但是在这个过程中,我碰到了一些问题
一、虽然小人加载出来了,但是提示加载中,并且后台报错,isindex is not defiend
仔细查看代码,第二步中有部分代码是wordPress专用的,比如is_home() 、wp_get_current_user()等。而本站使用的是ZBlog PHP,自然无法运行代码了。
那应该如何处理呢?
1、按照本身的逻辑,修改为ZBlog PHP中能使用的方法,比如可以改为:
{if $type=='index'&&$page=='1'}
var isindex=true;
var title="";
{else}
var isindex=false;
var title="";
{/if}这是判断首页的方法。
2、不会修改的部分,就直接设置默认值就好了。(我就只知道首页的判断方式,其他的不知道怎么设置)
修改完成的代码为:
<!--.浮动小人-->
<script type="text/javascript">
{if $type=='index'&&$page=='1'}
var isindex=true;
var title="";
{else}
var isindex=false;
var title="";
{/if}
var visitor="";
</script>
<script type="text/javascript" src="https://www.zjh336.cn/spig/spig.js?v=1"></script>
<style>
.spig {display:block;width:130px;height:170px;position:absolute;bottom: 300px;left:160px;z-index:9999;}
#message{color :#191919;border: 1px solid #c4c4c4;background:#ddd;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;min-height:1em;padding:5px;top:-45px;position:absolute;text-align:center;width:auto !important;z-index:10000;-moz-box-shadow:0 0 15px #eeeeee;-webkit-box-shadow:0 0 15px #eeeeee;border-color:#eeeeee;box-shadow:0 0 15px #eeeeee;outline:none;}
.mumu{width:130px;height:170px;cursor: move;background:url(https://www.zjh336.cn/spig/spig.png) no-repeat;}
</style>
<div id="spig" class="spig">
<div id="message">加载中……</div>
<div id="mumu" class="mumu"></div>
</div>
<!--.end浮动小人-->二、界面事件不一致
前面说到,这是基于wordPress做的插件,自然,页面结构也是基于wordPress来的,比如:
于是,我针对其中的内容进行了更改,基于ZBlog PHP的zbpNana主题进行元素适配,一共修改两处:
1、鼠标在元素上方时
//鼠标在某些元素上方时
jQuery(document).ready(function ($) {
$('h2 a').click(function () {//标题被点击时
showMessage('正在用吃奶的劲加载《<span style="color:#0099cc;">' + $(this).text() + '</span>》请稍候');
});
$('h2 a').mouseover(function () {
showMessage('要看看《<span style="color:#0099cc;">' + $(this).text() + '</span>》这篇文章么?');
});
$("body").on("mouseover",".cat-lists .item-st",function(){
var text=$(this).find("h3 a").text();
if(!text){
text=$(this).find("p a").html();
}
showMessage('要看看《<span style="color:#0099cc;">' + text + '</span>》这篇文章么?');
})
$("body").on("mouseover",'.cat-list li',function () {
showMessage('要看看《<span style="color:#0099cc;">' + $(this).find("a").text() + '</span>》这篇文章么?');
});
$('.archive-tag a').mouseover(function () {
showMessage('要看看《<span style="color:#0099cc;">' + $(this).text() + '</span>》这个标签么?');
});
$('li.navbar-item a').mouseover(function(){
var title=$(this).html();
if(title){
title=title.substring(title.indexOf("</i>"),title.length);
}
showMessage('要看看《<span style="color:#0099cc;">' + title + '</span>》这个分类么?');
});
$('.catmore a').mouseover(function () {
showMessage('要看看更多文章么?');
});
$('.nav-previous span i').mouseover(function(){
showMessage('要翻到上一页吗?');
});
$('.nav-next span i').mouseover(function(){
showMessage('要翻到下一页吗?');
});
$('#index-links li a').mouseover(function () {
showMessage('去 <span style="color:#0099cc;">' + $(this).text() + '</span> 逛逛');
});
$('.tools_top').mouseover(function () {
showMessage('<span style="color:#0099cc;">' + visitor + '</span> 返回到顶部吧!');
});
$('.tools_comments').mouseover(function () {
showMessage('<span style="color:#0099cc;">' + visitor + '</span> 向评论栏出发吧!');
});
$('.top-nav a').mouseover(function () {
showMessage('要看看《<span style="color:#0099cc;">' + $(this).html() + '</span>》么?');
});
$('#footer a').mouseover(function () {
showMessage('要看看《<span style="color:#0099cc;">' + $(this).html() + '</span>》么?');
});
$('#submit').mouseover(function () {
showMessage('确认提交了么?');
});
$('input[name="q"]').focus(function () {
showMessage('输入你想搜索的关键词再按Enter(回车)键就可以搜索啦!');
});
$('.post-previous').mouseover(function () {
showMessage('点它可以翻到上一篇哦!');
});
$('.post-next').mouseover(function () {
showMessage('点它可以翻到下一篇哦!');
});
$('.bdsharebuttonbox a').mouseover(function () {
var title=$(this).attr('title');
if(title){
showMessage('你知道吗?点它可以分享本文到'+title);
}
});
});2、评论资料处
//评论资料
jQuery(document).ready(function ($) {
$(".comment-form-author #inpName").click(function () {
showMessage("留下你的尊姓大名!");
$(".spig").animate({
top: $(".comment-form-author #inpName").offset().top - 70,
left: $(".comment-form-author #inpName").offset().left - 170
},
{
queue: false,
duration: 1000
});
});
$("comment-form-email #inpEmail").click(function () {
showMessage("留下你的邮箱!");
$(".spig").animate({
top: $(".comment-form-author #inpEmail").offset().top - 70,
left: $(".comment-form-author #inpEmail").offset().left - 170
},
{
queue: false,
duration: 1000
});
});
$(".comment-form-url #inpHomePage").click(function () {
showMessage("快快告诉我你的家在哪里,好让我去参观参观!");
$(".spig").animate({
top: $(".comment-form-url #inpHomePage").offset().top - 70,
left: $(".comment-form-url #inpHomePage").offset().left - 170
},
{
queue: false,
duration: 1000
});
});
$(".comment-form-comment #txaArticle").click(function () {
showMessage("认真填写哦!不然会被认作垃圾评论的!我的乖乖~");
$(".spig").animate({
top: $(".comment-form-comment #txaArticle").offset().top - 70,
left: $(".comment-form-comment #txaArticle").offset().left - 170
},
{
queue: false,
duration: 1000
});
});
});浮动小人扩展改造
加入一言接口调用,随机讲一句话
接口采用的是自己搭建的接口平台
参考萝莉社的《浮动小人改造计划2:接入一言api》 由于接口调不通,借鉴其中的方案五进行改造。不过由于接口平台提供的js方式调用不太好处理。最终对接接口平台的该接口重新设置,添加跨域请求头,此处调用采用ajax方式调用。
修改代码:
//无聊讲点什么
jQuery(document).ready(function ($) {
var msgs= ["陪我聊天吧!", "好无聊哦,你都不陪我玩!", "…@……!………", "^%#&*!@*(&#)(!)(", "我可爱吧!嘻嘻!~^_^!~~","谁淫荡呀?~谁淫荡?,你淫荡呀!~~你淫荡!~~","从前有座山,山上有座庙,庙里有个老和尚给小和尚讲故事,讲:“从前有座……”"];
//加载一言
function getkoto(){
//一言加入消息中
$.ajax({
type: "get",
url:"https://api.zjh336.cn/bt/yan/api.php",
data: {
encode:"json"
},
dataType:'json',
success: function(msg){
msgs=[];
msgs.push(msg.text);
}
});
}
window.setInterval(function () {
//初始化一言
getkoto();
var i = Math.floor(Math.random() * msgs.length);
showMessage(msgs[i], 10000);
}, 15000);
});




livinginau.life