发现某些blog网站左下方或者右下方出现的二次元卡通人物或萌萌阿猫,除了萌,还可以监听鼠标的行为,产生互动的现象。
L2Dwidget.min.js的源码:https://github.com/xiazeyu/live2d-widget.js.git
起初我以为在git中会找到这个脚本文件,但是却失望了。L2Dwidget.min.js 脚本是需要编译生成的。
首先我们把项目git下来(master分支),此项目是基于nodeJs的,如果不会nodeJs,需要先去了解下。刚Git下来的目录,是没有 lib和 node_modules目录的。
接下来我们安装依赖和编译项目,在当前目录打开命令窗口,输入如下命令:
npm install命令成功后,node_modules目录就生成了,这是这个项目需要的依赖包。
打开package.json,可以看到这个项目的结构情况。可以看到有执行的脚本:
{
"scripts": {
    //省略
    "inst:dev": "npm install -g commitizen && npm install -g conventional-changelog-cli && npm install",
    "build:dev": "./node_modules/.bin/webpack --progress --colors",
    "build:prod": "./node_modules/.bin/webpack --env prod --progress --colors && npm run build:module",
    //省略
}执行脚本,编译项目:
npm run build运行后,会看到lib目录生成了,L2Dwidget.min.js和L2Dwidget.0.min.js脚本成功生成。
如果不想下载来编译,我们可以直接引入l2dwidget.js.org官网的js链接:
<script src="https://l2dwidget.js.org/lib/L2Dwidget.min.js"></script>
<script>
L2Dwidget.init({
	"model": {
		jsonPath: 'https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json',
		"scale": 1
	},
	"display": {
		"position": "left",
		"width": 180,
	},
	"mobile": {
		"show": true,
		"scale": 0.5
	},
	"react": {
		"opacityDefault": 0.7,
		"opacityOnHover": 0.2
	},
});
</script>我们运行项目下的 dev.html文件,就可以看到效果。里面就一句代码:
L2Dwidget.init();默认加载的是 
const defaultConfig = {
  model: {
    jsonPath: 'https://unpkg.com/live2d-widget-model-shizuku@latest/assets/shizuku.model.json',
    scale: 1,
  },
  display: {
    superSample: 2,
    width: 200,
    height: 400,
    position: 'right',
    hOffset: 0,
    vOffset: -20,
  },
  mobile: {
    show: true,
    scale: 0.8,
    motion: true,
  },
  name: {
    canvas: 'live2dcanvas',
    div: 'live2d-widget',
  },
  react: {
    opacity: 1,
  },
  dev: {
    border: false
  },
  dialog: {
    enable: false,
    script: null
  }
}在 
/**
 * The init function
 * @param {Object}   [userConfig] User's custom config 用户自定义设置
 * @param {String}   [userConfig.model.jsonPath = ''] Path to Live2D model's main json eg. `https://test.com/miku.model.json` model主文件路径
 * @param {Number}   [userConfig.model.scale = 1] Scale between the model and the canvas 模型与canvas的缩放
 * @param {Number}   [userConfig.display.superSample = 2] rate for super sampling rate 超采样等级
 * @param {Number}   [userConfig.display.width = 150] Width to the canvas which shows the model canvas的长度
 * @param {Number}   [userConfig.display.height = 300] Height to the canvas which shows the model canvas的高度
 * @param {String}   [userConfig.display.position = 'right'] Left of right side to show 显示位置:左或右
 * @param {Number}   [userConfig.display.hOffset = 0] Horizontal offset of the canvas canvas水平偏移
 * @param {Number}   [userConfig.display.vOffset = -20] Vertical offset of the canvas canvas垂直偏移
 * @param {Boolean}  [userConfig.mobile.show = true] Whether to show on mobile device 是否在移动设备上显示
 * @param {Number}   [userConfig.mobile.scale = 0.5] Scale on mobile device 移动设备上的缩放
 * @param {String}   [userConfig.name.canvas = 'live2dcanvas'] ID name of the canvas canvas元素的ID
 * @param {String}   [userConfig.name.div = 'live2d-widget'] ID name of the div div元素的ID
 * @param {Number}   [userConfig.react.opacity = 0.7] opacity 透明度
 * @param {Boolean}  [userConfig.dev.border = false] Whether to show border around the canvas 在canvas周围显示边界
 * @param {Boolean}  [userConfig.dialog.enable = false] Display dialog 显示人物对话框
 * @param {Boolean}  [userConfig.dialog.hitokoto = false] Enable hitokoto 使用一言api
 * @return {null}
 */在https://github.com/xiazeyu/live2d-widget-models.git这个地址可以看到可以用的model,你可以Git下来,或者像文章中说的 cnpm 安装到node_modules。我这里用的cnpm安装,live2d-widget.js-master目录下运行:
npm install live2d-widget-model-koharu成功后,在node_modules目录下可以看到live2d-widget-model-koharu文件夹。
在使用的时候,指定model的json位置即可:
L2Dwidget.init({
    "model": {
        "jsonPath": "node_modules/live2d-widget-model-koharu/assets/koharu.model.json"
    }
    //省略
});直接双击dev.html是加载不出来的,必须基于服务。你可以用nodeJs构建一个简单的服务。可以看到,可爱的看板娘出来了!!
我们来让看板娘说话吧!
只有部分的看板娘可以触发 触摸身体和触摸头部的事件(默认的那个),在使用的时候,加入下面的配置就可以了:
L2Dwidget.init({
    "dialog": {
        "enable": true,
        "script": {
            //每20s,显示一言(调用一言Api返回的句子)
            'every idle 20s': '$hitokoto$',
            //触摸到对象
            'hover .star': '星星在天上而你在我心里 (*/ω\*)',
            //触摸到身体
            'tap body': '害羞?',
            //触摸到头部
            'tap face': '~~'
      }
    }
});我在编译好的脚本 L2Dwidget.min.js 中没有发现可以直接调用对话框的接口,所以打算修改源代码,增加弹出对话框的接口。打开
import { alertText } from './dialog';/*弹出对话框*/
alert(text){
    alertText(text);
}添加的位置如下:
//代码省略
import device from 'current-device';
import { config, configApplyer }from './config/configMgr';
import { EventEmitter } from './utils/EventEmitter';
import { alertText } from './dialog';
//代码省略
/**
 * download current frame {@link L2Dwidget.captureFrame}
 * @return {null}
 */
  downloadFrame(){
    this.captureFrame(
      function(e){
        let link = document.createElement('a');
        document.body.appendChild(link);
        link.setAttribute('type', 'hidden');
        link.href = e;
        link.download = 'live2d.png';
        link.click();
      }
    );
  }
/**
 * 弹出对话框
 */
  alert(text){
    alertText(text);
  }
//代码省略然后按照 #1 的方式, 重新编译生成L2Dwidget.min.js脚本文件,此时只需要执行
L2Dwidget.alert("我要吃包子~");需要注意的是,L2Dwidget.alert() 需要配置文件的 dialog: {enable: true} 才可以。
要想不同的图片,更换不同的jsnPath就好了,贴一下几个json:
https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json
https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json
https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json
https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json
https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json
https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json
https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json
https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!
作为个人开发者,为自己的辛苦开发的项目配上支付功能,才有盈利的盼头!但是目前大部分都需要企业资质,那对应个人而言如何在网站、应用中接入支付功能呢?这里找了一些不需要企业资质的第三方支付平台。
为了自己网站上文章的质量,我们可以通过一些在线的原创文章相似度在线检测工具,进行检测自己的文章和网上相关文章的相似率!下面就为此整理了一些目网上已有的工具,以供大家参考使用
移动端网站关键词怎么优化?现在人人都要用手机,手机已经成为我们生活中不可或缺的一部分,移动端也越来越重要了,很多企业都开始关注移动端关键词排名,移动端和PC端排名为什么差这么大,移动端关键词优化方法是什么?
 
 对于一个新网站来说,希望短时间内被收录无疑是网站经营者最关注的的问题。那么就让我们了解一下!新网站上传之后,首先在百度搜索上输入你的网站网址,然后主动向百度提交你的网站
GatsbyJS 是一个现代化开发网站的网站产生系统,拥有完整、丰富且开源的生态圈。它利用 React + GraphQL 产生的多页面应用,让前端工程师,编辑,用户都感到满意。就让我们一步步地探索这个系统吧。 GatsbyJS 是一个拥有超过 2万 Stars,3500 forks 的 React 网站生成系统。
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展
 
 更新谷歌浏览器之后发现不能通过本地 crx文件安装离线插件了,网上找到的方法有两种 :一个就是通过添加浏览器参数解决 但是这个方法我尝试之后失败了 ,第二个方法就是用工具安装,具体如何太麻烦了就没有用
站制作公司数不胜数,每家公司使用域名、服务器的提供商也是不同,制作网站使用代码语言、模板、自主研发的系统都是各不相同。网站整体的设计要好,这个设计,一是指网站的代码设计,最好采用PHP+MySQL的形式,像目前建站比较流行的Dedecms,Wordpress
 
 很多新手想做一个网站却不知道怎么做,今天呢,我就给有建网站需求的小伙伴们来说一说从建网站的步骤,还有一些常见问题的解决办法。在网络上的主机都有自己唯一的标识也就是你的IP地址,因为IP地址较长,不容易记忆
 
 找视频素材的网站,免费视频素材资源,如何免费下载视频素材? 推荐视频素材哪个网站好:videezy、pexels、splashbase 、footage crate、monzoom、Wedistill、Mazwai
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!