昨天在逛应用中心的时候,看的了一款插件,下雪了的插件,于是也想添加来看看。然而添加成功后,效果却不太满意,有几个小问题。
1、雪花是圆点点,不像雪花,像冰雹。2、滚动加载页面后,雪花区域未刷新。
自己动手丰衣足食,碰到问题可以自己研究一下,于是开始了我的改造之路。
一、打开插件页面,使用的是snowfall.jquery.min.js 的插件。
这个插件是开源的,找到github的地址 https://github.com/loktar00/JQuery-Snowfall 下载下来源文件。解压查看示例,以及用法。
提供一个演示地址:https://www.zjh336.cn/snowfall/indexpure.html 可以点击查看效果。
二、打开include.phpx
原始文件内容:
<?php #注册插件 RegisterPlugin("snowfall","ActivePlugin_snowfall"); function ActivePlugin_snowfall() { Add_Filter_Plugin('Filter_Plugin_Zbp_MakeTemplatetags','snowfall_page'); Add_Filter_Plugin('Filter_Plugin_Search_Begin','snowfall_page'); } function snowfall_page() { global $zbp; $zbp->header .= '<link href="'.$zbp->host.'zb_users/plugin/snowfall/styles.css" rel="stylesheet" type="text/css" /> ' . "\r\n"; $zbp->footer .= '<script src="'.$zbp->host.'zb_users/plugin/snowfall/snowfall.jquery.min.js"></script>' . "\r\n"; $zbp->footer .= '<script type="text/javascript">$(document).ready(function(){$(document).snowfall({shadow:true, minSize: 10, maxSize:12});});</script>' . "\r\n"; } function InstallPlugin_snowfall() {} function UninstallPlugin_snowfall() {}
修改后的内容:
<?php #注册插件 RegisterPlugin("snowfall","ActivePlugin_snowfall"); function ActivePlugin_snowfall() { Add_Filter_Plugin('Filter_Plugin_Zbp_MakeTemplatetags','snowfall_page'); Add_Filter_Plugin('Filter_Plugin_Search_Begin','snowfall_page'); } function snowfall_page() { global $zbp; $zbp->header .= '<link href="'.$zbp->host.'zb_users/plugin/snowfall/styles.css" rel="stylesheet" type="text/css" /> ' . "\r\n"; $zbp->footer .= '<script src="'.$zbp->host.'zb_users/plugin/snowfall/snowfall.jquery.min.js"></script>' . "\r\n"; $zbp->footer .= '<script type="text/javascript">function snowFallFun(){$(document).snowfall({image :"/zb_users/plugin/snowfall/images/flake.png",flakeCount:150,minSize: 10, maxSize:32});}$(document).ready(function(){ setTimeout(function(){ $(document).snowfall("clear");snowFallFun();}, 1000);});</script>' . "\r\n"; } function InstallPlugin_snowfall() {} function UninstallPlugin_snowfall() {}
修改了js部分,将部分逻辑提取方法,方便其他地方调用。增加清除雪花逻辑,添加图片设置,数量设置,大小设置。设置延时加载调用。
三、根据页面内容,找到下一页加载的方法。
比如,本博客采用人工加载下一页方式。在文章最底部,显示加载更多。根据内容去网站代码中找事件监听。
最终找到是在模板文件的footer.php中有设置监听。
经过查找资料,发现此处使用ias是一个分页插件,jquery ias插件。参考官方文档:https://docs.infiniteajaxscroll.com/reference/events
在其中添加loaded监听,提取的公共方法snowFallFun(),延迟加载调用。
四、打开博客验证,圆点点变成了雪花。加载下一页时,雪花效果也成功刷新。改造完成。
发表评论