Commit 5313bde0 by xhw

更新

parent 132d1ef0
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body style="background: #363B40">
<div id="dd" style="background: url('./img/总览.png') no-repeat;width: 480px;height: 450px"></div>
<script>
const dd = document.getElementById('dd')
dd.onmouseover = (e) => {
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<link href="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.js"></script>
<style>
.demo{width:560px;margin:60px auto 10px auto}
.demo p{padding:10px 0}
</style>
</head>
<body>
<div class="demo">
<p><strong>自制音乐播放器</strong></p>
<div id="player1">
<pre class="aplayer-lrc-content">
[00:00.00] 作曲 : 林一峰
[00:01.00] 作词 : 易家扬
[00:24.898]听见 冬天的离开
[00:29.697]我在某年某月 醒过来
[00:34.768]我想 我等 我期待
[00:40.598]未来却不能因此安排
[00:53.398]阴天 傍晚 车窗外
[00:58.758]未来有一个人在等待
[01:04.298]向左向右向前看
[01:09.599]爱要拐几个弯才来
[01:14.369]我遇见谁 会有怎样的对白
[01:19.638]我等的人 他在多远的未来
[01:24.839]我听见风来自地铁和人海
[01:30.399]我排着队 拿着爱的号码牌
[01:56.388]阴天 傍晚 车窗外
[02:02.298]未来有一个人在等待
[02:06.650]向左向右向前看
[02:12.000]爱要拐几个弯才来
[02:16.980]我遇见谁 会有怎样的对白
[02:22.289]我等的人 他在多远的未来
[02:27.989]我听见风来自地铁和人海
[02:32.688]我排着队 拿着爱的号码牌
[02:43.380]我往前飞 飞过一片时间海
[02:48.298]我们也曾在爱情里受伤害
[02:53.689]我看着路 梦的入口有点窄
[02:58.748]我遇见你是最美丽的意外
[03:05.888]总有一天 我的谜底会揭开
</pre>
</div>
</div>
<script>
var ap = new APlayer
({
element: document.getElementById('player1'),
narrow: false,
autoplay: true,
showlrc: true,
music: {
title: '遇见',
author: '孙燕姿',
url: 'http://m701.music.126.net/20210125234204/6c2061718f0d20e8c3cd98c9b55daf6f/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/5473405221/2466/c6b2/5bb0/d2ed93b8db16409a6c4f0e5aa9d8ee77.mp3',
pic: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000002ehzTm0TxXC2.jpg'
}
});
console.log(ap)
</script>
</body>
\ No newline at end of file
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.d1{
width: 300px;
height: 300px;
background-color: rgb(231, 24, 24);
}
.p1:hover ~ .d1{
background-color: rgb(16, 243, 148);
}
</style>
</head>
<body>
<div class="d1">
<div class="p1"> hello </div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title> 圆形进度条拖拽滑动 </title>
</head>
<body style="background-color: black;">
<canvas id="canvasId" width="400" height="400"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvasId");
var ctx = canvas.getContext("2d");
var ox = 200;
var oy = 200;
var or = 180;
var br = 15;
var moveFlag = false;
function offset(r,d) {//根据弧度与距离计算偏移坐标
return {x: -Math.sin(r)*d, y: Math.cos(r)*d};
};
function draw(n) {
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.strokeStyle = "#99a";
ctx.lineWidth = 5;
ctx.beginPath();
ctx.arc(ox,oy,or,0,Math.PI,true);//半圆
// ctx.arc(ox,oy,or,0,2*Math.PI,true);//整圆
ctx.stroke();
ctx.strokeStyle = "#69f";
ctx.lineWidth = 5;
ctx.beginPath();
ctx.arc(ox,oy,or,Math.PI,(n*2+0.5)*Math.PI,false);
// ctx.arc(ox,oy,or,0.5*Math.PI,(n*2+0.5)*Math.PI,false);
ctx.stroke();
ctx.fillStyle = "#69f";
ctx.font = "80px Arial";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText(Math.round(n*100-25)+"%",ox,oy);
ctx.fillStyle = "#00f";
ctx.beginPath();
var d = offset(n*2*Math.PI,or);
ctx.arc(ox+d.x,oy+d.y,br,0,2*Math.PI,true);
ctx.fill();
}
var on = ("ontouchstart" in document)? {
start: "touchstart", move: "touchmove", end: "touchend"
} : {
start: "mousedown", move: "mousemove", end: "mouseup"
};
function getXY(e,obj) {
var et = e.touches? e.touches[0] : e;
var x = et.clientX;
var y = et.clientY;
return {
x : x - obj.offsetLeft + (document.body.scrollLeft || document.documentElement.scrollLeft),
y : y - obj.offsetTop + (document.body.scrollTop || document.documentElement.scrollTop)
}
}
canvas.addEventListener(on.start, function(e) {
moveFlag = true;
}, false);
canvas.addEventListener(on.move, function(e) {
if (moveFlag) {
var k = getXY(e,canvas);
var r = Math.atan2(k.x-ox, oy-k.y);
var hd = (Math.PI+r)/(2*Math.PI);
// 半圆的滑动范围判断
if (hd <= 0.5 && hd >= 0.25) {
draw(hd);
}
}
}, false);
canvas.addEventListener(on.end, function(e) {
moveFlag = false;
}, false);
draw(0.25);
</script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<script type="text/javascript">
window.onload = function () {
let Hotkey= new HotKeyHandler(0, "K", function () {
alert("注册成功");
});
}
class HotKeyHandler {
constructor(MainKey, SubKey, func) {
this.currentMainKey= null;
this.currentSubKey=SubKey;
this.func=func;
this.MKeycode = "";
switch (MainKey) {
case 0:
this.MKeycode = 17; //Ctrl
break;
case 1:
this.MKeycode = 16; //Shift
break;
case 2:
this.MKeycode = "18"; //Alt
break;
}
document.addEventListener('keyup',()=>{
this.currentMainKey = null;
})
document.addEventListener('keydown',()=>{
//获取键值
var keyCode = event.keyCode;
var keyValue = String.fromCharCode(event.keyCode);
console.log("in")
if (this.currentMainKey != null) {
if (keyValue == this.currentSubKey) {
this.currentMainKey = null;
if (this.func != null)
this.func();
}
}
if (keyCode == this.MKeycode) this.currentMainKey = keyCode;
}
)
}
}
</script>
</head>
<body>
测试,按下ctrl+k你就会发现神奇的事情发生了
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!-- <script src="./jquery-1.3.2.min.js" type="text/javascript"></script> -->
</head>
<body>
<input type="file" id="file" />
<video id="player"autoplay="autoplay">
</video>
</body>
<script type="text/javascript">
HTMLDocument.prototype.φ =function (str){
console.log(HTMLDocument.prototype);
return this.querySelector(str);
}
function φ(str){
return document.φ(str);
}
φ("#file").onchange=function (file) {
φ("body").append(file.target.files[0]);
var url = window.URL.createObjectURL(file.target.files[0]);
console.log(url);
φ("#player").src = url;
φ("#player").onload = function () {
window.URL.revokeObjectURL(src);
};
φ("#player").style.cssText="width:100%;height:100%";
};
</script>
</html>
\ No newline at end of file
<html>
<style>
.S{
position: absolute;
width: 99px;
height: 99px;
opacity: .7;
}
</style>
<body>
<div id="1" style="background-color:blue;left: 50%;top:50%" onclick="Triggered()" class="S"></div>
<div id="2" style="background-color:red;left: 50%;top:50%;transform: translate(-25%,-50%);" onclick="Triggered()" class="S"></div>
<div id="3" style="background-color:green;left: 50%;top:50%;transform: translate(-50px,0);" onclick="Triggered()" class="S"></div>
</body>
<script>
function Triggered(e){
console.log(event.target.id);//
}
</script>
</html>
\ No newline at end of file
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试的拖拽功能</title>
<style type="text/css">
body, div { margin: 0; paading: 0; font-size: 12px; }
body { width:100%; margin: 0 auto; }
ul, li { margin: 0; padding: 0; list-style: none; }
.clear { clear: both; width: 1px; height: 0px; line-height: 0px; font-size: 1px; }
.drag_module_box { width: 600px; height: auto; margin: 25px 0 0 0; padding: 5px; border: 1px solid #f00; }
.drag_module_box1 { width: 600px; height: auto; margin: 25px 0 0 0; padding: 5px; border: 1px solid #f00; }
.drag_module_main { position: static; width: 600px; height: 80px; margin-bottom: 5px; border: 1px solid blue; background: #ccc; }
.drag_module_maindash { position: absolute; width: 600px; height: 80px; margin-bottom: 5px; border: 1px dashed blue; background: #ececec; opacity: 0.7; }
.drag_module_hide { width: 600px; height: 80px; margin-bottom: 5px; }
.drag_module_dash { position: sta;tic; width: 600px; height: 80px; margin-bottom: 5px; border: 1px dashed #f00; };
</style>
<script type="text/javascript" src="./js/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready( function () {
var range = { x: 0, y: 0 };//鼠标元素偏移量
var lastPos = { x: 0, y: 0, x1: 0, y1: 0 }; //拖拽对象的四个坐标
var tarPos = { x: 0, y: 0, x1: 0, y1: 0 }; //目标元素对象的坐标初始化
var theDiv = null, move = false;//拖拽对象 拖拽状态
var theDivId =0, theDivHeight = 0, theDivHalf = 0; tarFirstY = 0; //拖拽对象的索引、高度、的初始化。
var tarDiv = null, tarFirst, tempDiv; //要插入的目标元素的对象, 临时的虚线对象
function loopbox(){ //循环初始化
$(".drag_module_box").find(".drag_module_main").each(function(){
console.log( 'find' );
$(this).mousedown(function (event){
//拖拽对象
theDiv = $(this);
//鼠标元素相对偏移量
range.x = event.pageX - theDiv.offset().left;
range.y = event.pageY - theDiv.offset().top;
theDivId = theDiv.index();
theDivHeight = theDiv.height();
theDivHalf = theDivHeight/2;
move = true;
theDiv.attr("class","drag_module_maindash");
// 创建新元素 插入拖拽元素之前的位置(虚线框)
$("<div class='drag_module_dash'></div>").insertBefore(theDiv);
});
});
}
loopbox();
$(".drag_module_box").mousemove(function(event) {
console.log( 'mousemove' );
if (!move) return false;
lastPos.x = event.pageX - range.x;
lastPos.y = event.pageY - range.y;
lastPos.y1 = lastPos.y + theDivHeight;
// 拖拽元素随鼠标移动
theDiv.css({left: lastPos.x + 'px',top: lastPos.y + 'px'});
// 拖拽元素随鼠标移动 查找插入目标元素
var $main = $('.drag_module_main'); // 局部变量:按照重新排列过的顺序 再次获取 各个元素的坐标,
tempDiv = $(".drag_module_dash"); //获得临时 虚线框的对象
$main.each(function () {
tarDiv = $(this);
tarPos.x = tarDiv.offset().left;
tarPos.y = tarDiv.offset().top;
tarPos.y1 = tarPos.y + tarDiv.height()/2;
tarFirst = $main.eq(0); // 获得第一个元素
tarFirstY = tarFirst.offset().top + theDivHalf ; // 第一个元素对象的中心纵坐标
//拖拽对象 移动到第一个位置
if (lastPos.y <= tarFirstY) {
tempDiv.insertBefore(tarFirst);
}
//判断要插入目标元素的 坐标后, 直接插入
if (lastPos.y >= tarPos.y - theDivHalf && lastPos.y1 >= tarPos.y1 ) {
tempDiv.insertAfter(tarDiv);
}
});
}).mouseup(function(event) {
console.log( 'mouseup' );
if(theDiv==null) return false;
theDiv.insertBefore(tempDiv); // 拖拽元素插入到 虚线div的位置上
theDiv.attr("class", "drag_module_main"); //恢复对象的初始样式
$('.drag_module_dash').remove(); // 删除新建的虚线div
move=false;
});
$("#drag_module_insert").click(function(){
$("#drag_module_box1").html($("#drag_module_box1").html()+$("#drag_module_box2").html());
loopbox();
});
$("#drag_module_seque").click(function(){
$(".drag_module_box").find(".drag_module_main").each(function(){
console.log($(this).attr('id'));
});
});
});
</script>
</head>
<body>
<div class="drag_module_box" id="drag_module_box1">
<div class="drag_module_main" id="main1">div1</div>
<div class="drag_module_main" id="main2">div2</div>
<div class="drag_module_main" id="main3">div3</div>
<div class="drag_module_main" id="main4">div4</div>
<div class="drag_module_main" id="main5">div5</div>
<div class="drag_module_main" id="main6">div6</div>
</div>
<div class="drag_module_box1" id="drag_module_box2">
<div class="drag_module_main" id="main_first">div7</div>
</div>
<input type="button" value="新建" id="drag_module_insert"/>
<input type="button" value="确定" id="drag_module_seque"/>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.Center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.i1 {
background: url(./img/空心.png) no-repeat;
width: 53px;
height: 58px;
z-index: 11;
}
.i1:hover {
transform: translate(-50%, -50%) scale(1.2);
-webkit-transform: translate(-50%, -50%) scale(1.2);
-moz-transform: translate(-50%, -50%) scale(1.2);
-o-transform: translate(-50%, -50%) scale(1.2);
-ms-transform: translate(-50%, -50%) scale(1.2);
}
.i2 {
background: url(./img/归墟.png) no-repeat;
width: 243px;
height: 242px;
z-index: 10;
transform: translate(-50%, -50%) rotate(0deg) scale(1.0);
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.i2:hover {
transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-webkit-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-moz-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-o-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-ms-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
}
.i3 {
background: url(./img/盘轨1.png) no-repeat;
width: 360px;
height: 360px;
}
.Roller {
transition: all .8s linear;
transform: translate(-50%, 0) rotate(0deg);
position: absolute;
left: 50%;
top: 25px;
width: 159px;
height: 73px;
background-color: cornflowerblue;
transform-origin: 80px 135px;
display: block;
opacity: 0;
}
.Rotater {
position: absolute;
left: 50%;
top: 22px;
width: 100px;
height: 50px;
background-color: cornflowerblue;
opacity: 0;
transform-origin: 50px 160px;
display: block;
z-index: 11;
}
</style>
</head>
<body style="background: #404040">
<div class="i3 Center">
<div class="i1 Center"></div>
<div class="i2 Center"></div>
<div class="Roller" style="background: url('./img/图片项1.png')"></div>
<div class="Roller" style="background: url('./img/纯色项1.png')"></div>
<div class="Roller" style="background: url('./img/圆角项1.png')"></div>
<div class="Roller" style="background: url('./img/视相1.png')"></div>
<div class="Roller" style="background: url('./img/文相1.png')"></div>
<div class="Roller" style="background: url('./img/音相1.png')"></div>
<div class="Rotater r1" style="transform: translate(-50%,0) rotate(20deg)"></div>
<div class="Rotater r1" style="transform: translate(-50%,0) rotate(60deg)"></div>
<div class="Rotater r1" style="transform:translate(-50%,0) rotate(100deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(140deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(180deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(220deg)"></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(260deg)"></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(300deg)"></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(340deg)"></div>
</div>
<script>
const Roller = document.getElementsByClassName('Roller')
//背景三个选项
const r1 = document.getElementsByClassName('r1')
const r2 = document.getElementsByClassName('r2')
for (let i = 0; i < r1.length++; i++) {
r1[i].onmouseover = () => {
Roller[0].style.top = '-44px';
Roller[0].style.transform = 'translate(-50%, 0) rotate(380deg)';
Roller[0].style.transformOrigin = '80px 224px';
Roller[0].style.opacity = '1';
Roller[1].style.top = '-44px';
Roller[1].style.transform = 'translate(-50%, 0) rotate(420deg)';
Roller[1].style.transformOrigin = '80px 224px';
Roller[1].style.opacity = '1'
Roller[2].style.top = '-44px';
Roller[2].style.transform = 'translate(-50%, 0) rotate(460deg)';
Roller[2].style.transformOrigin = '80px 224px';
Roller[2].style.opacity = '1'
}
r1[i].onmouseleave = () => {
Roller[0].style.top = '25px';
Roller[0].style.transform = 'translate(-50%, 0) rotate(0deg)';
Roller[0].style.transformOrigin = '80px 205px';
Roller[0].style.opacity = '0'
Roller[1].style.top = '25px';
Roller[1].style.transform = 'translate(-50%, 0) rotate(0deg)'
Roller[1].style.transformOrigin = '50px 205px'
Roller[1].style.opacity = '0'
Roller[2].style.top = '25px';
Roller[2].style.transform = 'translate(-50%, 0) rotate(0deg)';
Roller[2].style.transformOrigin = '50px 205px';
Roller[2].style.opacity = '0'
}
}
//相型三个选项
for (let i = 0; i < r2.length++; i++) {
r2[i].onmouseover = () => {
Roller[3].style.top = '-44px';
Roller[3].style.transform = 'translate(-50%, 0) rotate(260deg)';
Roller[3].style.transformOrigin = '80px 224px';
Roller[3].style.opacity = '1';
Roller[4].style.top = '-44px';
Roller[4].style.transform = 'translate(-50%, 0) rotate(300deg)';
Roller[4].style.transformOrigin = '80px 224px';
Roller[4].style.opacity = '1';
Roller[5].style.top = '-44px';
Roller[5].style.transform = 'translate(-50%, 0) rotate(340deg)';
Roller[5].style.transformOrigin = '80px 224px';
Roller[5].style.opacity = '1';
}
r2[i].onmouseleave = () => {
Roller[3].style.top = '25px';
Roller[3].style.transform = 'translate(-50%, 0) rotate(0deg)';
Roller[3].style.transformOrigin = '80px 205px';
Roller[3].style.opacity = '0';
Roller[4].style.top = '25px';
Roller[4].style.transform = 'translate(-50%, 0) rotate(0deg)'
Roller[4].style.transformOrigin = '80px 205px'
Roller[4].style.opacity = '0';
Roller[5].style.top = '25px';
Roller[5].style.transform = 'translate(-50%, 0) rotate(0deg)';
Roller[5].style.transformOrigin = '80px 205px';
Roller[5].style.opacity = '0';
}
}
</script>
</body>
</html>
<?xml version="1.0" ?><svg viewBox="0 0 288 288" xmlns="http://www.w3.org/2000/svg"><path d="M288 90v96c0 20-16 36-36 36h-10c-16 0-16-24 0-24h10c7 0 12-5 12-12V90c0-7-5-12-12-12H36c-7 0-12 5-12 12v96c0 7 5 12 12 12h10c16 0 16 24 0 24H36c-20 0-36-16-36-36V90c0-20 16-36 36-36h216c20 0 36 16 36 36zm-120 62l48 68c14 20 1 38-20 38H92c-21 0-34-18-20-38l48-68c13-18 35-18 48 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 33">
<path d="M24.965 24.38h-18.132c-1.366 0-2.478-1.113-2.478-2.478v-11.806c0-1.364 1.111-2.478 2.478-2.478h18.132c1.366 0 2.478 1.113 2.478 2.478v11.806c0 1.364-1.11 2.478-2.478 2.478zM6.833 10.097v11.806h18.134l-0.002-11.806h-18.132zM2.478 28.928h5.952c0.684 0 1.238-0.554 1.238-1.239 0-0.684-0.554-1.238-1.238-1.238h-5.952v-5.802c0-0.684-0.554-1.239-1.238-1.239s-1.239 0.556-1.239 1.239v5.802c0 1.365 1.111 2.478 2.478 2.478zM30.761 19.412c-0.684 0-1.238 0.554-1.238 1.238v5.801h-5.951c-0.686 0-1.239 0.554-1.239 1.238 0 0.686 0.554 1.239 1.239 1.239h5.951c1.366 0 2.478-1.111 2.478-2.478v-5.801c0-0.683-0.554-1.238-1.239-1.238zM0 5.55v5.802c0 0.683 0.554 1.238 1.238 1.238s1.238-0.555 1.238-1.238v-5.802h5.952c0.684 0 1.238-0.554 1.238-1.238s-0.554-1.238-1.238-1.238h-5.951c-1.366-0.001-2.478 1.111-2.478 2.476zM32 11.35v-5.801c0-1.365-1.11-2.478-2.478-2.478h-5.951c-0.686 0-1.239 0.554-1.239 1.238s0.554 1.238 1.239 1.238h5.951v5.801c0 0.683 0.554 1.237 1.238 1.237 0.686 0.002 1.239-0.553 1.239-1.236z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 33">
<path d="M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"></path>
</svg>
\ No newline at end of file
<svg height="100%" version="1.1" viewBox="0 0 22 22">
<svg x="7" y="1">
<circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="11" y="3">
<circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="13" y="7">
<circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="11" y="11">
<circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="7" y="13">
<circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="3" y="11">
<circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="1" y="7">
<circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle>
</svg>
<svg x="3" y="3">
<circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle>
</svg>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 17 32">
<path d="M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 32">
<path d="M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"></path>
</svg>
\ No newline at end of file
<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>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 28">
<path d="M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32">
<path d="M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32">
<path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32">
<path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"></path>
</svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 21 32">
<path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056z"></path>
</svg>
\ No newline at end of file
.aplayer {
background: #fff;
font-family: Arial, Helvetica, sans-serif;
/* margin: 5px; */
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.07), 0 1px 5px 0 rgba(0, 0, 0, 0.1);
border-radius: 2px;
overflow: hidden;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
line-height: normal;
position: relative;
}
.aplayer * {
box-sizing: content-box;
}
.aplayer svg {
width: 100%;
height: 100%;
}
.aplayer svg circle,
.aplayer svg path {
fill: #fff;
}
.aplayer.aplayer-withlist .aplayer-info {
border-bottom: 1px solid #e9e9e9;
}
.aplayer.aplayer-withlist .aplayer-list {
display: block;
}
.aplayer.aplayer-withlist .aplayer-icon-order,
.aplayer.aplayer-withlist
.aplayer-info
.aplayer-controller
.aplayer-time
.aplayer-icon.aplayer-icon-menu {
display: inline;
}
.aplayer.aplayer-withlrc .aplayer-pic {
height: 90px;
width: 90px;
}
.aplayer.aplayer-withlrc .aplayer-info {
margin-left: 90px;
height: 90px;
padding: 10px 7px 0;
}
.aplayer.aplayer-withlrc .aplayer-lrc {
display: block;
}
.aplayer.aplayer-narrow {
width: 66px;
}
.aplayer.aplayer-narrow .aplayer-info,
.aplayer.aplayer-narrow .aplayer-list {
display: none;
}
.aplayer.aplayer-narrow .aplayer-body,
.aplayer.aplayer-narrow .aplayer-pic {
height: 66px;
width: 66px;
}
.aplayer.aplayer-fixed {
position: fixed;
bottom: 0;
left: 0;
right: 0;
margin: 0;
z-index: 99;
overflow: visible;
max-width: 400px;
box-shadow: none;
}
.aplayer.aplayer-fixed .aplayer-list {
margin-bottom: 65px;
border: 1px solid #eee;
border-bottom: none;
}
.aplayer.aplayer-fixed .aplayer-body {
position: fixed;
bottom: 0;
left: 0;
right: 0;
margin: 0;
z-index: 99;
background: #fff;
padding-right: 18px;
transition: all 0.3s ease;
max-width: 400px;
}
.aplayer.aplayer-fixed .aplayer-lrc {
display: block;
position: fixed;
bottom: 10px;
left: 0;
right: 0;
margin: 0;
z-index: 98;
pointer-events: none;
text-shadow: -1px -1px 0 #fff;
}
.aplayer.aplayer-fixed .aplayer-lrc:after,
.aplayer.aplayer-fixed .aplayer-lrc:before {
display: none;
}
.aplayer.aplayer-fixed .aplayer-info {
-webkit-transform: scaleX(1);
transform: scaleX(1);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
transition: all 0.3s ease;
border-bottom: none;
border-top: 1px solid #e9e9e9;
}
.aplayer.aplayer-fixed .aplayer-info .aplayer-music {
width: calc(100% - 105px);
}
.aplayer.aplayer-fixed .aplayer-miniswitcher {
display: block;
}
.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info {
display: block;
-webkit-transform: scaleX(0);
transform: scaleX(0);
}
.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
width: 66px !important;
}
.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon {
-webkit-transform: rotateY(0);
transform: rotateY(0);
}
.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-lrc,
.aplayer.aplayer-fixed .aplayer-icon-play {
display: inline-block;
}
.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-menu,
.aplayer.aplayer-fixed .aplayer-icon-play {
position: absolute;
bottom: 27px;
width: 20px;
height: 20px;
}
.aplayer.aplayer-fixed .aplayer-icon-back {
right: 75px;
}
.aplayer.aplayer-fixed .aplayer-icon-play {
right: 50px;
}
.aplayer.aplayer-fixed .aplayer-icon-forward {
right: 25px;
}
.aplayer.aplayer-fixed .aplayer-icon-menu {
right: 0;
}
.aplayer.aplayer-arrow .aplayer-icon-loop,
.aplayer.aplayer-arrow .aplayer-icon-order,
.aplayer.aplayer-mobile .aplayer-icon-volume-down {
display: none;
}
.aplayer.aplayer-loading
.aplayer-info
.aplayer-controller
.aplayer-loading-icon {
display: block;
}
.aplayer.aplayer-loading
.aplayer-info
.aplayer-controller
.aplayer-bar-wrap
.aplayer-bar
.aplayer-played
.aplayer-thumb {
-webkit-transform: scale(1);
transform: scale(1);
}
.aplayer .aplayer-body {
position: relative;
}
.aplayer .aplayer-icon {
width: 15px;
height: 15px;
border: none;
background-color: transparent;
outline: none;
cursor: pointer;
opacity: 0.8;
vertical-align: middle;
padding: 0;
font-size: 12px;
margin: 0;
display: inline-block;
}
.aplayer .aplayer-icon path {
transition: all 0.2s ease-in-out;
}
.aplayer .aplayer-icon-back,
.aplayer .aplayer-icon-forward,
.aplayer .aplayer-icon-lrc,
.aplayer .aplayer-icon-order,
.aplayer .aplayer-icon-play {
display: none;
}
.aplayer .aplayer-icon-lrc-inactivity svg {
opacity: 0.4;
}
.aplayer .aplayer-icon-forward {
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
.aplayer .aplayer-lrc-content {
display: none;
}
.aplayer .aplayer-pic {
position: relative;
float: left;
height: 66px;
width: 66px;
background-size: cover;
background-position: 50%;
transition: all 0.3s ease;
cursor: pointer;
}
.aplayer .aplayer-pic:hover .aplayer-button {
opacity: 1;
}
.aplayer .aplayer-pic .aplayer-button {
position: absolute;
border-radius: 50%;
opacity: 0.8;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
transition: all 0.1s ease;
}
.aplayer .aplayer-pic .aplayer-button path {
fill: #fff;
}
.aplayer .aplayer-pic .aplayer-hide {
display: none;
}
.aplayer .aplayer-pic .aplayer-play {
width: 26px;
height: 26px;
border: 2px solid #fff;
bottom: 50%;
right: 50%;
margin: 0 -15px -15px 0;
}
.aplayer .aplayer-pic .aplayer-play svg {
position: absolute;
top: 3px;
left: 4px;
height: 20px;
width: 20px;
}
.aplayer .aplayer-pic .aplayer-pause {
width: 16px;
height: 16px;
border: 2px solid #fff;
bottom: 4px;
right: 4px;
}
.aplayer .aplayer-pic .aplayer-pause svg {
position: absolute;
top: 2px;
left: 2px;
height: 12px;
width: 12px;
}
.aplayer .aplayer-info {
margin-left: 66px;
padding: 14px 7px 0 10px;
height: 66px;
box-sizing: border-box;
}
.aplayer .aplayer-info .aplayer-music {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin: 0 0 13px 5px;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
cursor: default;
padding-bottom: 2px;
height: 20px;
}
.aplayer .aplayer-info .aplayer-music .aplayer-title {
font-size: 14px;
}
.aplayer .aplayer-info .aplayer-music .aplayer-author {
font-size: 12px;
color: #666;
}
.aplayer .aplayer-info .aplayer-controller {
position: relative;
display: flex;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap {
margin: 0 0 0 5px;
padding: 4px 0;
cursor: pointer !important;
flex: 1;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-bar-wrap:hover
.aplayer-bar
.aplayer-played
.aplayer-thumb {
-webkit-transform: scale(1);
transform: scale(1);
}
.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar {
position: relative;
height: 2px;
width: 100%;
background: #cdcdcd;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-bar-wrap
.aplayer-bar
.aplayer-loaded {
position: absolute;
left: 0;
top: 0;
bottom: 0;
background: #aaa;
height: 2px;
transition: all 0.5s ease;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-bar-wrap
.aplayer-bar
.aplayer-played {
position: absolute;
left: 0;
top: 0;
bottom: 0;
height: 2px;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-bar-wrap
.aplayer-bar
.aplayer-played
.aplayer-thumb {
position: absolute;
top: 0;
right: 5px;
margin-top: -4px;
margin-right: -10px;
height: 10px;
width: 10px;
border-radius: 50%;
cursor: pointer;
transition: all 0.3s ease-in-out;
-webkit-transform: scale(0);
transform: scale(0);
}
.aplayer .aplayer-info .aplayer-controller .aplayer-time {
position: relative;
right: 0;
bottom: 4px;
height: 17px;
color: #999;
font-size: 11px;
padding-left: 7px;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner {
vertical-align: middle;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon {
cursor: pointer;
transition: all 0.2s ease;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {
fill: #666;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-time
.aplayer-icon.aplayer-icon-loop {
margin-right: 2px;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-time
.aplayer-icon:hover
path {
fill: #000;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-time
.aplayer-icon.aplayer-icon-menu,
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-time.aplayer-time-narrow
.aplayer-icon-menu,
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-time.aplayer-time-narrow
.aplayer-icon-mode {
display: none;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap {
position: relative;
display: inline-block;
margin-left: 3px;
cursor: pointer !important;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-volume-wrap:hover
.aplayer-volume-bar-wrap {
height: 40px;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-volume-wrap
.aplayer-volume-bar-wrap {
position: absolute;
bottom: 15px;
right: -3px;
width: 25px;
height: 0;
z-index: 99;
overflow: hidden;
transition: all 0.2s ease-in-out;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-volume-wrap
.aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active {
height: 40px;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-volume-wrap
.aplayer-volume-bar-wrap
.aplayer-volume-bar {
position: absolute;
bottom: 0;
right: 10px;
width: 5px;
height: 35px;
background: #aaa;
border-radius: 2.5px;
overflow: hidden;
}
.aplayer
.aplayer-info
.aplayer-controller
.aplayer-volume-wrap
.aplayer-volume-bar-wrap
.aplayer-volume-bar
.aplayer-volume {
position: absolute;
bottom: 0;
right: 0;
width: 5px;
transition: all 0.1s ease;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon {
display: none;
}
.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg {
position: absolute;
-webkit-animation: rotate 1s linear infinite;
animation: rotate 1s linear infinite;
}
.aplayer .aplayer-lrc {
display: none;
position: relative;
height: 30px;
text-align: center;
overflow: hidden;
margin: -10px 0 7px;
}
.aplayer .aplayer-lrc:before {
top: 0;
height: 10%;
background: linear-gradient(180deg, #fff 0, hsla(0, 0%, 100%, 0));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#00ffffff",GradientType=0);
}
.aplayer .aplayer-lrc:after,
.aplayer .aplayer-lrc:before {
position: absolute;
z-index: 1;
display: block;
overflow: hidden;
width: 100%;
content: " ";
}
.aplayer .aplayer-lrc:after {
bottom: 0;
height: 33%;
background: linear-gradient(
180deg,
hsla(0, 0%, 100%, 0) 0,
hsla(0, 0%, 100%, 0.8)
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff",endColorstr="#ccffffff",GradientType=0);
}
.aplayer .aplayer-lrc p {
font-size: 12px;
color: #666;
line-height: 16px !important;
height: 16px !important;
padding: 0 !important;
margin: 0 !important;
transition: all 0.5s ease-out;
opacity: 0.4;
overflow: hidden;
}
.aplayer .aplayer-lrc p.aplayer-lrc-current {
opacity: 1;
overflow: visible;
height: auto !important;
min-height: 16px;
}
.aplayer .aplayer-lrc.aplayer-lrc-hide {
display: none;
}
.aplayer .aplayer-lrc .aplayer-lrc-contents {
width: 100%;
transition: all 0.5s ease-out;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
cursor: default;
}
.aplayer .aplayer-list {
overflow: auto;
transition: all 0.5s ease;
will-change: height;
display: none;
overflow: hidden;
}
.aplayer .aplayer-list.aplayer-list-hide {
max-height: 0 !important;
}
.aplayer .aplayer-list ol {
list-style-type: none;
margin: 0;
padding: 0;
overflow-y: auto;
}
.aplayer .aplayer-list ol::-webkit-scrollbar {
width: 5px;
}
.aplayer .aplayer-list ol::-webkit-scrollbar-thumb {
border-radius: 3px;
background-color: #eee;
}
.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover {
background-color: #ccc;
}
.aplayer .aplayer-list ol li {
position: relative;
height: 32px;
line-height: 32px;
padding: 0 15px;
font-size: 12px;
border-top: 1px solid #e9e9e9;
cursor: pointer;
transition: all 0.2s ease;
overflow: hidden;
margin: 0;
}
.aplayer .aplayer-list ol li:first-child {
border-top: none;
}
.aplayer .aplayer-list ol li:hover {
background: #efefef;
}
.aplayer .aplayer-list ol li.aplayer-list-light {
background: #e9e9e9;
}
.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur {
display: inline-block;
}
.aplayer .aplayer-list ol li .aplayer-list-cur {
display: none;
width: 3px;
height: 22px;
position: absolute;
left: 0;
top: 5px;
cursor: pointer;
}
.aplayer .aplayer-list ol li .aplayer-list-index {
color: #666;
margin-right: 12px;
cursor: pointer;
}
.aplayer .aplayer-list ol li .aplayer-list-author {
color: #666;
float: right;
cursor: pointer;
}
.aplayer .aplayer-notice {
opacity: 0;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-size: 12px;
border-radius: 4px;
padding: 5px 10px;
transition: all 0.3s ease-in-out;
overflow: hidden;
color: #fff;
pointer-events: none;
background-color: #f4f4f5;
color: #909399;
}
.aplayer .aplayer-miniswitcher {
display: none;
position: absolute;
top: 0;
right: 0;
bottom: 0;
height: 100%;
background: #e6e6e6;
width: 18px;
border-radius: 0 2px 2px 0;
}
.aplayer .aplayer-miniswitcher .aplayer-icon {
height: 100%;
width: 100%;
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
transition: all 0.3s ease;
}
.aplayer .aplayer-miniswitcher .aplayer-icon path {
fill: #666;
}
.aplayer .aplayer-miniswitcher .aplayer-icon:hover path {
fill: #000;
}
@-webkit-keyframes aplayer-roll {
0% {
left: 0;
}
to {
left: -100%;
}
}
@keyframes aplayer-roll {
0% {
left: 0;
}
to {
left: -100%;
}
}
@-webkit-keyframes rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
to {
-webkit-transform: rotate(1turn);
transform: rotate(1turn);
}
}
@keyframes rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
to {
-webkit-transform: rotate(1turn);
transform: rotate(1turn);
}
}
/*# sourceMappingURL=APlayer.min.css.map*/
@font-face {
font-family:"iconfont";
src: url('//at.alicdn.com/t/font_2407178_4brpf48p065.eot?t=1615200631196');
/* IE9 */
src: url('//at.alicdn.com/t/font_2407178_4brpf48p065.eot?t=1615200631196#iefix') format('embedded-opentype'),
/* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAQMAAsAAAAACagAAAPAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqHCIVkATYCJAMMCwgABCAFhG0HPhsyCFGU7UmF7MsDbg6cB8tQUIzQqKLi3p3HchMgHGPIV1WDWrxdrrEWD19jrPd3FxFNqt2nkxgSkUQkZJdOJXSGEmhkubt8zfZ/LnPEwub5Y3XvFAxQoS7lt5y+NB0pdnrCT29CbsJtE9vy1azBz7KYNXF4s4mz6qztFuKntiqanxYC1TZX3P7tIRL6rgGifJsdHEv+aGrOA3qwV4q8r+ppRFICDSiidaOJbsK4RTyX7kLlMTdeJlBr0Fhl4/D8CtoKelYg9kLfhnbiUjrYodpa2XBjEVc4sup0TPgCLs3fxy/LaJNUZPRVm7sHHmw+6d8RnzDIcIZw0P4CGN1GxhRQiJ3G0Laawyljqm0y1buxkgRD2lcWwwD1EivZPzySICpRUz2hjJUTn3ShDuYz0N5rzZM7vRKjIGZA7Dt1i3C0nw4iCZcrEYrl0/GsfqmC4vHdZ+pLYWnfjfn8Ggd67L+EJb3M6jOMMhiVW9GVuef8vHrZ67yE0YrIdgaJY5zq0ey4qDxCYju4hvs6HN14dc0jDnQtPhczz+duLL3d/h7GGeBTZZGH7l3IGcchZ3w6qnuHYWKVxx5C655qoDokTH+tYzZm9qAAyvXPYUyegDve1YUqQOV1Lvc9cHLEeOEKvuOIAgGBAZ5Ay+ehTLr9nLu3BzaZ//x38FoJKlBgfEB3k9lE6k/KpzlRCCqR9XT66cxULocoQMVTV/s4l6/jc1+YRyd6H/WtcHjG3dt/qlftk/7NP/MbjQlDAKIElNe78k9nkcgUReDGoQa8DqV5fK3AJN0Z3IRbPTNW3djcc59zrSivYEHsrAvUsOSfGoZBVnLwgsO3HWHrOFoQtHyH9izq/ytnAfw/S2zzv/yZ+aud5J3b4Ngo9ZvG/Plt+Vj2ziT+VwDXDqol0Jo/lgY5rix11J3LXC3U62r2RPO1OdUuo/5DY61+t/d22FclVOsIkFQZgKzaEKFQpqBCnSWoVG0Zak06ur1OG1ETpQYT3gsIzT4gafQKWbNvQqH8QIVOf1CpOWpQayuED6wzEmEXELKVPHQeMHQ5M9yrXdt9QX6Z2BLrjPCGpAizuPD48uoRZST7uKS49ZeqBo1wiofF6yhJGHPhiFydBqr5euadbfqmqcspdK0TxKaIBzkeoJCLZYzaXHUrv3+B+EoJm3QMupC9QUQh3D9amJojCEemDDXouRxeuOVbUsqUpxmCpdAhBEjCSgzlzcdFiEtNBVsUcmszMpnBmqbHt6Sv7x6oRd+SI0WOoma/5MegtMNF2zkBAA==') format('woff2'), url('//at.alicdn.com/t/font_2407178_4brpf48p065.woff?t=1615200631196') format('woff'), url('//at.alicdn.com/t/font_2407178_4brpf48p065.ttf?t=1615200631196') format('truetype'),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_2407178_4brpf48p065.svg?t=1615200631196#iconfont') format('svg');
/* iOS 4.1- */
}
.iconfont {
font-family:"iconfont" !important;
font-size: 30px;
color:#9850ff;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.iDrag:before {
content:"\e694";
left: -2px;
top:-4px;
position: absolute;
}
.icon-tuozhuai:before {
content:"\e609";
}
\ No newline at end of file
#wrapper {
display: none;
position: absolute;
z-index: 100;
}
.Center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.i1 {
background: url(../img/空心.png) no-repeat;
width: 53px;
height: 58px;
z-index: 111;
}
.i1:hover {
transition: all .8s;
transform: translate(-50%, -50%) scale(1.2);
-webkit-transform: translate(-50%, -50%) scale(1.2);
-moz-transform: translate(-50%, -50%) scale(1.2);
-o-transform: translate(-50%, -50%) scale(1.2);
-ms-transform: translate(-50%, -50%) scale(1.2);
}
.i2 {
background: url(../img/归墟.png) no-repeat;
width: 243px;
height: 242px;
z-index: 110;
transform: translate(-50%, -50%) rotate(0deg) scale(1.0);
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.i2:hover {
transition: all .8s;
transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-webkit-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-moz-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-o-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
-ms-transform: translate(-50%, -50%) rotate(360deg) scale(1.1);
}
.i3 {
background: url(../img/盘轨1.png) no-repeat;
width: 360px;
height: 360px;
}
.Roller{
transition: All .7s linear;
-webkit-transition: All .7s linear;
-moz-transition: All .7s linear;
transform: translate(-50%, 0) rotate(0deg);
position: absolute;
left: 50%;
top: 25px;
width: 159px;
height: 73px;
transform-origin: 80px 135px;
display: block;
opacity: 0;
z-index: 10;
}
.Roller #canvasId{
transform: translate(-138px, -6px) rotate(0deg);
position: absolute;
width:450;
height:450;
opacity: 0;
}
.Roller:hover{
filter:hue-rotate(70deg);
}
.Rotater {
position: absolute;
left: 50%;
top: 22px;
width: 100px;
height: 50px;
opacity: 1;
transform-origin: 50px 160px;
display: block;
z-index: 111;
}
#Radius:hover #canvasId{
opacity: 1;
}
div #Layer{
opacity: 0;
}
div #Layer:hover{
opacity: 1;
}
/*幕的进度条样式*/
.sliderRage{
border-radius: 10px;
transition: all .1s linear;
-webkit-appearance: none;
appearance: none;
width: 100px;/*滑动条的高低*/
height:11px;/*滑动条的粗细*/
position: absolute;
top: 0;
right: 2px;/*滑动条距离左边元素的位置*/
}
.sliderRage:focus {
outline: none;
}
.sliderRage::-webkit-slider-thumb {
-webkit-appearance: none;
height: 16px; /*滑动圆球的大小*/
width: 16px;/*滑动圆球的大小*/
margin-top: -4px;/* 设置滑动圆球的左右位置*/
background: #ffffff;
border-radius: 50%; /*外观设置为圆形*/
border: solid 0.2em rgba(110, 190, 255, 0.5); /*设置边框*/
box-shadow: 0 .09em .09em #baeffa; /*添加底部阴影*/
transition: all .1s linear;
}
.sliderRage::-webkit-slider-runnable-track {
height: 11px;/*滑动条的粗细 */
width: 100px;/*滑动条的高低*/
border-radius: 10px; /*将轨道设为圆角的*/
border: solid 0.1em #0d1112;
box-shadow: 0 0 0 #0d1112, 0 0 0 #0d1112;
transition: all .1s linear;
}
.sliderRage::-webkit-slider-thumb:hover{
border: solid 0.4em rgba(29, 116, 187, 0.747);
box-shadow: 0 .2em .3em #baeffa; /*添加底部阴影*/
}
.Rotater span{
font-family: 华文新魏, sans-serif;
font-size: 15px;
position: absolute;
bottom: -13px;
transform: translate(-50%,0) rotate(180deg);
left: 50%;
}
.sliderRage:focus {
outline: none;
}
/* 幕的选择对勾样式-动画设置 */
@-moz-keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}@-webkit-keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}@keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}
@keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
@-webkit-keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
@-moz-keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
.fullCheck {
display:none;
height:20px;
width:20px;
}
.curtainCheck{
display:none;
height:20px;
width:20px;
}
.check-box1 {
height:50px;
width:50px;
left: 20px;
background-color:transparent;
position:relative;
display:inline-block;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
-moz-transition:border-color ease 0.2s;
-o-transition:border-color ease 0.2s;
-webkit-transition:border-color ease 0.2s;
transition:border-color ease 0.2s;
cursor:pointer;
transform: rotate(180deg);
}
.check-box1::before,.check-box1::after {
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
position:absolute;
height:0;
width:10px;
background-color:#0d09e7;
display:inline-block;
-moz-transform-origin:left top;
-ms-transform-origin:left top;
-o-transform-origin:left top;
-webkit-transform-origin:left top;
transform-origin:left top;
border-radius:5px;
content:' ';
-webkit-transition:opacity ease .5;
-moz-transition:opacity ease .5;
transition:opacity ease .5;
}
.check-box1::before {
top:52px;
left:21px;
-moz-transform:rotate(-135deg);
-ms-transform:rotate(-135deg);
-o-transform:rotate(-135deg);
-webkit-transform:rotate(-135deg);
transform:rotate(-135deg);
}
.check-box1::after {
top:35px;
left:3px;
-moz-transform:rotate(-45deg);
-ms-transform:rotate(-45deg);
-o-transform:rotate(-45deg);
-webkit-transform:rotate(-45deg);
transform:rotate(-45deg);
}
input[class=curtainCheck]:checked + .check-box1,.check-box1.checked {
border-color:#0d09e7;
}
input[class=curtainCheck]:checked + .check-box1::after,.check-box1.checked::after {
height:23px;
-moz-animation:dhbottomcheck 0.2s ease 0s forwards;
-o-animation:dhbottomcheck 0.2s ease 0s forwards;
-webkit-animation:dhbottomcheck 0.2s ease 0s forwards;
animation:dhbottomcheck 0.2s ease 0s forwards;
}
input[class=curtainCheck]:checked + .check-box1::before,.check-box1.checked::before {
height:60px;
-moz-animation:dhtopcheck 0.4s ease 0s forwards;
-o-animation:dhtopcheck 0.4s ease 0s forwards;
-webkit-animation:dhtopcheck 0.4s ease 0s forwards;
animation:dhtopcheck 0.4s ease 0s forwards;
}
/* 全屏对勾的动画 */
/* 幕的选择对勾样式-动画设置 */
@-moz-keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}@-webkit-keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}@keyframes dhbottomcheck {
0% {
height:0;
}
100% {
height:20px;
}
}
@keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
@-webkit-keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
@-moz-keyframes dhtopcheck {
0% {
height:0;
}
50% {
height:0;
}
100% {
height:50px;
}
}
.check-box {
height:50px;
width:50px;
left: 50px;
background-color:transparent;
position:relative;
display:inline-block;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
-moz-transition:border-color ease 0.2s;
-o-transition:border-color ease 0.2s;
-webkit-transition:border-color ease 0.2s;
transition:border-color ease 0.2s;
cursor:pointer;
transform: rotate(180deg);
}
.check-box::before,.check-box::after {
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing:border-box;
position:absolute;
height:0;
width:10px;
background-color:#0d09e7;
display:inline-block;
-moz-transform-origin:left top;
-ms-transform-origin:left top;
-o-transform-origin:left top;
-webkit-transform-origin:left top;
transform-origin:left top;
border-radius:5px;
content:' ';
-webkit-transition:opacity ease .5;
-moz-transition:opacity ease .5;
transition:opacity ease .5;
}
.check-box::before {
top:52px;
left:21px;
-moz-transform:rotate(-135deg);
-ms-transform:rotate(-135deg);
-o-transform:rotate(-135deg);
-webkit-transform:rotate(-135deg);
transform:rotate(-135deg);
}
.check-box::after {
top:35px;
left:3px;
-moz-transform:rotate(-45deg);
-ms-transform:rotate(-45deg);
-o-transform:rotate(-45deg);
-webkit-transform:rotate(-45deg);
transform:rotate(-45deg);
}
input[class=fullCheck]:checked + .check-box,.check-box.checked {
border-color:#0d09e7;
}
input[class=fullCheck]:checked + .check-box::after,.check-box.checked::after {
height:23px;
-moz-animation:dhbottomcheck 0.2s ease 0s forwards;
-o-animation:dhbottomcheck 0.2s ease 0s forwards;
-webkit-animation:dhbottomcheck 0.2s ease 0s forwards;
animation:dhbottomcheck 0.2s ease 0s forwards;
}
input[class=fullCheck]:checked + .check-box::before,.check-box.checked::before {
height:60px;
-moz-animation:dhtopcheck 0.4s ease 0s forwards;
-o-animation:dhtopcheck 0.4s ease 0s forwards;
-webkit-animation:dhtopcheck 0.4s ease 0s forwards;
animation:dhtopcheck 0.4s ease 0s forwards;
}
\ No newline at end of file
html, body {
overflow: hidden;
background: #363B40;
user-select: none;
}
* {
padding: 0;
margin: 0;
border: 0;
}
/*拾色器*/
.picker {
display: inline-block;
width: 15px;
height: 15px;
cursor: pointer;
border-radius: 5px;
border: 2px #fff solid;
position: absolute;
top: 5px;
left: 70px;
}
/*文字大小*/
#opt1 {
position: relative;
}
span {
font-family: 华文新魏, sans-serif;
font-size: 17px;
}
.Div {
cursor: url(../img/手.png),auto;;
background: skyblue;
position: absolute;
text-align: center;
}
.DivSon {
float: left;
white-space: pre-wrap;
word-break: break-all;
word-wrap: break-word;
text-align: center;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.textarea {
}
.menuDiv {
height: 35px;
line-height: 30px;
background: #ccc;
border-radius: 5px;
position: absolute;
top: -32px;
}
/*字体大小模块*/
.sliderDemo {
border-radius: 10px;
transition: all .1s linear;
transform: rotate(270deg);
-webkit-transform: rotate(270deg);
-webkit-appearance: none;
-moz-transform: rotate(270deg);
-moz-appearance: none;
appearance: none;
width: 100px;/*滑动条的高低*/
height:11px;/*滑动条的粗细*/
position: absolute;
top: 0;
left: 58px;/*滑动条距离左边元素的位置*/
display: none;
}
.sliderDemo:focus {
outline: none;
}
/*滑块 兼容谷歌*/
.sliderDemo::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
height: 16px; /*滑动圆球的大小*/
width: 16px;/*滑动圆球的大小*/
margin-top: -4.1px;/* 设置滑动圆球的左右位置*/
background: #ffffff;
border-radius: 50%; /*外观设置为圆形*/
border: solid 0.3em rgba(110, 190, 255, 0.5); /*设置边框*/
box-shadow: 0 .09em .09em #baeffa; /*添加底部阴影*/
transition: all .1s linear;
}
.sliderDemo::-webkit-slider-runnable-track {
-webkit-appearance: none;
appearance: none;
height: 11px;/*滑动条的粗细*/
border-radius: 10px; /*将轨道设为圆角的*/
border: solid 0.1em #0d1112;
box-shadow: 0 0 0 #0d1112, 0 0 0 #0d1112;
transition: all .1s linear;
}
.sliderDemo::-webkit-slider-thumb:hover {
-webkit-appearance: none;
appearance: none;
border: solid 0.4em rgba(29, 116, 187, 0.747);
box-shadow: 0 .2em .3em #baeffa; /*添加底部阴影*/
}
/*滑块 兼容火狐*/
.sliderDemo::-moz-range-thumb {
-webkit-appearance: none;
height: 19px;
width: 19px;
margin-top: -4.1px; /*使滑块超出轨道部分的偏移量相等*/
background: #ffffff;
border-radius: 50%; /*外观设置为圆形*/
border: solid 0.3em rgba(110, 190, 255, 0.5); /*设置边框*/
box-shadow: 0 .11em .11em #baeffa; /*添加底部阴影*/
transition: all .1s linear;
}
.sliderDemo::-moz-range-thumb:hover {
border: solid 0.5em rgba(110, 190, 255, 0.5);
box-shadow: 0 .3em .3em #baeffa; /*添加底部阴影*/
}
.sliderDemo::-moz-range-thumb:hover .sliderDemo {
box-shadow: 0 3px 3px #0d1112, 0 .3em .3em #0d1112;
}
.sliderDemo::-moz-range-track {
height: 15px;
border-radius: 10px; /*将轨道设为圆角的*/
border: solid 0.1em #0d1112;
box-shadow: 0 0 0 #0d1112, 0 0 0 #0d1112;
transition: all .1s linear;
}
.inputText {
width: 35px;
height: 20px;
border-radius: 5px;
outline: none;
}
/*UI 表单*/
.layui-form {
width: 75px;
position: absolute;
top: 100px;
left: 100px;
border-radius: 5px;
}
.layui-input {
height: 28px;
}
.layui-form input[type=checkbox], .layui-form input[type=radio], .layui-form select {
display: block;
}
select {
border-radius: 5px
}
/*文本域的滚动条*/
.textarea::-webkit-scrollbar {
width: 15px;
height: 15px;
}
.textarea::-webkit-scrollbar-thumb {
border-radius: 20px;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
background-color: #c3c3c3;
}
.textarea::-webkit-scrollbar-track {
background-color: transparent;
}
.textarea {
scrollbar-color: pink #c3c3c3;
scrollbar-width: thin;
-ms-overflow-style: none;
}
/*滑块 兼容谷歌*/
.sliderD::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
height: 16px; /*滑动圆球的大小*/
width: 16px;/*滑动圆球的大小*/
margin-top: -4.1px;/* 设置滑动圆球的左右位置*/
background: #ffffff;
border-radius: 50%; /*外观设置为圆形*/
border: solid 0.3em rgba(110, 190, 255, 0.5); /*设置边框*/
box-shadow: 0 .09em .09em #baeffa; /*添加底部阴影*/
transition: all .1s linear;
}
.sliderD::-webkit-slider-runnable-track {
-webkit-appearance: none;
appearance: none;
height: 11px;/*滑动条的粗细*/
border-radius: 10px; /*将轨道设为圆角的*/
border: solid 0.1em #0d1112;
box-shadow: 0 0 0 #0d1112, 0 0 0 #0d1112;
transition: all .1s linear;
}
.sliderD::-webkit-slider-thumb:hover {
border: solid 0.4em rgba(29, 116, 187, 0.747);
box-shadow: 0 .2em .3em #baeffa; /*添加底部阴影*/
}
/* .playerDemo{
margin:20px auto 10px auto
}
*/
.Voicer_Btn{
outline: none;
border: rgb(129, 114, 221);
border-width: 2px;
border-radius: 9px;
border-style: solid;
width: 70px;
height: 28px;
background-color: rgba(100, 148, 237, 0.315);
color: white;
font-size: 14px;
transition-duration: 1s;
}
.Voicer_Btn:hover{
border-radius: 16px;
/* border-width: 3px; */
background-color:rgb(129, 114, 221);
border: rgba(0, 0, 0, 0);;
}
.Voicer_Btn:active{
background-color: thistle;
}
\ No newline at end of file
/* .sidderbar {
position: fixed;
bottom: 0px;
right: 0;
width: 50px;
height: 286px;
text-align: center;
line-height: 50px;
background-color: #fff;
不解无知,不知无解。
animation: name duration timing-function delay iteration-count direction fill-mode;
} */
#timer{
width: 100%;
height: 286px;
position: fixed;
display: flex;
justify-content: flex-start;
/* background-color: blueviolet; */
background-image: url('../img/MinWid.png');
background-repeat: repeat-x;
background-position: bottom;
bottom:0px;
transition: 1.3s;
z-index: 9;
}
#timer:hover{
bottom:0px;
}
#timer_L{
width: 336px;
height: 286px;
background: url(../img/timer/御相枢L.png) no-repeat;
}
#timer_M{
width: 327px;
height: 286px;
position: absolute;
left: 50%;
right: 50%;
transform: translate(-50%,0%);
background-color:red;
background: url(../img/timer/御相枢EM.png) no-repeat;
}
#timer_R{
height: 286px;
width:216px;
position: absolute;
right: 0px;
background: url(../img/timer/御相枢R.png) no-repeat;
}
#timeScale{
width: 81px;
height: 101px;
position: absolute;
transform: translate(-50%, -24px);
user-select: contain;
left: 0px;
background: url(../img/timer/时标.png) no-repeat;
z-index: 3;
}
.times{
width:37px;
text-align: center;
margin-top: 69px;
/* transform: translateX(-50%); */
/* margin-left: 9px; */
font-size: 14px;
text-shadow: white 0 0 3px;
color: aliceblue;
display: inline-block;
box-sizing: border-box;
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-all;
user-select: none;
}
.times1{
width:60px;
text-align: center;
margin-top: 12px;
transform: translateX(-50%);
text-shadow: white 0 0 3px;
color: aliceblue;
display: inline-block;
box-sizing: border-box;
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-all;
user-select: none;
}
.times3{
width:120px;
text-align: center;
margin-top: 12px;
transform: translateX(-50%);
text-shadow: white 0 0 3px;
color: aliceblue;
display: inline-block;
box-sizing: border-box;
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-all;
user-select: none;
}
.Vessel{
width: 100%;
height: 269px;
position: absolute;
overflow-x:auto;
overflow-y:hidden;
bottom: 0px;
z-index: 1;
white-space: nowrap;
background-clip: padding-box;
user-select:none;
}
/* .Vessel:hover::-webkit-scrollbar-thumb{
background: #f9f9ff9c;
} */
.TimeLine{
width: auto;
/*background: url(../img/timer/Ruler3.png) repeat-x;
background-position-y: 56px; */
margin-top: 56px;
}
.Time1Line{
width: auto;
background: url(../img/timer/ruler.png) repeat-x;
/* background-position-y: 56px; */
margin-top: 56px;
}
.Time3Line{
width: auto;
background: url(../img/timer/Ruler3.png) repeat-x;
/* background-position-y: 56px; */
margin-top: 56px;
}
.TimeBox{
color: white;
position:absolute;
right: 20px;
top: 39px;
font-size: 23px;
text-shadow: white 0 0 3px;
}
.Pivot{
color: white;
text-shadow: white 0 0 3px;
margin: 3px 0px;
width: 100%;
height: 37px;
border: aliceblue solid 1px;
border-radius: 12px;
box-shadow: white 0 0 3px;
cursor: url(../img/手.png),auto;
transition:1s all;
}
.Pivot:hover{
box-shadow: white 0 0 19px;
}
.Pwrap{
/* margin-top: 39px; */
/* z-index: 10; */
transition: 1s all;
}
.Pwrap:hover{
/* padding-top: 37px; */
}
.Pivot div{
font-size: 23px;
width: 29px;
height: 29px;
border-radius: 23px;
box-shadow: #e08eff 0 0 3px;
border: #9ed2ff solid 1px;
text-align: center;
transform: translate(7px,3px);
}
.pWrapper{
width:100%;
height: 169px;
/* overflow-y:visible; */
overflow-y: auto;
overflow-x: hidden;
}
.PivotBox{
width: auto;
overflow-x:hidden;
white-space: nowrap;
background-clip: padding-box;
overflow: auto;
}
::selection { background:#330969b7; color: rgb(168, 223, 255); }
::-webkit-scrollbar {/*滚动条整体样式*/
height: 13px ;
width: 13px ;
scrollbar-track-color: #adb8ffe3;
overflow:hidden;
transition: 1s;
}
::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
width: 6px !important; /*高宽分别对应横竖滚动条的尺寸*/
height: 6px !important;
-webkit-box-shadow: inset 0 0 5px rgba(28, 24, 255, 0.2);
background: #f9f9ff9c;
border-radius: 13px;
background-clip: padding-box;
/* background: #00000000; */
-webkit-transition:all 3s;
transition:all 3s;
}
::-webkit-scrollbar-thumb:hover {
background:#f9f9ffe5;
}
::-webkit-scrollbar-track {/*滚动条里面轨道*/
/* -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2); */
/* border-radius: 10px; */
box-shadow: inset 0 0 0px rgb(80, 121, 255);
/* background: #EDEDED; */
background-color: rgba(180, 177, 255, 0);
transition: 1s;
}
/* ::-webkit-scrollbar-track:hover {
box-shadow: inset 0 0 6px rgb(80, 121, 255);
} */
::-webkit-scrollbar-track:hover::-webkit-scrollbar {/*滚动条里面小方块*/
width: 13px ; /*高宽分别对应横竖滚动条的尺寸*/
height: 13px ;
}
/* ::-webkit-scrollbar:hover {
height: 13px;
} */
/*
*/
::-webkit-scrollbar-track-piece{
-webkit-border-radius:0;
}
::-webkit-scrollbar-corner{
background-color: #00000000;
}
.Burin{
width: 46px;
height: 46px;
position:absolute;
transform: translate(-50%,0);
left: 50%;
font-family:KaiTi;
font-size: 39px;
color:azure;
border-radius: 50%;
/* border-width: 30px; */
border: aliceblue solid 0px;
text-shadow: aliceblue 0 0 13px;
transition: 1s all;
text-align: center;
}
.Burin:hover{
/* left:0%; */
border: aliceblue solid 1px;
text-shadow: aliceblue 0 0 23px;
color: #fceeff;
}
.CoreBox{
width: 327px;
transform: translate(-50%,0);
left: 50%;
position:absolute;
top: 16px;
z-index: 9;
}
.CoreBtn{
top: 28px;
border-radius: 3px;
position: absolute;
box-shadow: aliceblue 0 0 0px;
transform:translate(-50%,0);
/* padding: 6px; */
}
.CoreBtn:hover{
box-shadow: aliceblue 0 0 13px;
}
/* 灵笺 */
\ No newline at end of file
[0108/093321.388:ERROR:directory_reader_win.cc(43)] FindFirstFile: 系统找不到指定的路径。 (0x3)
img/01.png

2.24 KB

img/03.png

3.44 KB

img/04.png

9.52 KB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>demo</title>
</head>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
.t-ctn {
}
.s-ctn {
height: 150px;
white-space: nowrap;
font-size: 0;
width: 100%;
overflow-x: auto;
}
.s-ctn div {
font-size: 14px;
box-sizing: border-box;
white-space: normal;
word-wrap: break-word;
word-break: break-all;
overflow: hidden;
display: inline-block;
width: 200px;
height: 100%;
border: 10px solid red;
}
</style>
<body>
<!-- <div class="t-ctn"> -->
<div class="s-ctn">
<div>
<p>titletitletitletitletitletitletitletitletitletitletitletitletitle</p>
<p>body</p>
<img src="./logo.png" alt="">
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
</div>
<div>
<p>title</p>
<p>body</p>
there has been no one to compare with him it self
as the man like this,it had very storng gravity bettwen isomerism,
but no one in his eyes,he rufuse many different isomerism request
he never care classical emotion bettwen isomerism,it just a gene order to persecution for species it reproduce
but,he encount a different guy,it had emotion scar doubtless, comprehend,priciate,like it,then refuse,sounds like he never escape this black hole,
after enlighten,he can't stop to think "why people always expecation think about stimulation with sex?"
again other girl confession to him,but this one, he with a short time thinking, then he did't refuse,this onece,he wnat to go through it self to practices verify what it's really is.
then he got a conclusion,he still a asexuality,
Not saying no is not wanting to hurt people right now
Not accepting is because you don't want to hurt someone later
</div>
</div>
<!-- </div> -->
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.Roller {
transition: all .8s linear;
transform: translate(-50%, 0) rotate(0deg);
position: absolute;
left: 50%;
top: 90px;
width: 100px;
height: 50px;
background-color: cornflowerblue;
transform-origin: 50px 160px;
display: block;
}
.Rotater {
position: absolute;
left: 50%;
top: 90px;
width: 100px;
height: 50px;
background-color: cornflowerblue;
opacity: 0.7;
transform-origin: 50px 160px;
display: block;
}
.Tigger {
/* justify-content: center */
/* transition: all .5s linear; */
position: absolute;
background-image: url('./总览.png');
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 500px;
background-size: cover;
height: 500px;
}
.Tigger:hover {
/* display: none; */
/* background-color:lightblue */
/* transition: all .5s linear; */
}
.Tigger:hover .Roller {
/* display: none; */
top: 0px;
transform: translate(-50%, 0) rotate(360deg);
transform-origin: 50px 250px;
}
</style>
</head>
<body>
<div class="container">
<div class="cu_toolbar">
</div>
</div>
<div class="Tigger">
<!-- <div class="" style="display: block;position: absolute;width: 245px;height: 250px;background-color: darkkhaki;"></div> -->
<div class="Roller" style=""></div>
<div class="Rotater" style="transform: translate(-50%,0) rotate(20deg);"></div>
<div class="Rotater" style="transform: translate(-50%,0) rotate(60deg);"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(100deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(140deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(180deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(220deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(260deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(300deg)"></div>
<div class="Rotater" style="transform:translate(-50%,0) rotate(340deg)"></div>
<!-- <div class="cu_toolbar"></div> -->
</div>
</body>
</html>
File added
img/手.png

1.99 KB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>画布类</title>
<link rel="stylesheet" href="./css/menu.css">
<link rel="stylesheet" href="./css/style.css">
<link href="./css/APlayer.min.css" rel="stylesheet">
<link rel="stylesheet" href="./css/iconfont.css">
<link rel="stylesheet" href="./css/timer.css">
</head>
<body>
<div id="wrapper">
<!-- i3盘轨 -->
<div class="i3 Center" id="i3">
<!-- i1中心按钮 -->
<div class="i1 Center"></div>
<!-- i2是归墟按钮 -->
<div class="i2 Center" id="second" ></div>
<div class="Roller" style="background: url('./img/图片项1.png'); z-index: 110;">
<!---此处定义了一个文件上传输入框,不显示样式,用于选择更换编辑div的背景图片--->
<input type="file" id="inp" name="selectImg" accept="image/png, image/jpeg" style="display: none">
</div>
<div class="Roller" id="cp" style="background: url('./img/纯色项1.png');z-index: 110;"></div>
<div class="Roller" id="Radius" style="background: url('./img/圆角项1.png')">
<canvas id="canvasId" width="450" height="450"></canvas>
</div>
<div class="Roller" id="Vision" style="background: url('./img/视相1.png')"></div>
<div class="Roller" id="Texter" style="background: url('./img/文相1.png')"></div>
<div class="Roller" id="viocer" style="background: url('./img/音相1.png')"></div>
<div class="Roller" id="Foption" style="background: url('./img/全屏相3.png')"><input type="checkbox" class="fullCheck" id="fullcheck"><label for="fullcheck" id="fullOp" class="check-box"></label></div>
<div class="Rotater r1" id="R1" style="transform: translate(-50%,0) rotate(20deg)"></div>
<div class="Rotater r1" style="transform: translate(-50%,0) rotate(60deg)"></div>
<div class="Rotater r1" style="transform:translate(-50%,0) rotate(100deg)"></div>
<div class="Rotater" id="Layer" style="transform:translate(-50%,0) rotate(140deg)"></div>
<div class="Rotater" id="Yuan" style="transform:translate(-50%,0) rotate(180deg)"></div>
<div class="Rotater" id="Cur" style="transform:translate(-50%,0) rotate(220deg)"><input type="checkbox" class="curtainCheck" id="curtianchb">
<label for="curtianchb" id="curtianOp" class="check-box1"></label></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(260deg)"></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(300deg)"></div>
<div class="Rotater r2" style="transform:translate(-50%,0) rotate(340deg)"></div>
</div>
</div>
<div class="sidderbar" id="timerSlider">
<div id="timer" class="con">
<div id="CoreBox" class='CoreBox'>
<div class="CoreBtn" style="background-image:url('./img/timer/上一缘.png');width: 15px;height: 17px;top:27px;left: 76px;"></div>
<div class="CoreBtn" style="background-image:url('./img/timer/上一帧.png');width: 13px;height: 15px;left: 109px;"></div>
<div class="CoreBtn" style="background-image:url('./img/timer/下一帧.png');width: 13px;height: 15px;right: 99px;"></div>
<div class="CoreBtn" style="background-image:url('./img/timer/下一缘.png');width: 15px;height: 17px;top:27px;right: 66px;"></div>
<div></div>
<div id="Burin" class="Burin" title="对当前动画帧进行记录,并自动计算与其他动画帧的动画,快捷键K">
</div>
</div>
<div id="Vessel" class="Vessel">
<div id="TimeLine" class="TimeLine">
<div id="timeScale"></div>
</div>
<div id="pWrapper" class="pWrapper" >
<div id="PivotBox" class="PivotBox">
</div>
</div>
</div>
<div id="timer_L">
</div>
<div id="timer_M">
</div>
<div id="timer_R">
</div>
</div>
</div>
<div id="Scene" style="width:100%;height: 100%;"></div>
<script src='js/jquery-3.5.1.min.js'></script>
<script src="./js/color_change.js"></script>
<script src="./js/APlayer.min.js"></script>
<script src="./js/DPlayer.min.js"></script>
<script src="./js/jsmediatags.min.js"></script>
<script src="./js/Toolkit.js"></script>
<script src="./js/jquery-1.9.1.js"></script>
<script src="./js/Timer.js"></script>
<script src="./js/index.js"></script>
</body>
</html>
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("APlayer",[],t):"object"==typeof exports?exports.APlayer=t():e.APlayer=t()}(window,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=41)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=/mobile/i.test(window.navigator.userAgent),a={secondToTime:function(e){var t=Math.floor(e/3600),n=Math.floor((e-3600*t)/60),i=Math.floor(e-3600*t-60*n);return(t>0?[t,n,i]:[n,i]).map(function(e){return e<10?"0"+e:""+e}).join(":")},getElementViewLeft:function(e){var t=e.offsetLeft,n=e.offsetParent,i=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==e;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return t-i},getElementViewTop:function(e,t){for(var n,i=e.offsetTop,a=e.offsetParent;null!==a;)i+=a.offsetTop,a=a.offsetParent;return n=document.body.scrollTop+document.documentElement.scrollTop,t?i:i-n},isMobile:i,storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},nameMap:{dragStart:i?"touchstart":"mousedown",dragMove:i?"touchmove":"mousemove",dragEnd:i?"touchend":"mouseup"},randomOrder:function(e){return function(e){for(var t=e.length-1;t>=0;t--){var n=Math.floor(Math.random()*(t+1)),i=e[n];e[n]=e[t],e[t]=i}return e}([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(Array(e))).map(function(e,t){return t}))}};t.default=a},function(e,t,n){var i=n(2);e.exports=function(e){"use strict";e=e||{};var t="",n=i.$each,a=e.audio,r=(e.$value,e.$index,i.$escape),o=e.theme,s=e.index;return n(a,function(e,n){t+='\n<li>\n <span class="aplayer-list-cur" style="background-color: ',t+=r(e.theme||o),t+=';"></span>\n <span class="aplayer-list-index">',t+=r(n+s),t+='</span>\n <span class="aplayer-list-title">',t+=r(e.name),t+='</span>\n <span class="aplayer-list-author">',t+=r(e.artist),t+="</span>\n</li>\n"}),t}},function(e,t,n){"use strict";e.exports=n(15)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=g(n(33)),a=g(n(32)),r=g(n(31)),o=g(n(30)),s=g(n(29)),l=g(n(28)),u=g(n(27)),c=g(n(26)),p=g(n(25)),d=g(n(24)),h=g(n(23)),y=g(n(22)),f=g(n(21)),v=g(n(20)),m=g(n(19));function g(e){return e&&e.__esModule?e:{default:e}}var w={play:i.default,pause:a.default,volumeUp:r.default,volumeDown:o.default,volumeOff:s.default,orderRandom:l.default,orderList:u.default,menu:c.default,loopAll:p.default,loopOne:d.default,loopNone:h.default,loading:y.default,right:f.default,skip:v.default,lrc:m.default};t.default=w},function(e,t,n){"use strict";var i,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":a(window))&&(i=window)}e.exports=i},function(e,t,n){"use strict";var i,a,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};void 0===(a="function"==typeof(i=function(){if("object"===("undefined"==typeof window?"undefined":r(window))&&void 0!==document.querySelectorAll&&void 0!==window.pageYOffset&&void 0!==history.pushState){var e=function(e,t,n,i){return n>i?t:e+(t-e)*((a=n/i)<.5?4*a*a*a:(a-1)*(2*a-2)*(2*a-2)+1);var a},t=function(t,n,i,a){n=n||500;var r=(a=a||window).scrollTop||window.pageYOffset;if("number"==typeof t)var o=parseInt(t);else var o=function(e,t){return"HTML"===e.nodeName?-t:e.getBoundingClientRect().top+t}(t,r);var s=Date.now(),l=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){window.setTimeout(e,15)};!function u(){var c=Date.now()-s;a!==window?a.scrollTop=e(r,o,c,n):window.scroll(0,e(r,o,c,n)),c>n?"function"==typeof i&&i(t):l(u)}()},n=function(e){if(!e.defaultPrevented){e.preventDefault(),location.hash!==this.hash&&window.history.pushState(null,null,this.hash);var n=document.getElementById(this.hash.substring(1));if(!n)return;t(n,500,function(e){location.replace("#"+e.id)})}};return document.addEventListener("DOMContentLoaded",function(){for(var e,t=document.querySelectorAll('a[href^="#"]:not([href="#"])'),i=t.length;e=t[--i];)e.addEventListener("click",n,!1)}),t}})?i.call(t,n,t,e):i)||(e.exports=a)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=s(n(1)),r=s(n(0)),o=s(n(5));function s(e){return e&&e.__esModule?e:{default:e}}var l=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.player=t,this.index=0,this.audios=this.player.options.audio,this.bindEvents()}return i(e,[{key:"bindEvents",value:function(){var e=this;this.player.template.list.addEventListener("click",function(t){var n=void 0;n="LI"===t.target.tagName.toUpperCase()?t.target:t.target.parentElement;var i=parseInt(n.getElementsByClassName("aplayer-list-index")[0].innerHTML)-1;i!==e.index?(e.switch(i),e.player.play()):e.player.toggle()})}},{key:"show",value:function(){this.player.events.trigger("listshow"),this.player.template.list.classList.remove("aplayer-list-hide"),this.player.template.listOl.scrollTop=33*this.index}},{key:"hide",value:function(){this.player.events.trigger("listhide"),this.player.template.list.classList.add("aplayer-list-hide")}},{key:"toggle",value:function(){this.player.template.list.classList.contains("aplayer-list-hide")?this.show():this.hide()}},{key:"add",value:function(e){this.player.events.trigger("listadd",{audios:e}),"[object Array]"!==Object.prototype.toString.call(e)&&(e=[e]),e.map(function(e){return e.name=e.name||e.title||"Audio name",e.artist=e.artist||e.author||"Audio artist",e.cover=e.cover||e.pic,e.type=e.type||"normal",e});var t=!(this.audios.length>1),n=0===this.audios.length;this.player.template.listOl.innerHTML+=(0,a.default)({theme:this.player.options.theme,audio:e,index:this.audios.length+1}),this.audios=this.audios.concat(e),t&&this.audios.length>1&&this.player.container.classList.add("aplayer-withlist"),this.player.randomOrder=r.default.randomOrder(this.audios.length),this.player.template.listCurs=this.player.container.querySelectorAll(".aplayer-list-cur"),this.player.template.listCurs[this.audios.length-1].style.backgroundColor=e.theme||this.player.options.theme,n&&("random"===this.player.options.order?this.switch(this.player.randomOrder[0]):this.switch(0))}},{key:"remove",value:function(e){if(this.player.events.trigger("listremove",{index:e}),this.audios[e])if(this.audios.length>1){var t=this.player.container.querySelectorAll(".aplayer-list li");t[e].remove(),this.audios.splice(e,1),this.player.lrc&&this.player.lrc.remove(e),e===this.index&&(this.audios[e]?this.switch(e):this.switch(e-1)),this.index>e&&this.index--;for(var n=e;n<t.length;n++)t[n].getElementsByClassName("aplayer-list-index")[0].textContent=n;1===this.audios.length&&this.player.container.classList.remove("aplayer-withlist"),this.player.template.listCurs=this.player.container.querySelectorAll(".aplayer-list-cur")}else this.clear()}},{key:"switch",value:function(e){if(this.player.events.trigger("listswitch",{index:e}),void 0!==e&&this.audios[e]){this.index=e;var t=this.audios[this.index];this.player.template.pic.style.backgroundImage=t.cover?"url('"+t.cover+"')":"",this.player.theme(this.audios[this.index].theme||this.player.options.theme,this.index,!1),this.player.template.title.innerHTML=t.name,this.player.template.author.innerHTML=t.artist?" - "+t.artist:"";var n=this.player.container.getElementsByClassName("aplayer-list-light")[0];n&&n.classList.remove("aplayer-list-light"),this.player.container.querySelectorAll(".aplayer-list li")[this.index].classList.add("aplayer-list-light"),(0,o.default)(33*this.index,500,null,this.player.template.listOl),this.player.setAudio(t),this.player.lrc&&this.player.lrc.switch(this.index),this.player.lrc&&this.player.lrc.update(0),1!==this.player.duration&&(this.player.template.dtime.innerHTML=r.default.secondToTime(this.player.duration))}}},{key:"clear",value:function(){this.player.events.trigger("listclear"),this.index=0,this.player.container.classList.remove("aplayer-withlist"),this.player.pause(),this.audios=[],this.player.lrc&&this.player.lrc.clear(),this.player.audio.src="",this.player.template.listOl.innerHTML="",this.player.template.pic.style.backgroundImage="",this.player.theme(this.player.options.theme,this.index,!1),this.player.template.title.innerHTML="No audio",this.player.template.author.innerHTML="",this.player.bar.set("loaded",0,"width"),this.player.template.dtime.innerHTML=r.default.secondToTime(0)}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.events={},this.audioEvents=["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","mozaudioavailable","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],this.playerEvents=["destroy","listshow","listhide","listadd","listremove","listswitch","listclear","noticeshow","noticehide","lrcshow","lrchide"]}return i(e,[{key:"on",value:function(e,t){this.type(e)&&"function"==typeof t&&(this.events[e]||(this.events[e]=[]),this.events[e].push(t))}},{key:"trigger",value:function(e,t){if(this.events[e]&&this.events[e].length)for(var n=0;n<this.events[e].length;n++)this.events[e][n](t)}},{key:"type",value:function(e){return-1!==this.playerEvents.indexOf(e)?"player":-1!==this.audioEvents.indexOf(e)?"audio":(console.error("Unknown event name: "+e),null)}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.player=t,window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)},this.types=["loading"],this.init()}return i(e,[{key:"init",value:function(){var e=this;this.types.forEach(function(t){e["init"+t+"Checker"]()})}},{key:"initloadingChecker",value:function(){var e=this,t=0,n=0,i=!1;this.loadingChecker=setInterval(function(){e.enableloadingChecker&&(n=e.player.audio.currentTime,i||n!==t||e.player.audio.paused||(e.player.container.classList.add("aplayer-loading"),i=!0),i&&n>t&&!e.player.audio.paused&&(e.player.container.classList.remove("aplayer-loading"),i=!1),t=n)},100)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.forEach(function(t){e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"])})}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=o(n(0)),r=o(n(3));function o(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.player=t,this.initPlayButton(),this.initPlayBar(),this.initOrderButton(),this.initLoopButton(),this.initMenuButton(),a.default.isMobile||this.initVolumeButton(),this.initMiniSwitcher(),this.initSkipButton(),this.initLrcButton()}return i(e,[{key:"initPlayButton",value:function(){var e=this;this.player.template.pic.addEventListener("click",function(){e.player.toggle()})}},{key:"initPlayBar",value:function(){var e=this,t=function(t){var n=((t.clientX||t.changedTouches[0].clientX)-a.default.getElementViewLeft(e.player.template.barWrap))/e.player.template.barWrap.clientWidth;n=Math.max(n,0),n=Math.min(n,1),e.player.bar.set("played",n,"width"),e.player.lrc&&e.player.lrc.update(n*e.player.duration),e.player.template.ptime.innerHTML=a.default.secondToTime(n*e.player.duration)},n=function n(i){document.removeEventListener(a.default.nameMap.dragEnd,n),document.removeEventListener(a.default.nameMap.dragMove,t);var r=((i.clientX||i.changedTouches[0].clientX)-a.default.getElementViewLeft(e.player.template.barWrap))/e.player.template.barWrap.clientWidth;r=Math.max(r,0),r=Math.min(r,1),e.player.bar.set("played",r,"width"),e.player.seek(e.player.bar.get("played","width")*e.player.duration),e.player.disableTimeupdate=!1};this.player.template.barWrap.addEventListener(a.default.nameMap.dragStart,function(){e.player.disableTimeupdate=!0,document.addEventListener(a.default.nameMap.dragMove,t),document.addEventListener(a.default.nameMap.dragEnd,n)})}},{key:"initVolumeButton",value:function(){var e=this;this.player.template.volumeButton.addEventListener("click",function(){e.player.audio.muted?(e.player.audio.muted=!1,e.player.switchVolumeIcon(),e.player.bar.set("volume",e.player.volume(),"height")):(e.player.audio.muted=!0,e.player.switchVolumeIcon(),e.player.bar.set("volume",0,"height"))});var t=function(t){var n=1-((t.clientY||t.changedTouches[0].clientY)-a.default.getElementViewTop(e.player.template.volumeBar,e.player.options.fixed))/e.player.template.volumeBar.clientHeight;n=Math.max(n,0),n=Math.min(n,1),e.player.volume(n)},n=function n(i){e.player.template.volumeBarWrap.classList.remove("aplayer-volume-bar-wrap-active"),document.removeEventListener(a.default.nameMap.dragEnd,n),document.removeEventListener(a.default.nameMap.dragMove,t);var r=1-((i.clientY||i.changedTouches[0].clientY)-a.default.getElementViewTop(e.player.template.volumeBar,e.player.options.fixed))/e.player.template.volumeBar.clientHeight;r=Math.max(r,0),r=Math.min(r,1),e.player.volume(r)};this.player.template.volumeBarWrap.addEventListener(a.default.nameMap.dragStart,function(){e.player.template.volumeBarWrap.classList.add("aplayer-volume-bar-wrap-active"),document.addEventListener(a.default.nameMap.dragMove,t),document.addEventListener(a.default.nameMap.dragEnd,n)})}},{key:"initOrderButton",value:function(){var e=this;this.player.template.order.addEventListener("click",function(){"list"===e.player.options.order?(e.player.options.order="random",e.player.template.order.innerHTML=r.default.orderRandom):"random"===e.player.options.order&&(e.player.options.order="list",e.player.template.order.innerHTML=r.default.orderList)})}},{key:"initLoopButton",value:function(){var e=this;this.player.template.loop.addEventListener("click",function(){e.player.list.audios.length>1?"one"===e.player.options.loop?(e.player.options.loop="none",e.player.template.loop.innerHTML=r.default.loopNone):"none"===e.player.options.loop?(e.player.options.loop="all",e.player.template.loop.innerHTML=r.default.loopAll):"all"===e.player.options.loop&&(e.player.options.loop="one",e.player.template.loop.innerHTML=r.default.loopOne):"one"===e.player.options.loop||"all"===e.player.options.loop?(e.player.options.loop="none",e.player.template.loop.innerHTML=r.default.loopNone):"none"===e.player.options.loop&&(e.player.options.loop="all",e.player.template.loop.innerHTML=r.default.loopAll)})}},{key:"initMenuButton",value:function(){var e=this;this.player.template.menu.addEventListener("click",function(){e.player.list.toggle()})}},{key:"initMiniSwitcher",value:function(){var e=this;this.player.template.miniSwitcher.addEventListener("click",function(){e.player.setMode("mini"===e.player.mode?"normal":"mini")})}},{key:"initSkipButton",value:function(){var e=this;this.player.template.skipBackButton.addEventListener("click",function(){e.player.skipBack()}),this.player.template.skipForwardButton.addEventListener("click",function(){e.player.skipForward()}),this.player.template.skipPlayButton.addEventListener("click",function(){e.player.toggle()})}},{key:"initLrcButton",value:function(){var e=this;this.player.template.lrcButton.addEventListener("click",function(){e.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity")?(e.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"),e.player.lrc&&e.player.lrc.show()):(e.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"),e.player.lrc&&e.player.lrc.hide())})}}]),e}();t.default=s},function(e,t,n){var i=n(2);e.exports=function(e){"use strict";e=e||{};var t="",n=i.$each,a=e.lyrics,r=(e.$value,e.$index,i.$escape);return n(a,function(e,n){t+="\n <p",0===n&&(t+=' class="aplayer-lrc-current"'),t+=">",t+=r(e[1]),t+="</p>\n"}),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(10),o=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=t.container,this.async=t.async,this.player=t.player,this.parsed=[],this.index=0,this.current=[]}return a(e,[{key:"show",value:function(){this.player.events.trigger("lrcshow"),this.player.template.lrcWrap.classList.remove("aplayer-lrc-hide")}},{key:"hide",value:function(){this.player.events.trigger("lrchide"),this.player.template.lrcWrap.classList.add("aplayer-lrc-hide")}},{key:"toggle",value:function(){this.player.template.lrcWrap.classList.contains("aplayer-lrc-hide")?this.show():this.hide()}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||e<this.current[this.index][0]||!this.current[this.index+1]||e>=this.current[this.index+1][0])for(var t=0;t<this.current.length;t++)e>=this.current[t][0]&&(!this.current[t+1]||e<this.current[t+1][0])&&(this.index=t,this.container.style.transform="translateY("+16*-this.index+"px)",this.container.style.webkitTransform="translateY("+16*-this.index+"px)",this.container.getElementsByClassName("aplayer-lrc-current")[0].classList.remove("aplayer-lrc-current"),this.container.getElementsByTagName("p")[t].classList.add("aplayer-lrc-current"))}},{key:"switch",value:function(e){var t=this;if(!this.parsed[e])if(this.async){this.parsed[e]=[["00:00","Loading"]];var n=new XMLHttpRequest;n.onreadystatechange=function(){e===t.player.list.index&&4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?t.parsed[e]=t.parse(n.responseText):(t.player.notice("LRC file request fails: status "+n.status),t.parsed[e]=[["00:00","Not available"]]),t.container.innerHTML=(0,o.default)({lyrics:t.parsed[e]}),t.update(0),t.current=t.parsed[e])};var i=this.player.list.audios[e].lrc;n.open("get",i,!0),n.send(null)}else this.player.list.audios[e].lrc?this.parsed[e]=this.parse(this.player.list.audios[e].lrc):this.parsed[e]=[["00:00","Not available"]];this.container.innerHTML=(0,o.default)({lyrics:this.parsed[e]}),this.update(0),this.current=this.parsed[e]}},{key:"parse",value:function(e){if(e){for(var t=(e=e.replace(/([^\]^\n])\[/g,function(e,t){return t+"\n["})).split("\n"),n=[],i=t.length,a=0;a<i;a++){var r=t[a].match(/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g),o=t[a].replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g,"").replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g,"").replace(/^\s+|\s+$/g,"");if(r)for(var s=r.length,l=0;l<s;l++){var u=/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/.exec(r[l]),c=60*u[1]+parseInt(u[2])+(u[4]?parseInt(u[4])/(2===(u[4]+"").length?100:1e3):0);n.push([c,o])}}return(n=n.filter(function(e){return e[1]})).sort(function(e,t){return e[0]-t[0]}),n}return[]}},{key:"remove",value:function(e){this.parsed.splice(e,1)}},{key:"clear",value:function(){this.parsed=[],this.container.innerHTML=""}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=n(0),o=(i=r)&&i.__esModule?i:{default:i};var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.storageName=t.options.storageName,this.data=JSON.parse(o.default.storage.get(this.storageName)),this.data||(this.data={}),this.data.volume=this.data.volume||t.options.volume}return a(e,[{key:"get",value:function(e){return this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,o.default.storage.set(this.storageName,JSON.stringify(this.data))}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.elements={},this.elements.volume=t.volume,this.elements.played=t.played,this.elements.loaded=t.loaded}return i(e,[{key:"set",value:function(e,t,n){t=Math.max(t,0),t=Math.min(t,1),this.elements[e].style[n]=100*t+"%"}},{key:"get",value:function(e,t){return parseFloat(this.elements[e].style[t])/100}}]),e}();t.default=a},function(e,t,n){"use strict";(function(t){e.exports=!1;try{e.exports="[object process]"===Object.prototype.toString.call(t.process)}catch(e){}}).call(this,n(4))},function(e,t,n){"use strict";(function(t){var i=n(14),a=Object.create(i?t:window),r=/["&'<>]/;a.$escape=function(e){return function(e){var t=""+e,n=r.exec(t);if(!n)return e;var i="",a=void 0,o=void 0,s=void 0;for(a=n.index,o=0;a<t.length;a++){switch(t.charCodeAt(a)){case 34:s="&#34;";break;case 38:s="&#38;";break;case 39:s="&#39;";break;case 60:s="&#60;";break;case 62:s="&#62;";break;default:continue}o!==a&&(i+=t.substring(o,a)),o=a+1,i+=s}return o!==a?i+t.substring(o,a):i}(function e(t){"string"!=typeof t&&(t=void 0===t||null===t?"":"function"==typeof t?e(t.call(t)):JSON.stringify(t));return t}(e))},a.$each=function(e,t){if(Array.isArray(e))for(var n=0,i=e.length;n<i;n++)t(e[n],n);else for(var a in e)t(e[a],a)},e.exports=a}).call(this,n(4))},function(e,t,n){var i=n(2);e.exports=function(e){"use strict";var t="",a=(e=e||{}).options,r=e.cover,o=i.$escape,s=e.icons,l=(arguments[1],function(e){return t+=e}),u=e.getObject;e.theme,e.audio,e.index;return a.fixed?(t+='\n<div class="aplayer-list',a.listFolded&&(t+=" aplayer-list-hide"),t+='"',a.listMaxHeight&&(t+=' style="max-height: ',t+=o(a.listMaxHeight),t+='"'),t+=">\n <ol",a.listMaxHeight&&(t+=' style="max-height: ',t+=o(a.listMaxHeight),t+='"'),t+=">\n ",l(n(1)(u({theme:a.theme,audio:a.audio,index:1}))),t+='\n </ol>\n</div>\n<div class="aplayer-body">\n <div class="aplayer-pic" style="',r&&(t+="background-image: url(&quot;",t+=o(r),t+="&quot;);"),t+="background-color: ",t+=o(a.theme),t+=';">\n <div class="aplayer-button aplayer-play">',t+=s.play,t+='</div>\n </div>\n <div class="aplayer-info" style="display: none;">\n <div class="aplayer-music">\n <span class="aplayer-title">No audio</span>\n <span class="aplayer-author"></span>\n </div>\n <div class="aplayer-controller">\n <div class="aplayer-bar-wrap">\n <div class="aplayer-bar">\n <div class="aplayer-loaded" style="width: 0"></div>\n <div class="aplayer-played" style="width: 0; background: ',t+=o(a.theme),t+=';">\n <span class="aplayer-thumb" style="background: ',t+=o(a.theme),t+=';">\n <span class="aplayer-loading-icon">',t+=s.loading,t+='</span>\n </span>\n </div>\n </div>\n </div>\n <div class="aplayer-time">\n <span class="aplayer-time-inner">\n <span class="aplayer-ptime">00:00</span> / <span class="aplayer-dtime">00:00</span>\n </span>\n <span class="aplayer-icon aplayer-icon-back">\n ',t+=s.skip,t+='\n </span>\n <span class="aplayer-icon aplayer-icon-play">\n ',t+=s.play,t+='\n </span>\n <span class="aplayer-icon aplayer-icon-forward">\n ',t+=s.skip,t+='\n </span>\n <div class="aplayer-volume-wrap">\n <button type="button" class="aplayer-icon aplayer-icon-volume-down">\n ',t+=s.volumeDown,t+='\n </button>\n <div class="aplayer-volume-bar-wrap">\n <div class="aplayer-volume-bar">\n <div class="aplayer-volume" style="height: 80%; background: ',t+=o(a.theme),t+=';"></div>\n </div>\n </div>\n </div>\n <button type="button" class="aplayer-icon aplayer-icon-order">\n ',"list"===a.order?t+=s.orderList:"random"===a.order&&(t+=s.orderRandom),t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-loop">\n ',"one"===a.loop?t+=s.loopOne:"all"===a.loop?t+=s.loopAll:"none"===a.loop&&(t+=s.loopNone),t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-menu">\n ',t+=s.menu,t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-lrc">\n ',t+=s.lrc,t+='\n </button>\n </div>\n </div>\n </div>\n <div class="aplayer-notice"></div>\n <div class="aplayer-miniswitcher"><button class="aplayer-icon">',t+=s.right,t+='</button></div>\n</div>\n<div class="aplayer-lrc">\n <div class="aplayer-lrc-contents" style="transform: translateY(0); -webkit-transform: translateY(0);"></div>\n</div>\n'):(t+='\n<div class="aplayer-body">\n <div class="aplayer-pic" style="',r&&(t+="background-image: url(&quot;",t+=o(r),t+="&quot;);"),t+="background-color: ",t+=o(a.theme),t+=';">\n <div class="aplayer-button aplayer-play">',t+=s.play,t+='</div>\n </div>\n <div class="aplayer-info">\n <div class="aplayer-music">\n <span class="aplayer-title">No audio</span>\n <span class="aplayer-author"></span>\n </div>\n <div class="aplayer-lrc">\n <div class="aplayer-lrc-contents" style="transform: translateY(0); -webkit-transform: translateY(0);"></div>\n </div>\n <div class="aplayer-controller">\n <div class="aplayer-bar-wrap">\n <div class="aplayer-bar">\n <div class="aplayer-loaded" style="width: 0"></div>\n <div class="aplayer-played" style="width: 0; background: ',t+=o(a.theme),t+=';">\n <span class="aplayer-thumb" style="background: ',t+=o(a.theme),t+=';">\n <span class="aplayer-loading-icon">',t+=s.loading,t+='</span>\n </span>\n </div>\n </div>\n </div>\n <div class="aplayer-time">\n <span class="aplayer-time-inner">\n <span class="aplayer-ptime">00:00</span> / <span class="aplayer-dtime">00:00</span>\n </span>\n <span class="aplayer-icon aplayer-icon-back">\n ',t+=s.skip,t+='\n </span>\n <span class="aplayer-icon aplayer-icon-play">\n ',t+=s.play,t+='\n </span>\n <span class="aplayer-icon aplayer-icon-forward">\n ',t+=s.skip,t+='\n </span>\n <div class="aplayer-volume-wrap">\n <button type="button" class="aplayer-icon aplayer-icon-volume-down">\n ',t+=s.volumeDown,t+='\n </button>\n <div class="aplayer-volume-bar-wrap">\n <div class="aplayer-volume-bar">\n <div class="aplayer-volume" style="height: 80%; background: ',t+=o(a.theme),t+=';"></div>\n </div>\n </div>\n </div>\n <button type="button" class="aplayer-icon aplayer-icon-order">\n ',"list"===a.order?t+=s.orderList:"random"===a.order&&(t+=s.orderRandom),t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-loop">\n ',"one"===a.loop?t+=s.loopOne:"all"===a.loop?t+=s.loopAll:"none"===a.loop&&(t+=s.loopNone),t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-menu">\n ',t+=s.menu,t+='\n </button>\n <button type="button" class="aplayer-icon aplayer-icon-lrc">\n ',t+=s.lrc,t+='\n </button>\n </div>\n </div>\n </div>\n <div class="aplayer-notice"></div>\n <div class="aplayer-miniswitcher"><button class="aplayer-icon">',t+=s.right,t+='</button></div>\n</div>\n<div class="aplayer-list',a.listFolded&&(t+=" aplayer-list-hide"),t+='"',a.listMaxHeight&&(t+=' style="max-height: ',t+=o(a.listMaxHeight),t+='"'),t+=">\n <ol",a.listMaxHeight&&(t+=' style="max-height: ',t+=o(a.listMaxHeight),t+='"'),t+=">\n ",l(n(1)(u({theme:a.theme,audio:a.audio,index:1}))),t+="\n </ol>\n</div>\n"),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=o(n(3)),r=o(n(16));function o(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=t.container,this.options=t.options,this.randomOrder=t.randomOrder,this.init()}return i(e,[{key:"init",value:function(){var e="";this.options.audio.length&&(e="random"===this.options.order?this.options.audio[this.randomOrder[0]].cover:this.options.audio[0].cover),this.container.innerHTML=(0,r.default)({options:this.options,icons:a.default,cover:e,getObject:function(e){return e}}),this.lrc=this.container.querySelector(".aplayer-lrc-contents"),this.lrcWrap=this.container.querySelector(".aplayer-lrc"),this.ptime=this.container.querySelector(".aplayer-ptime"),this.info=this.container.querySelector(".aplayer-info"),this.time=this.container.querySelector(".aplayer-time"),this.barWrap=this.container.querySelector(".aplayer-bar-wrap"),this.button=this.container.querySelector(".aplayer-button"),this.body=this.container.querySelector(".aplayer-body"),this.list=this.container.querySelector(".aplayer-list"),this.listOl=this.container.querySelector(".aplayer-list ol"),this.listCurs=this.container.querySelectorAll(".aplayer-list-cur"),this.played=this.container.querySelector(".aplayer-played"),this.loaded=this.container.querySelector(".aplayer-loaded"),this.thumb=this.container.querySelector(".aplayer-thumb"),this.volume=this.container.querySelector(".aplayer-volume"),this.volumeBar=this.container.querySelector(".aplayer-volume-bar"),this.volumeButton=this.container.querySelector(".aplayer-time button"),this.volumeBarWrap=this.container.querySelector(".aplayer-volume-bar-wrap"),this.loop=this.container.querySelector(".aplayer-icon-loop"),this.order=this.container.querySelector(".aplayer-icon-order"),this.menu=this.container.querySelector(".aplayer-icon-menu"),this.pic=this.container.querySelector(".aplayer-pic"),this.title=this.container.querySelector(".aplayer-title"),this.author=this.container.querySelector(".aplayer-author"),this.dtime=this.container.querySelector(".aplayer-dtime"),this.notice=this.container.querySelector(".aplayer-notice"),this.miniSwitcher=this.container.querySelector(".aplayer-miniswitcher"),this.skipBackButton=this.container.querySelector(".aplayer-icon-back"),this.skipForwardButton=this.container.querySelector(".aplayer-icon-forward"),this.skipPlayButton=this.container.querySelector(".aplayer-icon-play"),this.lrcButton=this.container.querySelector(".aplayer-icon-lrc")}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t={container:e.element||document.getElementsByClassName("aplayer")[0],mini:e.narrow||e.fixed||!1,fixed:!1,autoplay:!1,mutex:!0,lrcType:e.showlrc||e.lrc||0,preload:"auto",theme:"#b7daff",loop:"all",order:"list",volume:.7,listFolded:e.fixed,listMaxHeight:e.listmaxheight||"250px",audio:e.music||[],storageName:"aplayer-setting"};for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return"[object Array]"!==Object.prototype.toString.call(e.audio)&&(e.audio=[e.audio]),e.audio.map(function(e){return e.name=e.name||e.title||"Audio name",e.artist=e.artist||e.author||"Audio artist",e.cover=e.cover||e.pic,e.type=e.type||"normal",e}),e.audio.length<=1&&"one"===e.loop&&(e.loop="all"),e}},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M25.468 6.947c-0.326-0.172-0.724-0.151-1.030 0.057l-6.438 4.38v-3.553c0-0.371-0.205-0.71-0.532-0.884-0.326-0.172-0.724-0.151-1.030 0.057l-12 8.164c-0.274 0.186-0.438 0.496-0.438 0.827s0.164 0.641 0.438 0.827l12 8.168c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-3.556l6.438 4.382c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-16.333c0-0.371-0.205-0.71-0.532-0.884z"></path></svg>'},function(e,t){e.exports='<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>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M4 16c0-6.6 5.4-12 12-12s12 5.4 12 12c0 1.2-0.8 2-2 2s-2-0.8-2-2c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8c1.2 0 2 0.8 2 2s-0.8 2-2 2c-6.6 0-12-5.4-12-12z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 29 32"><path d="M2.667 7.027l1.707-1.693 22.293 22.293-1.693 1.707-4-4h-11.64v4l-5.333-5.333 5.333-5.333v4h8.973l-8.973-8.973v0.973h-2.667v-3.64l-4-4zM22.667 17.333h2.667v5.573l-2.667-2.667v-2.907zM22.667 6.667v-4l5.333 5.333-5.333 5.333v-4h-10.907l-2.667-2.667h13.573z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 33 32"><path d="M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333zM17.333 20v-8h-1.333l-2.667 1.333v1.333h2v5.333h2z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 29 32"><path d="M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 22 32"><path d="M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M0.622 18.334h19.54v7.55l11.052-9.412-11.052-9.413v7.549h-19.54v3.725z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M22.667 4l7 6-7 6 7 6-7 6v-4h-3.653l-3.76-3.76 2.827-2.827 2.587 2.587h2v-8h-2l-12 12h-6v-4h4.347l12-12h3.653v-4zM2.667 8h6l3.76 3.76-2.827 2.827-2.587-2.587h-4.347v-4z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 28 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 28 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 28 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 17 32"><path d="M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 31"><path d="M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"></path></svg>'},function(e,t,n){"use strict";var i,a,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(i===setTimeout)return setTimeout(e,0);if((i===o||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:o}catch(e){i=o}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var u,c=[],p=!1,d=-1;function h(){p&&u&&(p=!1,u.length?c=u.concat(c):d=-1,c.length&&y())}function y(){if(!p){var e=l(h);p=!0;for(var t=c.length;t;){for(u=c,c=[];++d<t;)u&&u[d].run();d=-1,t=c.length}u=null,p=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function v(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new f(e,t)),1!==c.length||p||l(y)},f.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=v,r.addListener=v,r.once=v,r.off=v,r.removeListener=v,r.removeAllListeners=v,r.emit=v,r.prependListener=v,r.prependOnceListener=v,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,n){"use strict";(function(e,t){!function(e,n){if(!e.setImmediate){var i,a,r,o,s,l=1,u={},c=!1,p=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?i=function(e){t.nextTick(function(){y(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){y(e.data)},i=function(e){r.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(a=p.documentElement,i=function(e){var t=p.createElement("script");t.onreadystatechange=function(){y(e),t.onreadystatechange=null,a.removeChild(t),t=null},a.appendChild(t)}):i=function(e){setTimeout(y,0,e)}:(o="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&y(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),i=function(t){e.postMessage(o+t,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var a={callback:e,args:t};return u[l]=a,i(l),l++},d.clearImmediate=h}function h(e){delete u[e]}function y(e){if(c)setTimeout(y,0,e);else{var t=u[e];if(t){c=!0;try{!function(e){var t=e.callback,i=e.args;switch(i.length){case 0:t();break;case 1:t(i[0]);break;case 2:t(i[0],i[1]);break;case 3:t(i[0],i[1],i[2]);break;default:t.apply(n,i)}}(t)}finally{h(e),c=!1}}}}}("undefined"==typeof self?void 0===e?void 0:e:self)}).call(this,n(4),n(34))},function(e,t,n){"use strict";var i=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(i.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new a(i.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(35),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){"use strict";(function(t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=setTimeout;function a(){}function r(e){if(!(this instanceof r))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void l(t.promise,e)}s(t.promise,i)}else(1===e._state?s:l)(t.promise,e._value)})):e._deferreds.push(t)}function s(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":n(t))||"function"==typeof t)){var i=t.then;if(t instanceof r)return e._state=3,e._value=t,void u(e);if("function"==typeof i)return void c((a=i,o=t,function(){a.apply(o,arguments)}),e)}e._state=1,e._value=t,u(e)}catch(t){l(e,t)}var a,o}function l(e,t){e._state=2,e._value=t,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function c(e,t){var n=!1;try{e(function(e){n||(n=!0,s(t,e))},function(e){n||(n=!0,l(t,e))})}catch(e){if(n)return;n=!0,l(t,e)}}r.prototype.catch=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(a);return o(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,n)),n},r.prototype.finally=function(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})},r.all=function(e){return new r(function(t,i){if(!e||void 0===e.length)throw new TypeError("Promise.all accepts an array");var a=Array.prototype.slice.call(e);if(0===a.length)return t([]);var r=a.length;function o(e,s){try{if(s&&("object"===(void 0===s?"undefined":n(s))||"function"==typeof s)){var l=s.then;if("function"==typeof l)return void l.call(s,function(t){o(e,t)},i)}a[e]=s,0==--r&&t(a)}catch(e){i(e)}}for(var s=0;s<a.length;s++)o(s,a[s])})},r.resolve=function(e){return e&&"object"===(void 0===e?"undefined":n(e))&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,n){for(var i=0,a=e.length;i<a;i++)e[i].then(t,n)})},r._immediateFn="function"==typeof t&&function(e){t(e)}||function(e){i(e,0)},r._unhandledRejectionFn=function(e){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)},e.exports=r}).call(this,n(36).setImmediate)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=v(n(37)),r=v(n(0)),o=v(n(3)),s=v(n(18)),l=v(n(17)),u=v(n(13)),c=v(n(12)),p=v(n(11)),d=v(n(9)),h=v(n(8)),y=v(n(7)),f=v(n(6));function v(e){return e&&e.__esModule?e:{default:e}}var m=[],g=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=(0,s.default)(t),this.container=this.options.container,this.paused=!0,this.playedPromise=a.default.resolve(),this.mode="normal",this.randomOrder=r.default.randomOrder(this.options.audio.length),this.container.classList.add("aplayer"),this.options.lrcType&&!this.options.fixed&&this.container.classList.add("aplayer-withlrc"),this.options.audio.length>1&&this.container.classList.add("aplayer-withlist"),r.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.container=this.options.container,2===this.options.lrcType||!0===this.options.lrcType)for(var n=this.container.getElementsByClassName("aplayer-lrc-content"),i=0;i<n.length;i++)this.options.audio[i]&&(this.options.audio[i].lrc=n[i].innerHTML);this.template=new l.default({container:this.container,options:this.options,randomOrder:this.randomOrder}),this.options.fixed&&(this.container.classList.add("aplayer-fixed"),this.template.body.style.width=this.template.body.offsetWidth-18+"px"),this.options.mini&&(this.setMode("mini"),this.template.info.style.display="block"),this.template.info.offsetWidth<200&&this.template.time.classList.add("aplayer-time-narrow"),this.options.lrcType&&(this.lrc=new p.default({container:this.template.lrc,async:3===this.options.lrcType,player:this})),this.events=new y.default,this.storage=new c.default(this),this.bar=new u.default(this.template),this.controller=new d.default(this),this.timer=new h.default(this),this.list=new f.default(this),this.initAudio(),this.bindEvents(),"random"===this.options.order?this.list.switch(this.randomOrder[0]):this.list.switch(0),this.options.autoplay&&this.play(),m.push(this)}return i(e,[{key:"initAudio",value:function(){var e=this;this.audio=document.createElement("audio"),this.audio.preload=this.options.preload;for(var t=function(t){e.audio.addEventListener(e.events.audioEvents[t],function(n){e.events.trigger(e.events.audioEvents[t],n)})},n=0;n<this.events.audioEvents.length;n++)t(n);this.volume(this.storage.get("volume"),!0)}},{key:"bindEvents",value:function(){var e=this;this.on("play",function(){e.paused&&e.setUIPlaying()}),this.on("pause",function(){e.paused||e.setUIPaused()}),this.on("timeupdate",function(){if(!e.disableTimeupdate){e.bar.set("played",e.audio.currentTime/e.duration,"width"),e.lrc&&e.lrc.update();var t=r.default.secondToTime(e.audio.currentTime);e.template.ptime.innerHTML!==t&&(e.template.ptime.innerHTML=t)}}),this.on("durationchange",function(){1!==e.duration&&(e.template.dtime.innerHTML=r.default.secondToTime(e.duration))}),this.on("progress",function(){var t=e.audio.buffered.length?e.audio.buffered.end(e.audio.buffered.length-1)/e.duration:0;e.bar.set("loaded",t,"width")});var t=void 0;this.on("error",function(){e.list.audios.length>1?(e.notice("An audio error has occurred, player will skip forward in 2 seconds."),t=setTimeout(function(){e.skipForward(),e.paused||e.play()},2e3)):1===e.list.audios.length&&e.notice("An audio error has occurred.")}),this.events.on("listswitch",function(){t&&clearTimeout(t)}),this.on("ended",function(){"none"===e.options.loop?"list"===e.options.order?e.list.index<e.list.audios.length-1?(e.list.switch((e.list.index+1)%e.list.audios.length),e.play()):(e.list.switch((e.list.index+1)%e.list.audios.length),e.pause()):"random"===e.options.order&&(e.randomOrder.indexOf(e.list.index)<e.randomOrder.length-1?(e.list.switch(e.nextIndex()),e.play()):(e.list.switch(e.nextIndex()),e.pause())):"one"===e.options.loop?(e.list.switch(e.list.index),e.play()):"all"===e.options.loop&&(e.skipForward(),e.play())})}},{key:"setAudio",value:function(e){this.hls&&(this.hls.destroy(),this.hls=null);var t=e.type;this.options.customAudioType&&this.options.customAudioType[t]?"[object Function]"===Object.prototype.toString.call(this.options.customAudioType[t])?this.options.customAudioType[t](this.audio,e,this):console.error("Illegal customType: "+t):(t&&"auto"!==t||(t=/m3u8(#|\?|$)/i.exec(e.url)?"hls":"normal"),"hls"===t?Hls.isSupported()?(this.hls=new Hls,this.hls.loadSource(e.url),this.hls.attachMedia(this.audio)):this.audio.canPlayType("application/x-mpegURL")||this.audio.canPlayType("application/vnd.apple.mpegURL")?this.audio.src=e.url:this.notice("Error: HLS is not supported."):"normal"===t&&(this.audio.src=e.url)),this.seek(0),this.paused||this.audio.play()}},{key:"theme",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.list.audios[this.list.index].theme||this.options.theme,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.list.index;(!(arguments.length>2&&void 0!==arguments[2])||arguments[2])&&this.list.audios[t]&&(this.list.audios[t].theme=e),this.template.listCurs[t]&&(this.template.listCurs[t].style.backgroundColor=e),t===this.list.index&&(this.template.pic.style.backgroundColor=e,this.template.played.style.background=e,this.template.thumb.style.background=e,this.template.volume.style.background=e)}},{key:"seek",value:function(e){e=Math.max(e,0),e=Math.min(e,this.duration),this.audio.currentTime=e,this.bar.set("played",e/this.duration,"width"),this.template.ptime.innerHTML=r.default.secondToTime(e)}},{key:"setUIPlaying",value:function(){var e=this;if(this.paused&&(this.paused=!1,this.template.button.classList.remove("aplayer-play"),this.template.button.classList.add("aplayer-pause"),this.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=o.default.pause},100),this.template.skipPlayButton.innerHTML=o.default.pause),this.timer.enable("loading"),this.options.mutex)for(var t=0;t<m.length;t++)this!==m[t]&&m[t].pause()}},{key:"play",value:function(){var e=this;this.setUIPlaying();var t=this.audio.play();t&&t.catch(function(t){console.warn(t),"NotAllowedError"===t.name&&e.setUIPaused()})}},{key:"setUIPaused",value:function(){var e=this;this.paused||(this.paused=!0,this.template.button.classList.remove("aplayer-pause"),this.template.button.classList.add("aplayer-play"),this.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=o.default.play},100),this.template.skipPlayButton.innerHTML=o.default.play),this.container.classList.remove("aplayer-loading"),this.timer.disable("loading")}},{key:"pause",value:function(){this.setUIPaused(),this.audio.pause()}},{key:"switchVolumeIcon",value:function(){this.volume()>=.95?this.template.volumeButton.innerHTML=o.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=o.default.volumeDown:this.template.volumeButton.innerHTML=o.default.volumeOff}},{key:"volume",value:function(e,t){return e=parseFloat(e),isNaN(e)||(e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"height"),t||this.storage.set("volume",e),this.audio.volume=e,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"switchAudio",value:function(e){this.list.switch(e)}},{key:"addAudio",value:function(e){this.list.add(e)}},{key:"removeAudio",value:function(e){this.list.remove(e)}},{key:"destroy",value:function(){m.splice(m.indexOf(this),1),this.pause(),this.container.innerHTML="",this.audio.src="",this.timer.destroy(),this.events.trigger("destroy")}},{key:"setMode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"normal";this.mode=e,"mini"===e?this.container.classList.add("aplayer-narrow"):"normal"===e&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("noticeshow",{text:e}),n&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("noticehide")},n))}},{key:"prevIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return this.list.index-1<0?this.list.audios.length-1:this.list.index-1;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return 0===e?this.randomOrder[this.randomOrder.length-1]:this.randomOrder[e-1]}}},{key:"nextIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return(this.list.index+1)%this.list.audios.length;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return e===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[e+1]}}},{key:"skipBack",value:function(){this.list.switch(this.prevIndex())}},{key:"skipForward",value:function(){this.list.switch(this.nextIndex())}},{key:"duration",get:function(){return isNaN(this.audio.duration)?0:this.audio.duration}}],[{key:"version",get:function(){return"1.10.1"}}]),e}();t.default=g},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(40);var i,a=n(38),r=(i=a)&&i.__esModule?i:{default:i};t.default=r.default}]).default});
//# sourceMappingURL=APlayer.min.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
class Timer {
constructor(frame,Controller){
this.Controller=Controller
this.Vessel=φ('#Vessel')
this.Scale=φ("#timeScale");
this.TimeLine=φ('#TimeLine')
this.Wrap=φ('#timer')
this.Pbox=φ('#PivotBox')
this.Level=1
this.Second=69
this.NowHover=null;
this.LastPivot=null;
this.Chosen=null;
this.Playing=false;
φ('#timerSlider')[on.Start]=(e) =>{
e.stopPropagation();
}
this.frame=frame
this.TimeLine[on.Start]=(e)=>{
this.BindScaleMove(e)
}
this.Scale[on.Start]=(e)=>{
this.BindScaleMove(e)
}
this.RollTimeBox()
this.ConScale(this.Second)
document.getElementById('TimeLine').onmousewheel=(e)=>{
if(e.wheelDelta>0){
this.Level+=1
this.Level=this.Level>2?2:this.Level
}else if(e.wheelDelta<0){
this.Level-=1
this.Level=this.Level<1?1:this.Level
}
// console.log(e.wheelDelta)
if(e.wheelDelta==0){return}
this.ConScale(this.Second)
}
this.Plist=[]
this.Vessel.onscroll=(e)=>{
// console.log(e)
console.log('construction')
φ("#pWrapper").style.width=this.Vessel.scrollLeft+this.Vessel.clientWidth+"px"
for (let i = 0; i < this.Plist.length; i++) {
this.Plist[i].Flag.style.transform=`translate(${this.Vessel.scrollLeft+7}px,3px)`
// console.log(this.Plist[i].Flag.style)
}
}
this.Burin=φ('#Burin')
this.Burin[on.Start]=(e)=>{
this.Carve()
}
//register proceed hot key
document.addEventListener('keyup',(evnt)=>{
// console.log(evnt)
if(evnt.keyCode==32){
console.log('show will begin:)')
if(this.Playing){this.Pause()}else{this.Play()}
// this.Proceed();
}
})
}
Play(){
this.FpsInterval=1000/30;
this.Now;
this.Then=Date.now();
this.StartTime=this.Then;
this.elapsed;
this.Playing=true;
this.Perform(this)
console.log(this.Playing)
}
Perform(Aim){
// request another frame
console.log(Aim.Playing)
if(!Aim.Playing){return;}
requestAnimationFrame(()=>{Aim.Perform(Aim)});
// calc elapsed time since last loop
Aim.Now = Date.now();
Aim.elapsed = Aim.Now - Aim.Then;
// if enough time has elapsed, draw the next frame
if (Aim.elapsed > Aim.FpsInterval) {
// Get ready for next frame by setting then=now, but also adjust for your
// specified fpsInterval not being a multiple of RAF's interval (16.7ms)
Aim.Then = Aim.Now - (Aim.elapsed % Aim.FpsInterval);
// Performing
if(Aim.ScaleL()+2<Aim.TimeLine.clientWidth){
Aim.PositeScale(Aim.ScaleL()+2,true)
}else{
Aim.Playing=false
}
}
}
Pause(){
this.Playing=false
}
Proceed(){
console.log(this.Plist)
for (let i=0;i<this.Plist.length;i++) {
console.log('Kiss 01')
console.log(this.Plist[i].ActionFrames.length)
if(this.Plist[i].ActionFrames.length>1){
console.log('HereAnimation RUning!');
this.Plist[i].ActionFrames[0].Next();
}
}
}
Carve(){
if(!this.Chosen){alert('请先选择要刻帧的相')}
new Frame(this.Chosen,this.ScaleL())
}
RollTimeBox(){
this.TimeBox=document.createElement("div")
this.TimeBox.innerText="00:00:00"
this.TimeBox.className="TimeBox"
this.Wrap.appendChild(this.TimeBox)
}
ScaleL(){
return Number(this.Scale.style.left.split("px")[0])
}
PositeScale(x,Absolute){
console.log(x,Absolute)
if(x<0){
return
}
// console.log((document.documentElement.clientWidth-this.Scale.offsetWidth));
if(Absolute){
if(x<this.TimeLine.clientWidth){
this.Scale.style.left=x+'px';
}else{
this.Scale.style.left=Offset+x+"px";
}
this.ComputeTimeBox()
this.ComputeFrames()
return;
}
let Offset=this.Vessel.scrollLeft
if ( x >(this.TimeLine.clientWidth-Offset))
{
this.Scale.style.left=this.TimeLine.clientWidth+"px";
}else{
this.Scale.style.left=Offset+x+"px";
}
this.ComputeTimeBox()
this.ComputeFrames()
}
BindScaleMove(e){
e=CoordinatE(e)
let x=e.pageX;
this.PositeScale(x)
document[on.Move]=(evnt)=>{
evnt=CoordinatE(evnt)
let x=evnt.pageX;
this.PositeScale(x)
}
this.Scale[on.End]=()=>{
document[on.Move]=null;
}
}
ComputeFrames(){
this.Plist.forEach(Pl => {
Pl.RenderByFrame();
});
}
ComputeTimeBox(){
let TimeArray=this.TimeBox.innerText.split(":")
switch(this.Level){
case 0:{
this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/37/30/60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/37/30%60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/37%30),2)}`
}break;
case 1:{
this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/3600),2)}:${PrefixInteger(Math.floor(this.ScaleL()/60%60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/2%30),2)}`
// console.log(this.ScaleL()/2+'帧')
}break;
case 2:{
this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/60),2)}:${PrefixInteger(Math.floor(this.ScaleL()%60),2)}:${TimeArray[2]}`
}break;
}
}
ComputeScale(){
let TimeArray=this.TimeBox.innerText.split(":")
switch(this.Level){
case 0:{
this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/37/30/60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/37/30%60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/37%30),2)}`
}break;
case 1:{
// this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/3600),2)}:${PrefixInteger(Math.floor(this.ScaleL()/60%60),2)}:${PrefixInteger(Math.floor(this.ScaleL()/2%30),2)}`
console.log(TimeArray)
this.Scale.style.left=Number(TimeArray[0])*60*60+Number(TimeArray[1])*60+Number(TimeArray[2])+"px"
}break;
case 2:{
console.log(Number(TimeArray[0]),Number(TimeArray[1]))
this.Scale.style.left=Number(TimeArray[0])*60+Number(TimeArray[1])+"px"
// this.TimeBox.innerText=`${PrefixInteger(Math.floor(this.ScaleL()/60),2)}:${PrefixInteger(Math.floor(this.ScaleL()%60),2)}:${TimeArray[2]}`
}break;
}
this.Vessel.scrollTo(this.ScaleL()-this.Vessel.clientWidth/2,0)
}
ConScale(DefaultLength){//Minit Unit/s
let StandW=document.body.clientWidth,Min=0;
this.TimeLine.innerText=""
this.TimeLine.appendChild(this.Scale)
switch(this.Level){
case 0:{
this.TimeLine.className="TimeLine";
for (let i = 0; i <= DefaultLength*this.frame; i++) {
let TimerSpan=document.createElement("div"),Line=document.createElement("div"),Dial=document.createElement("div");
Line.innerText="|"
Line.style.cssText="float:left"
TimerSpan.className="times"
if(i%30==0&&i!=0){Min++};
Dial.innerText+=Min+":"+i%30;
TimerSpan.appendChild(Line)
TimerSpan.appendChild(Dial)
this.TimeLine.appendChild(TimerSpan);
}
this.TimeLine.style.width=17*(1+DefaultLength*this.frame)+"px"
}break;
case 1:{// 1h=60m;1m=60s;1s=30f
this.TimeLine.className="Time1Line";
for (let i = 0; i <= DefaultLength; i++) {
let TimerSpan=document.createElement("div"),Dial=document.createElement("div");
TimerSpan.className="times1"
if(i%60==0&&i!=0){Min++};
Dial.innerText+=Min+":"+i%60;
TimerSpan.appendChild(Dial)
this.TimeLine.appendChild(TimerSpan);
}
this.CoordinateW(60*DefaultLength)
}break;
case 2:{// 1h=60m;1m=60s;1s=30f
this.TimeLine.className="Time3Line";
for (let i = 0; i <= Math.floor(DefaultLength/60); i++) {
let TimerSpan=document.createElement("div"),Dial=document.createElement("div");
TimerSpan.className="times1"
if(i%60==0&&i!=0){Min++};
Dial.innerText+=Min+":"+i%60;
TimerSpan.appendChild(Dial)
this.TimeLine.appendChild(TimerSpan);
}
this.CoordinateW((DefaultLength))
}break;
}
this.ComputeScale()
}
CoordinateW(w){
this.TimeLine.style.width=w+"px"
this.Pbox.style.width=w+36+"px"
}
appendPivot(Phenomena){
let Np=new Pivot(Phenomena,this)
// Np.Sort=this.Plist.length
// this.Plist[Np.Sort]=Np
this.Plist.unshift(Np)
Np.Pline.style.width=this.TimeLine.style.width
// Np.Phover((e)=>{
// this.NowHover=Np;
// // console.log(Np);
// })/
Np.Pwrap[on.Start]=(e)=>{
console.log("LocalEvent")
var e=CoordinatE(e)
let y=e.pageY,In=Np.Sort
let Offset=e.pageY-y,Scrolled=φ("#pWrapper").scrollTop
console.log(Scrolled)
// (Np.Sort>3?3:Np.Sort)+
this.DrawOn(Np)
Np.Pwrap.style.top=`${Offset+85+In*42-φ("#pWrapper").scrollTop}px`
Np.Pwrap.style.position="absolute"
// φ("#pWrapper").scrollTo(0,Scrolled)
// Np.Phover((e)=>{})
document[on.Move]=(e)=>{
e=CoordinatE(e)
Offset=e.pageY-y
// console.log(Offset);
// console.log(φ("#pWrapper").scrollTop)
Np.Pwrap.style.top=`${Offset+85+In*42-φ("#pWrapper").scrollTop}px`
// console.log(Np.Pwrap.offsetTop)
this.CollisionCompute(Np.Pwrap.offsetTop,Np)
}
document[on.End]=()=>{
console.log(this.NowHover)
if(!this.NowHover){
this.Pbox.appendChild(Np.Pwrap)
this.DrawOff(Np,this.Plist.length+1)
}else{
this.NowHover.Pwrap.style=""
this.Pbox.insertBefore(Np.Pwrap,this.NowHover.Pwrap)
console.log(this.NowHover.Sort);
this.DrawOff(Np,this.NowHover.Sort)
}
Np.Pwrap.style=""
document[on.Move]=null
this.NowHover=null
document[on.End]=null;
if(!this.LastPivot)return;
this.LastPivot.Pwrap.style='';
this.LastPivot=null
}
}
this.Pbox.insertBefore(Np.Pwrap,this.Pbox.childNodes[0])
this.SyncP()
}
RemovePivot(Aim){
this.Plist.splice(Aim.Sort,1);
this.SyncP();
}
ResurgencePivot(Aim){
if(this.Pbox.childNodes[Aim.Sort]){
this.Pbox.insertBefore(Aim.Pwrap,this.Pbox.childNodes[Aim.Sort])
}else{
this.Pbox.appendChild(Aim.Pwrap)
}
this.SyncP()
}
CollisionCompute(y,Aim){
y+=φ("#pWrapper").scrollTop
// console.log("Actually Height"+y)
for (let i = 0; i < (this.Plist.length); i++) {
// if(i==Aim.Sort){this.NowHover.style="";continue}
if(y<=(i*43+37+85)){
if(this.NowHover&&this.NowHover.Sort==i){return}
if(this.NowHover){this.NowHover.Pwrap.style="";}
if(this.Plist[i]){
this.Plist[i].Pwrap.style=null;
this.Plist[i].Pwrap.style.paddingTop="37px";}else{
this.NowHover=false;return;
}
// console.log(this.Plist[i].Pwrap)
this.NowHover=this.Plist[i];
return;
}
}
console.log('OverFlow')
if(this.NowHover){this.NowHover.Pwrap.style=""; this.NowHover=false;}
this.LastPivot.Pwrap.style.paddingBottom="37px";
}
Reconstruction(){
this.DrawOn(this.DrawOff(),"Constraint");
return "Restraint";
}
DrawOn(Aim){
// Aim.Pwrap.style.zIndex="9";
this.Plist.splice(Aim.Sort,1)
let RLoc=Aim.Sort
Aim.Pwrap.style.transition='0s all'
this.LastPivot=this.Plist[this.Plist.length-1]
if((RLoc)<this.Plist.length){
this.NowHover=this.Plist[RLoc]
this.NowHover.Pwrap.style.transition="0s all"
this.NowHover.Pwrap.style.paddingTop="37px";
// this.Plist[this.Plist.length-1].style.paddingBottom="37px"
console.log(this.NowHover.Pwrap)
}else{
// console.log("InCounting")
if(this.LastPivot)this.LastPivot.Pwrap.style.transition="0s all";
// if(this.Plist.length>3)this.LastPivot=this.Plist[this.Plist.length-1]
}
if(this.LastPivot)this.LastPivot.Pwrap.style.paddingBottom='37px';
for (let i = 0; i < this.Plist.length; i++) {
// if(Aim.Pwrap==this.Plist[i].Pwrap){continue}
// Jefferish
this.Plist[i].Sort=i;
this.Plist[i].Pwrap.className="Pwrap";
}
}
DrawOff(Aim,Loc){
let loc=this.Plist.length-Loc+1
console.log(loc,Loc)
// console.log( Sherif
// might conversion compare system vector in our system completed;this.Controller.PhenomenaObj.length)
if(loc==this.Controller.PhenomenaObj.length){
console.log("Lastest")
φ("#Scene").appendChild(Aim.From.Div)
}else{
// console.log(Aim.From.Div)
console.log(Aim.Sort)
if(Loc==1&&Aim.Sort==0){
loc-=1;
}
console.log(φ("#Scene").childNodes[loc])
φ("#Scene").insertBefore(Aim.From.Div,φ("#Scene").childNodes[loc])
}
this.Plist.splice(Loc,0,Aim)
// console.log(this.Plist)
this.SyncP()
}
SyncP(){
for (let i = 0; i < this.Plist.length; i++) {
this.Plist[i].Pwrap.classList="";
this.Plist[i].Sort=i;
}
}
}
class Pivot{
constructor(Phenomena,timer){
this.Ignores=['Timer']
this.Timer=timer
this.Pline=document.createElement("div")
this.Pwrap=document.createElement("div")
this.Flag=document.createElement("div");
this.Pline.className="Pivot"
this.Pline.style.backgroundColor=Phenomena.Div.BgColor
this.ActionFrames=[];
switch(Phenomena.constructor){
case Texter:{
this.Flag.innerText="文"
}break;
case Voicer:{
this.Flag.innerText="音"
}break;
case Vision:{
this.Flag.innerText="视"
}break;
}
this.Pline.append(this.Flag)
this.Pwrap.className=""
this.Pwrap.append(this.Pline)
this.From=Phenomena
Phenomena.Pivot=this
this.Pwrap.addEventListener(on.start,(e)=>{
this.OnSelected(e)
})
}
OnSelected(e){
console.log('G233')
if(this.Timer.Chosen&&this.Timer.Chosen.From.Id==this.From.Id){
this.Pline.style.border='';
this.Timer.Chosen=null
}else{
this.Pline.style.border='3px solid #fffede';
if(this.Timer.Chosen){
this.Timer.Chosen.Pline.style.border='';
}
this.Timer.Chosen=this
}
}
Phover(f){
this.Pwrap[on.Hover]=(e)=>{
f(e)
}
}
Remove(){
this.Timer.RemovePivot(this)
removeElement(this.Pwrap)
}
Resurgence(){
if(this.Sort==0){
φ("#Scene").appendChild(this.From.Div)
}else{
let Cs=φ("#Scene").childNodes
console.log(this.Sort)
console.log(Cs.length)
φ("#Scene").insertBefore(this.From.Div,Cs[Cs.length-this.Sort])
}
this.Timer.ResurgencePivot(this)
}
RenderByFrame(){//Render pivot scence by Scale time Frame:)
if(this.ActionFrames.length>1){
let NowT=Math.floor(this.Timer.ScaleL()/2);
if(NowT>=this.ActionFrames[this.ActionFrames.length-1].Time){
this.ActionFrames[this.ActionFrames.length-1].Coordinated()
return;}
if(NowT<this.ActionFrames[0].Time){
// console.log('Frist!!!')
this.ActionFrames[0].Coordinated()
return;}
for (let i =0; i<this.ActionFrames.length-1; i++) {
if(NowT>this.ActionFrames[i].Time){
let Crate=(NowT-this.ActionFrames[i].Time)/this.ActionFrames[i].Duration();
this.ActionFrames[i].Coordinated(Crate);
}
}
}
}
}
class Frame{
constructor(aim,time){
this.Aim=aim;
this.Cpy=JsonClone(aim);
this.Time=Math.floor(time/2);
this.Sculpture=document.createElement('div');
this.Sculpture.innerText='¡';
this.Sculpture.style='font-size:39px;position:absolute;transform:translate(-50%,-43px);border:none;box-shadow:none';
this.Sculpture.style.left=time+'px';
console.log(this.Aim)
this.Aim.Pline.append(this.Sculpture)
this.Index=this.Aim.ActionFrames.push(this)-1
console.log(this.Index)
console.log(this.Aim.ActionFrames)
}
Next(){
if(this.Index+1<this.Aim.ActionFrames.length){
this.Aim.ActionFrames[this.Index+1].Run()
}
}
Run(){
let LastFrame=this.Aim.ActionFrames[this.Index-1],Transition=(this.Time-LastFrame.Time)*(100/3)
$(this.Aim.From.Div).animate({
height:this.Cpy.From.WH.H+'px',
width:this.Cpy.From.WH.W+'px',
left:this.Cpy.From.XY.X+'px',
top:this.Cpy.From.XY.Y+'px',},
Transition,'linear',
()=>{
this.Next();
}
)
}
Coordinated(Percent){
let Pc=Percent?Percent:1,NP=this.Cpy.From
console.log(this.Aim.From,1111111111111)
if(Pc!=1&&this.Aim.ActionFrames[this.Index+1]){
let Fp= this.Aim.ActionFrames[this.Index+1].Cpy.From
$(this.Aim.From.Div).css({
height:NP.WH.H+(Fp.WH.H-NP.WH.H)*Pc+'px',
width:NP.WH.W+(Fp.WH.W-NP.WH.W)*Pc+'px',
left:NP.XY.X+(Fp.XY.X-NP.XY.X)*Pc+'px',
top:NP.XY.Y+(Fp.XY.Y-NP.XY.Y)*Pc+'px',})
this.Aim.From.XY.X=NP.XY.X+(Fp.XY.X-NP.XY.X)*Pc
this.Aim.From.XY.Y=NP.XY.Y+(Fp.XY.Y-NP.XY.Y)*Pc
}else{
console.log(NP)
$(this.Aim.From.Div).css({
height:NP.WH.H+'px',
width:NP.WH.W+'px',
left:NP.XY.X+'px',
top:NP.XY.Y+'px',})
this.Aim.From.XY.X=NP.XY.X
this.Aim.From.XY.Y=NP.XY.Y
}
}
Duration(){
if(this.Index+1<this.Aim.ActionFrames.length){
return this.Aim.ActionFrames[this.Index+1].Time-this.Time
}
// 氦气盘
return 0
}
}
// vi /etc/ssh/sshd_config
// 时间动画转换Function,→重点 时间帧→动画帧,百分比转换
// renaissance
// 最近打算去焦作看望下姥爷,就问一下
// 时有天裳,不以人俱。
// 质布弥,量化敛。
// 对错只存在于人们对于世界有限而又可爱的认知。
//为HTMLDocument类的原型添加一个φ方法用于获取元素对象
HTMLDocument.prototype.φ = function (str) {
return this.querySelector(str);
};
function φ(str) {
return document.φ(str);
}
HTMLElement.prototype.φ= function(str){
return this.querySelector(str);
}
let ColorToolKit={
HSBToRGB: function (hsb) {
var rgb = {};
var h = Math.round(hsb.h);
var s = Math.round(hsb.s * 255 / 100);
var v = Math.round(hsb.b * 255 / 100);
if (s == 0) {
rgb.r = rgb.g = rgb.b = v;
} else {
var t1 = v;
var t2 = (255 - s) * v / 255;
var t3 = (t1 - t2) * (h % 60) / 60;
if (h == 360) h = 0;
// console.log(h)
if (h < 60) {
rgb.r = t1;
rgb.b = t2;
rgb.g = t2 + t3
} else if (h < 120) {
rgb.g = t1;
rgb.b = t2;
rgb.r = t1 - t3
} else if (h < 180) {
rgb.g = t1;
rgb.r = t2;
rgb.b = t2 + t3
} else if (h < 240) {
rgb.b = t1;
rgb.r = t2;
rgb.g = t1 - t3
} else if (h < 300) {
rgb.b = t1;
rgb.g = t2;
rgb.r = t2 + t3
} else if (h < 360) {
rgb.r = t1;
rgb.g = t2;
rgb.b = t1 - t3
} else {
rgb.r = 0;
rgb.g = 0;
rgb.b = 0
}
}
return {r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b)};
},
rgbToHex: function (rgb) {
var hex = [
rgb.r.toString(16),
rgb.g.toString(16),
rgb.b.toString(16)
];
hex.map(function (str, i) {
if (str.length == 1) {
hex[i] = '0' + str;
}
});
return hex.join('');
},
HsbToHex:function(hsb){
return this.rgbToHex(this.HSBToRGB(hsb))
},
hexToRgb: function (hex) {
var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
},
hexToHsb: function (hex) {
return this.rgbToHsb(this.hexToRgb(hex));
},
rgbToHsb: function (rgb) {
var hsb = {h: 0, s: 0, b: 0};
var min = Math.min(rgb.r, rgb.g, rgb.b);
var max = Math.max(rgb.r, rgb.g, rgb.b);
var delta = max - min;
hsb.b = max;
hsb.s = max != 0 ? 255 * delta / max : 0;
if (hsb.s != 0) {
if (rgb.r == max) hsb.h = (rgb.g - rgb.b) / delta;
else if (rgb.g == max) hsb.h = 2 + (rgb.b - rgb.r) / delta;
else hsb.h = 4 + (rgb.r - rgb.g) / delta;
} else hsb.h = -1;
hsb.h *= 60;
if (hsb.h < 0) hsb.h += 360;
hsb.s *= 100 / 255;
hsb.b *= 100 / 255;
return hsb;
},
HsvToRgb:function(arr) {
var h = arr.h ,s = arr.s, v = arr.b;
s = s / 100;
v = v / 100;
var r = 0, g = 0, b = 0;
var i = parseInt((h / 60) % 6);
var f = h / 60 - i;
var p = v * (1 - s);
var q = v * (1 - f * s);
var t = v * (1 - (1 - f) * s);
switch (i) {
case 0:
r = v; g = t; b = p;
break;
case 1:
r = q; g = v; b = p;
break;
case 2:
r = p; g = v; b = t;
break;
case 3:
r = p; g = q; b = v;
break;
case 4:
r = t; g = p; b = v;
break;
case 5:
r = v; g = p; b = q;
break;
default:
break;
}
r = parseInt(r * 255.0)
g = parseInt(g * 255.0)
b = parseInt(b * 255.0)
return {r, g, b};
},
RgbToHsv:function(rgb){
r=rgb.r/255;
g=rgb.g/255;
b=rgb.b/255;
var h,s,v;
var min=Math.min(r,g,b);
var max=v=Math.max(r,g,b);
var l=(min+max)/2;
var difference = max-min;
if(max==min){
h=0;
}else{
switch(max){
case r: h=(g-b)/difference+(g < b ? 6 : 0);break;
case g: h=2.0+(b-r)/difference;break;
case b: h=4.0+(r-g)/difference;break;
}
h=Math.round(h*60);
}
if(max==0){
s=0;
}else{
s=1-min/max;
}
s=Math.round(s*100);
v=Math.round(v*100);
return {h:h,s:s,v:v};
}
}
//弧形进度条触发事件重定义(适配移动端)
const on =
"ontouchstart" in document
? {
start: "touchstart",
move: "touchmove",
end: "touchend",
Start: "ontouchstart",
Move: "ontouchmove",
End: "ontouchend",
Hover:"ontouchmove",
}
: {
start: "mousedown",
move: "mousemove",
end: "mouseup",
Start: "onmousedown",
Move: "onmousemove",
End: "onmouseup",
Hover: "onmouseover",
};
//删除一个页面元素的方法
function removeElement(_element) {
if (!_element) return;
const _parentElement = _element.parentNode;
if (_parentElement) {
_parentElement.removeChild(_element);
}
}
// 获取视频封面的一个方法
const getVideoPreviewImg = (url, width, height) => {
width = width || 90;
height = height || 90;
/* 创建视频dom节点 */
let node = document.createElement("video");
// node.muted=true;
node.style.width = `${width}px`;
node.style.height = `${height}px`;
/* 自动播放 */
node.autoplay = true;
node.src = url;
node.volume=0.01;
node.currentTime=1;
node.setAttribute("crossOrigin", "anonymous");
/* 创建canvas节点 */
let canvasNode = document.createElement("canvas");
canvasNode.width = width;
canvasNode.height = height;
const canvasFill = canvasNode.getContext("2d");
canvasFill.drawImage(node, 0, 0, canvasNode.width, canvasNode.height);
/* 把视频变成canvas */
return new Promise(resolve => {
node.onplaying = () => {
setTimeout(() => {
canvasFill.drawImage(node, 0, 0, canvasNode.width, canvasNode.height);
/* 把canvas变成图片 */
const imgSrc = canvasNode.toDataURL("image/jpeg");
node.pause();
removeElement(node);
resolve(imgSrc);
}, 100);
};
});
};
//注册快捷键的类
class HotKeyHandler {
constructor(MainKey, SubKey, func) {
this.currentMainKey= null;
this.currentSubKey=SubKey;
this.func=func;
this.MKeycode = "";
switch (MainKey) {
case 0:
this.MKeycode = 17; //Ctrl
break;
case 1:
this.MKeycode = 16; //Shift
break;
case 2:
this.MKeycode = 18; //Alt
break;
}
document.addEventListener('keyup',(evnt)=>{
if(evnt.keyCode==this.MKeycode){
this.currentMainKey = null;
}
})
document.addEventListener('keydown',(evnt)=>{
//获取键值
var keyCode = evnt.keyCode;
var keyValue = String.fromCharCode(evnt.keyCode);
if (this.currentMainKey != null) {
if (keyValue == this.currentSubKey) {
// this.currentMainKey = null;
if (this.func != null)
this.func();
}
}
if (keyCode == this.MKeycode) this.currentMainKey = keyCode;
}
)
}
}
// 深度克隆一个对象Q
//深复制对象方法
function cloneObj (obj) {
var newObj = {};
if (obj instanceof Array) {
newObj = [];
}
for (var key in obj) {
var val = obj[key];
newObj[key] = typeof val === 'object' ? cloneObj(val): val;
}
return newObj;
}
//忽略方法的深复制对象
function JsonClone(obj){
Ignores=obj.Ignores?obj.Ignores:[];
var cache = [];
return JSON.parse(JSON.stringify(obj,function(key, value) {
if (Ignores.indexOf(key)!=-1){return;}
            if (typeof value === 'object' && value !== null) {
                if (cache.indexOf(value) !== -1) {
                    // Circular reference found, discard key
                    return;
                }
                // Store value in our collection
                cache.push(value);
            }
            return value;
        }));
}
function CoordinatE(e){
return e=isNaN(e.pageX)?e.targetTouches[0]:e
}
function overwrite_css(selector,properties){
// selector: String CSS Selector
// properties: Array of objects
var new_css = selector + '{';
for(i=0;i<properties.length;i++){
new_css += properties[i].p + ':' + properties[i].v + ';';
}
new_css += '}';
φ('body').appendChild('<style>' + new_css + '</style>');
}
function PrefixInteger(num, length,Slice) {
if(Slice){
return (Array(length).join('0') + num).slice(-length);
}else{
return (Array(length).join('0') + num).slice(Number((""+num)[0])>0&&(""+num).length>length?-(""+num).length:-length);
}
}
//var { ...obj2 } = obj 这是一个扩展运算符浅层拷贝
/**
* 时间轴动画封装
* @param obj 移动对象
* @param target 移动目标位置
* @param timeout 每次移动间隔
*/
// function animate(obj, target, timeout,callback) {
// // 清空已有的定时器
// clearInterval(obj.timer);
// // 为每个对象开辟一个定时器
// obj.timer = setInterval(function () {
// // 移动步长
// var step = (target - obj.offsetLeft) / 10;
// // 判断是否为前进还是后退
// step = step > 0? Math.ceil(step): Math.floor(step);
// console.log('step = ' + step);
// if (obj.offsetLeft == target) {
// clearInterval(obj.timer);
// // 改变状态
// if (callback) {
// callback();
// }
// }
// obj.style.left = obj.offsetLeft + step + 'px';
// },timeout)
// }代理人战争也不过是宗主国认同了代理的思想
// // 有思想就会有财富,
// server {
// listen 80;
// server_name pay.jueqing.com;
// # 如果用户访问 http://pay.jueqing.com,会重定向到 https://pay.jueqing.com
// return 301 https://$server_name$request_uri;
// }
// server {
// listen 443 ssl;
// server_name pay.jueqing.com;
// # SSL 证书配置
// ssl_certificate /psycheEpic/https_auth/CA/pay.jueqing.chat.key;
// ssl_certificate_key /psycheEpic/https_auth/CA/pay.jueqing.chat.pem;
// # 可以添加其他 SSL 配置来提高安全性,例如:
// ssl_protocols TLSv1.2 TLSv1.3;
// ssl_ciphers HIGH:!aNULL:!MD5;
// # 定义根位置
// location / {
// proxy_pass http://127.0.0.1:9999;
// # 以下配置可以根据需要进行调整
// proxy_set_header Host $host;
// proxy_set_header X-Real-IP $remote_addr;
// proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
// proxy_set_header X-Forwarded-Proto $scheme;
// }
// # 可选:为静态资源的位置提供优化配置
// # location /static/ {
// # alias /path/to/static/files/;
// # }
// # 其他位置定义
// # location /some/other/location {
// # proxy_pass http://some_other_backend;
// # }
// }
\ No newline at end of file
// 这是一个立即执行函数(自调用函数)
(function () {
var util = {
css: function (elem, obj) {
for (var i in obj) { //for ...in 循环
elem.style[i] = obj[i];
}
},
hasClass: function (elem, classN) {
var className = elem.getAttribute("class"); //使用元素的 getAttribute() 方法可以读取指定属性的值。参数为属性名
return className.indexOf(classN) != -1; //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的索引位置。范围0-length-1,不存在返回-1
}
};
Colorpicker.prototype = {
init(opt) {
let {el, initColor = "", allMode = ['hex', 'rgb'], color = '',clickfun} = opt;
var elem = document.getElementById(el);
if (!(elem && elem.nodeType && elem.nodeType === 1)) {
throw `Colorpicker: not found ID:${el} HTMLElement,not ${{}.toString.call(el)}`;
}
this.Opt = {
...opt,
el,
initColor,
allMode,
color
}
this.clickfun=clickfun
this.bindElem = elem; // 绑定的元素
this.elem_wrap = null; // 最外层容器
this.fixedBg = null; // 拾色器后面固定定位的透明div 用于点击隐藏拾色器
this.elem_colorPancel = null; // 色彩面板
this.elem_picker = null; // 拾色器色块按钮
this.elem_barPicker1 = null; // 颜色条
this.elem_hexInput = null; // 显示hex的表单
this.elem_showColor = null; // 显示当前颜色
this.elem_showModeBtn = null; // 切换输入框模式按钮
this.elem_inputWrap = null; // 输入框外层容器
this.pancelLeft = 0;
this.pancelTop = 0;
this.downX = 0;
this.downY = 0;
this.moveX = 0;
this.moveY = 0;
this.pointLeft = 0;
this.pointTop = 0;
this.current_mode = 'hex'; // input框当前的模式
this.rgba = {r: 0, g: 0, b: 0, a: 1};
this.hsb = {h: 0, s: 100, b: 100};
var _this = this, rgb = initColor.slice(4, -1).split(",");
this.rgba.r = parseInt(rgb[0]);
this.rgba.g = parseInt(rgb[1]);
this.rgba.b = parseInt(rgb[2]);
var body = document.getElementsByTagName("body")[0],
div = document.createElement("div");
div.innerHTML = this.render();
body.appendChild(div);
this.elem_wrap = div;
this.fixedBg = div.children[0];
this.elem_colorPancel = div.getElementsByClassName("color-pancel")[0];
this.pancel_width = this.elem_colorPancel.offsetWidth;
this.pancel_height = this.elem_colorPancel.offsetHeight;
this.elem_picker = div.getElementsByClassName("pickerBtn")[0];
this.elem_colorPalette = div.getElementsByClassName("color-palette")[0];
this.elem_showColor = div.getElementsByClassName("colorpicker-showColor")[0];
this.elem_barPicker1 = div.getElementsByClassName("colorBar-color-picker")[0];
this.AlphaPanel= div.getElementsByClassName("colorBar-alpha-picker")[0];
/* this.elem_barPicker2 = div.getElementsByClassName("colorBar-opacity-picker")[0]; */
this.elem_hexInput = div.getElementsByClassName("colorpicker-hexInput")[0];
this.elem_showModeBtn = div.getElementsByClassName("colorpicker-showModeBtn")[0];
this.elem_inputWrap = div.getElementsByClassName("colorpicker-inputWrap")[0];
/* this.elem_opacityPancel = this.elem_barPicker2.parentNode.parentNode.children[1]; */
// var rect = this.bindElem.getBoundingClientRect();
var elem = this.bindElem;
var top = elem.offsetTop;
var left = elem.offsetLeft;
while (elem.offsetParent) {
top += elem.offsetParent["offsetTop"];
left += elem.offsetParent["offsetLeft"];
elem = elem.offsetParent;
}
this.pancelLeft = left + this.elem_colorPalette.clientWidth;
this.pancelTop = top + this.bindElem.offsetHeight;
util.css(div, {
"position": "absolute",
"z-index": 2,
"display": 'none',
"left": left + "px",
"top": top + this.bindElem.offsetHeight + "px"
});
this.bindMove(this.elem_colorPancel, this.setPosition, true);
this.bindMove(this.elem_barPicker1.parentNode, this.setBar, false);
// this.bindMove();
this.bindMove(this.AlphaPanel.parentNode,this.setBar,false);
this.bindElem.onclick=function (e) {
if(_this.clickfun){_this.clickfun()}
_this.show(e);
}
this.fixedBg.addEventListener("click", function (e) {
_this.hide();
}, false)
this.elem_showModeBtn.addEventListener("click", function () {
_this.switch_current_mode();
}, false)
this.elem_wrap.addEventListener("input", function (e) {
var target = e.target, value = target.value;
_this.setColorByInput(value);
}, false);
this.elem_colorPalette.addEventListener("click", function (e) {
if (e.target.tagName.toLocaleLowerCase() == "p") {
let colorStr = e.target.style.background;
let rgb = colorStr.slice(4, -1).split(",");
let rgba = {
r: parseInt(rgb[0]),
g: parseInt(rgb[1]),
b: parseInt(rgb[2])
}
switch (_this.current_mode) {
case "hex":
_this.setColorByInput("#" + _this.rgbToHex(rgba))
break;
case 'rgb':
let inputs = _this.elem_wrap.getElementsByTagName("input")
inputs[0].value = rgba.r;
inputs[1].value = rgba.g;
inputs[2].value = rgba.b;
_this.setColorByInput(colorStr)
/* _this.hsb = _this.rgbToHsb(rgba); */
break;
}
}
}, false);
(color != '' && this.setColorByInput(color,true));
},
render: function () {
var tpl =
`<div style="position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px;"></div>
<div style="position: inherit;z-index: 100;display: flex;box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 2px, rgba(0, 0, 0, 0.3) 0px 4px 8px;">
<div style='width:180px;padding:10px;background: #f9f9f9;display: flex;flex-flow: row wrap;align-content: space-around;justify-content: space-around;' class='color-palette'>
${this.getPaletteColorsItem()}
</div>
<div class="colorpicker-panel" style="background: rgb(255, 255, 255);box-sizing: initial; width: 225px; font-family: Menlo;">
<div style="width: 100%; padding-bottom: 55%; position: relative; border-radius: 2px 2px 0px 0px; overflow: hidden;">
<div class="color-pancel" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: rgb(${this.rgba.r},${this.rgba.g},${this.rgba.b},${this.rgba.a})">
<style>
.saturation-white {background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));background: linear-gradient(to right, #fff, rgba(255,255,255,0));}
.saturation-black {background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));background: linear-gradient(to top, #000, rgba(0,0,0,0));}
</style>
<div class="saturation-white" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px;">
<div class="saturation-black" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px;">
</div>
<div class="pickerBtn" style="position: absolute; top: 0%; left: 100%; cursor: default;">
<div style="width: 12px; height: 12px; border-radius: 6px; box-shadow: rgb(255, 255, 255) 0px 0px 0px 1px inset; transform: translate(-6px, -6px);">
</div>
</div>
</div>
</div>
</div>
<div style="padding: 0 16px 20px;">
<div class="flexbox-fix" style="display: flex;align-items: center;height: 40px;">
<div style="width: 32px;">
<div style="width: 16px; height: 16px; border-radius: 8px; position: relative; overflow: hidden;">
<div class="colorpicker-showColor" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; border-radius: 8px; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 1px inset; background:rgb(${this.rgba.r},${this.rgba.g},${this.rgba.b},${this.rgba.a}); z-index: 2;"></div>
<div class="" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==&quot;) left center;"></div>
</div>
</div>
<div style="-webkit-box-flex: 1; flex: 1 1 0%;"><div style="height: 10px; position: relative;">
<div style="position: absolute; top: 0px;right: 0px; bottom: 0px; left: 0px;">
<div class="hue-horizontal" style="padding: 0px 2px; position: relative; height: 100%;">
<style>
.hue-horizontal {background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);background: -webkit-linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);border-radius:6px;}
.hue-vertical {background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,#0ff 50%, #00f 67%, #f0f 83%, #f00 100%);background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,#0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);border-radius:6px;}
</style>
<div class="colorBar-color-picker" style="position: absolute; left: 0%;">
<div style="width: 12px; height: 12px; border-radius: 6px; transform: translate(-6px, -1px); background-color: rgb(248, 248, 248); box-shadow: rgba(0, 0, 0, 0.37) 0px 1px 4px 0px;">
</div>
</div>
</div>
<div class="Alpha-horizontal" style="padding: 0px 2px; position: relative; margin-top:3px; height: 100%;">
<style>
.Alpha-horizontal {background-image:linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)), url('./img/背景格.png');background-repeat:repeat-x;border-radius:6px; border:1px solid black;}
.Alpha-vertical {background-image:linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)), url('./img/背景格.png');background-repeat:repeat-x;border-radius:6px;border:1px solid black;}
</style>
<div class="colorBar-alpha-picker" style="position: absolute; left: 100%;">
<div style="width: 12px; height: 12px; border-radius: 6px; transform: translate(-6px, -1px); background-color: rgb(248, 248, 248); box-shadow: rgba(0, 0, 0, 0.37) 0px 1px 4px 0px;">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="flexbox-fix" style="display: flex;">
<div class="flexbox-fix colorpicker-inputWrap" style="-webkit-box-flex: 1; flex: 1 1 0%; display: flex; margin-left: -6px;">
${this.getInputTpl()}
</div>
<div class="colorpicker-showModeBtn" style="width: 32px; text-align: right; position: relative;">
<div style="margin-right: -4px; cursor: pointer; position: relative;">
<svg viewBox="0 0 24 24" style="width: 24px; height: 24px; border: 1px solid transparent; border-radius: 5px;"><path fill="#333" d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"></path><path fill="#333" d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"></path></svg>
</div>
</div>
</div>
</div>
</div>
</div>`;
return tpl;
},
getInputTpl: function () {
var current_mode_html = "";
switch (this.current_mode) {
case 'hex':
var hex = "#" + this.rgbToHex(this.HSBToRGB(this.hsb));
current_mode_html += `
<div style="padding-left: 6px; width: 100%;">
<div style="position: relative;">
<input class="colorpicker-hexInput" value="${hex}" spellcheck="false" style="font-size: 11px; color: rgb(51, 51, 51); width: 100%; border-radius: 2px; border: none; box-shadow: rgb(218, 218, 218) 0px 0px 0px 1px inset; height: 21px; text-align: center;">
<span style="text-transform: uppercase; font-size: 11px; line-height: 11px; color: rgb(150, 150, 150); text-align: center; display: block; margin-top: 12px;">hex</span>
</div>
</div>`;
break;
case 'rgb':
for (var i = 0; i < 3; i++) {
current_mode_html +=
`<div style="padding-left: 6px; width: 100%;">
<div style="position: relative;">
<input class="colorpicker-hexInput" value="${this.rgba['rgb'[i]]}" spellcheck="false" style="font-size: 11px; color: rgb(51, 51, 51); width: 100%; border-radius: 2px; border: none; box-shadow: rgb(218, 218, 218) 0px 0px 0px 1px inset; height: 21px; text-align: center;">
<span style="text-transform: uppercase; font-size: 11px; line-height: 11px; color: rgb(150, 150, 150); text-align: center; display: block; margin-top: 12px;">${'rgb'[i]}</span>
</div>
</div>`;
}
default:
}
return current_mode_html;
},
getPaletteColorsItem: function () {
let str = '';
let palette = ["rgb(0, 0, 0)", "rgb(67, 67, 67)", "rgb(102, 102, 102)", "rgb(204, 204, 204)", "rgb(217, 217, 217)", "rgb(255, 255, 255)",
"rgb(152, 0, 0)", "rgb(255, 0, 0)", "rgb(255, 153, 0)", "rgb(255, 255, 0)", "rgb(0, 255, 0)", "rgb(0, 255, 255)",
"rgb(74, 134, 232)", "rgb(0, 0, 255)", "rgb(153, 0, 255)", "rgb(255, 0, 255)", "rgb(230, 184, 175)", "rgb(244, 204, 204)",
"rgb(252, 229, 205)", "rgb(255, 242, 204)", "rgb(217, 234, 211)", "rgb(208, 224, 227)", "rgb(201, 218, 248)", "rgb(207, 226, 243)",
"rgb(217, 210, 233)", "rgb(234, 209, 220)", "rgb(221, 126, 107)", "rgb(234, 153, 153)", "rgb(249, 203, 156)", "rgb(255, 229, 153)",
"rgb(182, 215, 168)", "rgb(162, 196, 201)", "rgb(164, 194, 244)", "rgb(159, 197, 232)", "rgb(180, 167, 214)"]
palette.forEach(item => str += `<p style='width:20px;height:20px;background:${item};margin:0 5px;border: solid 1px #d0d0d0;'></p>`)
return str;
},
setPosition(x, y) {
var LEFT = parseInt(x - this.pancelLeft),
TOP = parseInt(y - this.pancelTop);
this.pointLeft = Math.max(0, Math.min(LEFT, this.pancel_width));
this.pointTop = Math.max(0, Math.min(TOP, this.pancel_height));
util.css(this.elem_picker, {
left: this.pointLeft + "px",
top: this.pointTop + "px"
})
this.hsb.s = parseInt(100 * this.pointLeft / this.pancel_width);
this.hsb.b = parseInt(100 * (this.pancel_height - this.pointTop) / this.pancel_height);
this.setShowColor();
this.setValue(this.rgba);
},
setBar: function (elem, x) {
var elem_bar = elem.getElementsByTagName("div")[0],
rect = elem.getBoundingClientRect(),
elem_width = elem.offsetWidth,
X = Math.max(0, Math.min(x - rect.x, elem_width));
// console.log(X)
if (elem_bar === this.elem_barPicker1) {
util.css(elem_bar, {
left: X + "px"
});
this.hsb.h = parseInt(360 * X / elem_width);
} else {
util.css(elem_bar, {
left: X + "px"
});
this.rgba.a = X / elem_width;
// console.log(this.rgba.a)
}
this.setPancelColor(this.hsb.h);
this.setShowColor();
this.setValue(this.rgba);
},
setPancelColor: function (h) {
var rgb = this.HSBToRGB({h: h, s: 100, b: 100});
util.css(this.elem_colorPancel, {
background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + this.rgba.a + ')'
});
},
setShowColor: function () {
var rgb = this.HSBToRGB(this.hsb);
this.rgba.r = rgb.r;
this.rgba.g = rgb.g;
this.rgba.b = rgb.b;
util.css(this.elem_showColor, {
background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + this.rgba.a + ')'
});
},
setValue: function (rgb) {
var hex = "#" + this.rgbToHex(rgb);
this.elem_inputWrap.innerHTML = this.getInputTpl();
// console.log(hex)
// this.elem_hexInput.value=hex;
this.Opt.change(this.bindElem, hex);
},
setColorByInput: function (value,Init) {
var _this = this
switch (this.current_mode) {
case "hex":
value = value.slice(1);
// console.log(value)
if (value.length == 3) {
value = '#' + value[0] + value[0] + value[1] + value[1] + value[2] + value[2];
this.hsb = this.hexToHsb(value);
} else if (value.length == 6) {
this.hsb = this.hexToHsb(value);
} else if(value.length==8){
let Alpha=value.slice(-2);
this.rgba.a=parseInt(Alpha, 16)/255
// console.log(this.rgba)
value='#'+value.slice(0,6)
// console.log(value);
this.hsb = this.hexToHsb(value);
} else if(value.length==9){
value='#'+value.slice(0,6)
// Alpha=(this.rgba.a*255).toString(16)
this.hsb=this.hexToHsb(value);
}
break;
case 'rgb':
var inputs = this.elem_wrap.getElementsByTagName("input"),
rgb = {
r: inputs[0].value ? parseInt(inputs[0].value) : 0,
g: inputs[1].value ? parseInt(inputs[1].value) : 0,
b: inputs[2].value ? parseInt(inputs[2].value) : 0
};
this.hsb = this.rgbToHsb(rgb);
}
// +Alpha?Alpha:""
let hex=(this.changeViewByHsb())
if(!Init){this.Opt.change(this.bindElem,hex);}
// this.changeViewByHsb()
},
changeViewByHsb: function () {
this.pointLeft = parseInt(this.hsb.s * this.pancel_width / 100);
this.pointTop = parseInt((100 - this.hsb.b) * this.pancel_height / 100);
util.css(this.elem_picker, {
left: this.pointLeft + "px",
top: this.pointTop + "px"
});
this.setPancelColor(this.hsb.h);
this.setShowColor();
util.css(this.elem_barPicker1, {
left: this.hsb.h / 360 * (this.elem_barPicker1.parentNode.offsetWidth) + "px"
});
var hex = '#' + this.rgbToHex(this.HSBToRGB(this.hsb));
// console.log(hex)
this.elem_hexInput.value=hex;
// console.log(this.rgba.a)
let X=Math.round(this.rgba.a*161)
util.css(this.AlphaPanel, {
left: X + "px"
});
// console.log(this.AlphaPanel)
// this.Opt.change(this.bindElem, hex);
return hex
},
switch_current_mode: function () {
this.current_mode = this.current_mode == 'hex' ? 'rgb' : 'hex';
this.elem_inputWrap.innerHTML = this.getInputTpl();
},
bindMove: function (elem, fn, bool) {
var _this = this;
elem.addEventListener("mousedown", function (e) {
//阻止冒泡事件
e.stopPropagation();
_this.downX = e.pageX;
_this.downY = e.pageY;
bool ? fn.call(_this, _this.downX, _this.downY) : fn.call(_this, elem, _this.downX, _this.downY);//bool send Touch Elem Obj or not
document.addEventListener("mousemove", mousemove, false);
function mousemove(e) {
_this.moveX = e.pageX;
_this.moveY = e.pageY;
bool ? fn.call(_this, _this.moveX, _this.moveY) : fn.call(_this, elem, _this.moveX, _this.moveY);
e.preventDefault();
}
document.addEventListener("mouseup", mouseup, false);
function mouseup(e) {
document.removeEventListener("mousemove", mousemove, false)
document.removeEventListener("mouseup", mouseup, false)
}
}, false);
},
show: function (e) {
this.pancelLeft = e.pageX + 200
this.pancelTop = e.pageY
util.css(this.elem_wrap, {
left: e.pageX + "px",
top: e.pageY + "px"
})
util.css(this.elem_wrap, {
"display": "block"
})
},
// 鼠标拖动拾色器事件
moveColor :function(){
var clorDiv=document.getElementsByClassName("color-palette")[0];
this.elem_wrap.onmousedown= (e) => {
//调色板的偏移量:鼠标.pageX - 元素.offsetLeft
// 鼠标.pageY - 元素.offsetTop
var x =e.clientX-this.elem_wrap.offsetLeft;
var y =e.clientY-this.elem_wrap.offsetTop;
//阻止事件冒泡
e.stopPropagation();
document.onmousemove=(evn)=>{
//拾色器位置
var left = evn.clientX - x;
var top = evn.clientY - y;
this.elem_wrap.style.left= left+ 'px';
this.elem_wrap.style.top = top+ 'px';
// 调色板的位置
this.pancelLeft=this.elem_wrap.offsetLeft+200;
this.pancelTop=this.elem_wrap.offsetTop;
}
document.onmouseup = function(){
//当鼠标松开时,被拖拽元素固定在当前位置onmouseup
//取消document的onmousemove事件
document.onmousemove = null;
//取消document的onmouseup事件
document.onmouseup = null;
this.moveColor= null;
};
}
},
hide: function () {
util.css(this.elem_wrap, {
"display": "none"
})
},
HSBToRGB: function (hsb) {
var rgb = {};
var h = Math.round(hsb.h);
var s = Math.round(hsb.s * 255 / 100);
var v = Math.round(hsb.b * 255 / 100);
if (s == 0) {
rgb.r = rgb.g = rgb.b = v;
} else {
var t1 = v;
var t2 = (255 - s) * v / 255;
var t3 = (t1 - t2) * (h % 60) / 60;
if (h == 360) h = 0;
if (h < 60) {
rgb.r = t1;
rgb.b = t2;
rgb.g = t2 + t3
} else if (h < 120) {
rgb.g = t1;
rgb.b = t2;
rgb.r = t1 - t3
} else if (h < 180) {
rgb.g = t1;
rgb.r = t2;
rgb.b = t2 + t3
} else if (h < 240) {
rgb.b = t1;
rgb.r = t2;
rgb.g = t1 - t3
} else if (h < 300) {
rgb.b = t1;
rgb.g = t2;
rgb.r = t2 + t3
} else if (h < 360) {
rgb.r = t1;
rgb.g = t2;
rgb.b = t1 - t3
} else {
rgb.r = 0;
rgb.g = 0;
rgb.b = 0
}
}
return {r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b),a:this.rgba.a};
},
rgbToHex: function (rgb) {
// console.log(rgb)
var hex = [
rgb.r.toString(16),
rgb.g.toString(16),
rgb.b.toString(16),
Math.round((rgb.a*255)).toString(16),
];
hex.map(function (str, i) {
if (str.length == 1) {
hex[i] = '0' + str;
}
});
return hex.join('');
},
hexToRgb: function (hex) {
var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
},
hexToHsb: function (hex) {
return this.rgbToHsb(this.hexToRgb(hex));
},
rgbToHsb: function (rgb) {
var hsb = {h: 0, s: 0, b: 0};
var min = Math.min(rgb.r, rgb.g, rgb.b);
var max = Math.max(rgb.r, rgb.g, rgb.b);
var delta = max - min;
hsb.b = max;
hsb.s = max != 0 ? 255 * delta / max : 0;
if (hsb.s != 0) {
if (rgb.r == max) hsb.h = (rgb.g - rgb.b) / delta;
else if (rgb.g == max) hsb.h = 2 + (rgb.b - rgb.r) / delta;
else hsb.h = 4 + (rgb.r - rgb.g) / delta;
} else hsb.h = -1;
hsb.h *= 60;
if (hsb.h < 0) hsb.h += 360;
hsb.s *= 100 / 255;
hsb.b *= 100 / 255;
return hsb;
}
}
function Colorpicker(opt) {
if (this === window) throw `Colorpicker: Can't call a function directly`;
this.init(opt);
this.moveColor();
}
Colorpicker.create = function (opt) {
return new Colorpicker(opt)
}
window.Colorpicker = Colorpicker;
})()
//浮动菜单类
class Container {
constructor() {
this.wrapper = document.getElementById("wrapper");
this.second = document.getElementById("second");
this.Roller = document.getElementsByClassName("Roller");
this.r1 = document.getElementsByClassName("r1");
this.r2 = document.getElementsByClassName("r2");
this.RLayer = document.getElementById("Layer");
this.RYuan = document.getElementById("Yuan");
this.RCur = document.getElementById("Cur");
//背景的三个选项
for (let i = 0; i < this.r1.length; i++) {
this.r1[i].onmouseover = () => {
this.Roller[0].style.top = "-44px";
this.Roller[0].style.transform = "translate(-50%, 0) rotate(380deg)";
this.Roller[0].style.transformOrigin = "80px 224px";
this.Roller[0].style.opacity = "1";
this.Roller[1].style.top = "-44px";
this.Roller[1].style.transform = "translate(-50%, 0) rotate(420deg)";
this.Roller[1].style.transformOrigin = "80px 224px";
this.Roller[1].style.opacity = "1";
this.Roller[2].style.top = "-44px";
this.Roller[2].style.transform = "translate(-50%, 0) rotate(460deg)";
this.Roller[2].style.transformOrigin = "80px 224px";
this.Roller[2].style.opacity = "1";
document.getElementById("i3").style.background =
"url('" + "./img/盘轨背景.png" + "')";
};
this.r1[i].onmouseout = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨1.png" + "')";
};
this.second.addEventListener("mouseover", () => {
for (let i = 0; i < this.r1.length; i++) {
this.Roller[i].style.top = "25px";
this.Roller[i].style.transform = "translate(-50%, 0) rotate(0deg)";
this.Roller[i].style.transformOrigin = "80px 205px";
this.Roller[i].style.opacity = "0";
}
});
}
//相型的三个选项
for (let i = 0; i < this.r2.length; i++) {
this.r2[i].onmouseover = () => {
this.Roller[3].style.top = "-44px";
this.Roller[3].style.transform = "translate(-50%, 0) rotate(260deg)";
this.Roller[3].style.transformOrigin = "80px 224px";
this.Roller[3].style.opacity = "1";
this.Roller[4].style.top = "-44px";
this.Roller[4].style.transform = "translate(-50%, 0) rotate(300deg)";
this.Roller[4].style.transformOrigin = "80px 224px";
this.Roller[4].style.opacity = "1";
this.Roller[5].style.top = "-44px";
this.Roller[5].style.transform = "translate(-50%, 0) rotate(340deg)";
this.Roller[5].style.transformOrigin = "80px 224px";
this.Roller[5].style.opacity = "1";
document.getElementById("i3").style.background =
"url('" + "./img/盘轨相型.png" + "')";
};
this.r2[i].onmouseout = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨1.png" + "')";
};
this.second.addEventListener("mouseover", () => {
for (let i = 3; i < 6; i++) {
this.Roller[i].style.top = "25px";
this.Roller[i].style.transform = "translate(-50%, 0) rotate(0deg)";
this.Roller[i].style.transformOrigin = "80px 205px";
this.Roller[i].style.opacity = "0";
}
});
}
//幕的选项
this.RCur.onmouseover = () => {
this.Roller[6].style.top = "-44px";
this.Roller[6].style.transform = "translate(-50%, 0) rotate(220deg)";
this.Roller[6].style.transformOrigin = "80px 224px";
this.Roller[6].style.opacity = "1";
document.getElementById("i3").style.background =
"url('" + "./img/盘轨幕.png" + "')";
};
this.RCur.onmouseout = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨1.png" + "')";
};
this.second.addEventListener("mouseover", () => {
this.Roller[6].style.top = "25px";
this.Roller[6].style.transform = "translate(-50%, 0) rotate(0deg)";
this.Roller[6].style.transformOrigin = "80px 205px";
this.Roller[6].style.opacity = "0";
});
// 缘的选项
this.RYuan.onmouseover = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨缘.png" + "')";
};
this.RYuan.onmouseout = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨1.png" + "')";
};
// 隐的选项
this.RLayer.onmouseover = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨隐.png" + "')";
};
this.RLayer.onmouseout = () => {
document.getElementById("i3").style.background =
"url('" + "./img/盘轨1.png" + "')";
};
//阻止冒泡事件
this.second.onmousedown = (event) => {
event.stopPropagation();
this.wrapper.style.display = "none";
};
//阻止冒泡事件
this.wrapper.onmousedown = (event) => {
event.stopPropagation();
};
}
}
const container = new Container();
//base64Encode数组转64字符
function base64Encode(input) {
var rv;
rv = encodeURIComponent(input);
rv = unescape(rv);
rv = window.btoa(rv);
return rv;
}
function arrayBufferToBase64( buffer ) {
var binary = '';
var bytes = new Uint8Array( buffer );
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode( bytes[ i ] );
}
return window.btoa( binary );
}
//获取父元素的偏移量的方法
function GetAbsoluteXY(obj) {
var top = obj.offsetTop;
var left = obj.offsetLeft;
while (obj.offsetParent) {
top += obj.offsetParent["offsetTop"];
left += obj.offsetParent["offsetLeft"];
obj = obj.offsetParent;
}
return {
x: left,
y: top,
};
}
function getXY(e, obj) {
var et = e.touches ? e.touches[0] : e;
var x = et.clientX;
var y = et.clientY;
var wapperobj = document.getElementById("wrapper");
return {
x:
x -
wapperobj.offsetLeft +
(document.body.scrollLeft || document.documentElement.scrollLeft),
y:
y -
wapperobj.offsetTop +
(document.body.scrollTop || document.documentElement.scrollTop),
};
}
//圆角滑块类
class RadiusSlider {
constructor(ArcL) {
//ArcL计量单位 pi
//文相Div圆角弧度大小设计
let HalfArc = ArcL / 2,
DrawStart = 0.5 - HalfArc / 2,
DrawEnd = 0.5 + HalfArc / 2,
StartArc = Math.PI * (3 / 2 - HalfArc),
EndArc = Math.PI * (3 / 2 + HalfArc);
this.slider = document.getElementById("canvasId");
this.slider.ctx = this.slider.getContext("2d");
this.slider.ox = 225;
this.slider.oy = 225;
this.slider.or = 220;
this.slider.br = 8;
this.slider.moveFlag = false;
this.slider.offset = function offset(r, d) {
//根据弧度与距离计算偏移坐标
return { x: -Math.sin(r) * d, y: Math.cos(r) * d };
};
this.slider.Draw = (n) => {
this.slider.ctx.clearRect(0, 0, this.slider.width, this.slider.width); //使用clearRect(x,y,width,height)在画布中清除一个矩形;参数:x,Y:要清除的矩形区域的坐标;矩形的宽和高
this.slider.ctx.strokeStyle = "#b6b0ff";
this.slider.ctx.lineWidth = 5;
this.slider.ctx.beginPath();
// this.slider.ctx.arc( this.slider.ox, this.slider.oy,this.slider.or,1.25*Math.PI,1.75*Math.PI,false);//1/4圆
this.slider.ctx.arc(
this.slider.ox,
this.slider.oy,
this.slider.or,
StartArc,
EndArc,
false
); //2/9圆弧
this.slider.ctx.stroke();
this.slider.ctx.strokeStyle = "#69f";
this.slider.ctx.lineWidth = 5;
this.slider.ctx.beginPath();
this.slider.ctx.arc(
this.slider.ox,
this.slider.oy,
this.slider.or,
(2 * n + 0.5) * Math.PI,
(2 * n + 0.5) * Math.PI,
false
);
this.slider.ctx.stroke();
this.slider.ctx.fillStyle = "#69f";
this.slider.ctx.font = "bold 18px 微软雅黑";
// this.slider.ctx.textAlign = "center";
this.slider.ctx.textBaseline = "middle";
this.value = Math.round(((n - DrawStart) / HalfArc) * 100) + "%";
if (this.onChangeCanvas) {
this.onChangeCanvas(this.value);
}
this.slider.ctx.fillText(this.value, 200, 60);
this.slider.ctx.fillStyle = "#00f";
this.slider.ctx.beginPath();
let d = this.slider.offset(n * 2 * Math.PI, this.slider.or);
this.slider.ctx.arc(
this.slider.ox + d.x,
this.slider.oy + d.y,
this.slider.br,
0,
2 * Math.PI,
true
); //画圆球
this.slider.ctx.fill();
};
//逆向画出对应的百分比的弧
this.slider.DrawPer = (percent) => {
let n = (percent.split("%")[0] / 100) * HalfArc + DrawStart;
this.slider.Draw(n);
};
this.slider.addEventListener(
on.start,
(e) => {
this.slider.moveFlag = true;
},
false
);
this.slider.addEventListener(
on.move,
(e) => {
//判断并解决由于父div旋转带来的鼠标的坐标偏移问题
if (this.slider.moveFlag) {
let k = getXY(e, this.slider);
let x1 = k.x - this.slider.ox;
let y1 = this.slider.oy - k.y;
let R1 = x1 * x1 + y1 * y1;
let r1 = Math.pow(R1, 0.5);
let deg = Math.asin(y1 / r1);
let Deg = (Math.PI / 180) * 100;
let Sumdeg = deg + Deg;
let X = r1 * Math.cos(Sumdeg);
let Y = r1 * Math.sin(Sumdeg);
let r = Math.atan2(X, Y);
let hd = (Math.PI + r) / (2 * Math.PI);
// 半圆的滑动范围判断
if (hd <= DrawEnd && hd >= DrawStart) {
this.slider.Draw(hd);
}
}
},
false
);
this.slider.addEventListener(
on.end,
(e) => {
this.slider.moveFlag = false;
},
false
);
this.onChangeCanvas = null;
this.slider.Draw(DrawStart);
}
}
//控制器类
class Controller {
constructor() {
this.editState = false;
this.menuTarget = null;
this.RadiusSlider = new RadiusSlider(1 / 5);
this.opacitySlider = null;
this.HotKeyEvent=null;
this.CreatStatus=false;
this.moveStatus=false;
this.History=[];//撤销操作存放历史数据
this.PhenomenaObj=[];//用于存储相型对象的数组
this.Recovery=[];//恢复操作存放数据
//1.点击开始创建
this.start();
//2.鼠标抬起div创建完成
this.createFinish();
//3.菜单控制事件集合
this.menuEvent();
//4.定义拖出的div的背景图片选择
this.selectImgFile();
//5.隐进度条
this.LayerSlider();
//6.幕的选中功能s
this.curtain();
//7.全屏功能
this.fullScreen();
//点击菜单的音相按钮创建音相对象
this.clickAudio();
//点击菜单的文相按钮创建文相对象
this.clickTexer();
//点击菜单的视相按钮创建视相对象
this.clickVision();
//ctrl+Z或ctrl+Y撤销和恢复快捷键
this.hotkeys();
//时间轴函数
// this.timerHandle();
this.Timer=new Timer(30,this)
}
//注册热键
hotkeys(){
//撤销事件
this.RevokeEvent=new HotKeyHandler(0,'Z',()=>{
if(this.History.length==0){ //判断撤销数组中有没有数据
return;
}
let lastAction=this.History.pop();
if(this.History.length==0)this.editState = false;//如果History数组中的历史记录已经取空,则把编辑状态置false,然后返回
switch(lastAction.OpType){
case "create":
this.PhenomenaObj[lastAction.Action.Id].Remove('R');
break;
case 'remove':
// document.body.appendChild(lastAction.Action.Div);//lastAction.Action=this(父相).Div==this.Div
lastAction.Action.Pivot.Resurgence()
this.Recovery.push({
OpType: 'create',
Action: JsonClone(lastAction.Action),
})
break;
case 'transform':
for (let index = this.History.length-1; index>=0 ; index--) {//反向遍历
//
if(lastAction.Action.Id==this.History[index].Action.Id){
let tempKey=JsonClone(lastAction.Key);//最后的记录对象
// console.log(tempKey)
lastAction=JsonClone(this.History[index]);
lastAction.Key=tempKey;
break;
}
}
switch(lastAction.Key){
case "move":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('move',"R");
// this.PhenomenaObj[lastAction.Action.Id].Div.style.left=lastAction.Action.XY.X+"px";
// this.PhenomenaObj[lastAction.Action.Id].Div.style.top=lastAction.Action.XY.Y+"px";
// this.PhenomenaObj[lastAction.Action.Id].XY=lastAction.Action.XY;//克隆的对象的原来记录值
this.PhenomenaObj[lastAction.Action.Id].Sync_XY(lastAction.Action.XY);
break;
case "resize":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('resize',"R");
this.PhenomenaObj[lastAction.Action.Id].WH=lastAction.Action.WH;
switch(this.PhenomenaObj[lastAction.Action.Id].constructor){
case Texter:
this.PhenomenaObj[lastAction.Action.Id].textareaT(lastAction.Action.WH);
break
case Voicer:
this.PhenomenaObj[lastAction.Action.Id].APlayerDivT();
break
case Vision:
this.PhenomenaObj[lastAction.Action.Id].DPlayerDivT();
break;
}
break;
case "opacity":
console.log(111222)
this.PhenomenaObj[lastAction.Action.Id].RcordTransform("opacity",'R');
this.PhenomenaObj[lastAction.Action.Id].SetOpacity(lastAction.Action.Opacity);
break;
case "caption":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform("caption",'R');
this.PhenomenaObj[lastAction.Action.Id].content=lastAction.Action.content;
this.PhenomenaObj[lastAction.Action.Id].textFadeIn();
// console.log("历史记录:",this.History)
// console.log("恢复数据:",this.Recovery);
break;
case "Bgurl":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('Bgurl','R');
this.PhenomenaObj[lastAction.Action.Id].SetBackground(lastAction.Action.BgUrl,lastAction.Action.Div.BgColor)
console.log(lastAction.Action.BgUrl);
console.log("历史记录:",this.History);
break;
}
break;
}
})
//恢复事件
this.RecoveryEvent=new HotKeyHandler(2,'Z',()=>{
if(this.Recovery.length==0){//判断恢复数组中有没有数据
return;
}
let lastAction=this.Recovery.pop();
switch(lastAction.OpType){
case "create":
this.PhenomenaObj[lastAction.Action.Id].Remove();
break;
case 'remove':
document.body.appendChild(lastAction.Action.Div);
this.History.push(
{
OpType: 'create',
Action: JsonClone(lastAction.Action),
}
)
break;
case 'transform':
switch(lastAction.Key){
case "move":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('move');//this.phenomenaObj为原型对象,lastAction.Action.Id为复刻的对象
this.PhenomenaObj[lastAction.Action.Id].Div.style.left=lastAction.Action.XY.X+"px";
this.PhenomenaObj[lastAction.Action.Id].Div.style.top=lastAction.Action.XY.Y+"px";
this.PhenomenaObj[lastAction.Action.Id].XY=lastAction.Action.XY;
break;
case "resize":
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('resize');
this.PhenomenaObj[lastAction.Action.Id].WH=lastAction.Action.WH;
switch(this.PhenomenaObj[lastAction.Action.Id].constructor){
case Texter:
this.PhenomenaObj[lastAction.Action.Id].textareaT(lastAction.Action.WH);
break
case Voicer:
this.PhenomenaObj[lastAction.Action.Id].APlayerDivT();
break
case Vision:
this.PhenomenaObj[lastAction.Action.Id].DPlayerDivT();
break;
}
break;
case "opacity":
// 此处出现bug,操作后记录,应该先恢复赋值,再记录,否则数据错位!
this.PhenomenaObj[lastAction.Action.Id].SetOpacity(lastAction.Action.Opacity);
this.PhenomenaObj[lastAction.Action.Id].RcordTransform("opacity");
break;
case "caption":
// 此处出现bug,操作后记录,应该先恢复赋值,再记录,否则数据错位!
this.PhenomenaObj[lastAction.Action.Id].content=lastAction.Action.content;
this.PhenomenaObj[lastAction.Action.Id].RcordTransform("caption");
this.PhenomenaObj[lastAction.Action.Id].textFadeIn();
// console.log("历史数据:",this.History);
// console.log("恢复数据:",this.Recovery);
break;
case "Bgurl":
this.PhenomenaObj[lastAction.Action.Id].SetBackground(lastAction.Action.BgUrl,lastAction.Action.Div.BgColor);
this.PhenomenaObj[lastAction.Action.Id].RcordTransform('Bgurl');
console.log("历史记录:",this.History);
console.log("恢复数据:",this.Recovery);
break;
}
}
})
}
start() {
document.oncontextmenu = () => false; //oncontextmenu事件,屏蔽鼠标右键菜单
document[on.Start] = (event) => {
// event=event.pageX?event:event.targetTouches[0]
event=CoordinatE(event)
this.XY = {
X: event.pageX,
Y: event.pageY,
};
console.log(event.pageX)
if (this.editState) return; //如果是编辑状态则退出--->this.phenomenaObj.length为实例化对象的Div的id
const C = new Texter(this.PhenomenaObj.length,JsonClone(this.XY),null,null,null,"#"+ColorToolKit.HsbToHex({h:Math.round(Math.random()*360),s:Math.round(Math.random()*69),b:Math.round(70+Math.random()*30)}));
this.CreatStatus=true;
this.menuTarget=C
// this.PhenomenaObj.push(C);//把拖拽完成的相存入相型数组中
document[on.Move] = (event) => {
event=CoordinatE(event)
// event=event.pageX?event:event.targetTouches[0]
C.DrawDiv(event,this.XY);
};
};
}
//点击菜单的音相按钮执行父相里的切换到音相的方法
clickAudio() {
let Vio = document.getElementById("viocer");
Vio.onclick = (ev) => {
this.menuTarget.ToVoicer();
};
}
//点击菜单的文相按钮执行父相里的切换到文相的方法
clickTexer(){
let Vio = document.getElementById("Texter");
Vio.onclick = (ev) => {
this.menuTarget.ToTexter();
};
}
//点击菜单的视相按钮,生成视相对象
clickVision() {
let Video = document.getElementById("Vision");
Video.onclick = (ev) => {
this.menuTarget.ToVision();
};
}
//拾色器的调用
colorful() {
Colorpicker.create({
el: "cp",
color: this.menuTarget.Div.BgColor,
clickfun: () => {
this.menuTarget.Div.style.background = null;
this.menuTarget.Div.style.background=this.menuTarget.Div.BgColor;
},
change: (elem, hex) => {
this.menuTarget.Div.style.backgroundColor = hex;
this.menuTarget.Div.BgColor=hex;
this.menuTarget.RcordTransform("Bgcolor");
},
});
}
//隐进度条
LayerSlider() {
let rotater = document.getElementById("Layer");
let InputRage = document.createElement("input");
InputRage.className = "sliderRage";
InputRage.type = "range";
InputRage.min = "0";
InputRage.max = "100";
InputRage.value = "0";
InputRage.visible = true;
rotater.appendChild(InputRage);
this.opacitySlider = InputRage;
let valSpan = document.createElement("span");
rotater.appendChild(valSpan);
InputRage.oninput = () => {
valSpan.innerText = InputRage.value + "%";
this.menuTarget.SetOpacity(1-InputRage.value/100);//此處為指定Div的隱設置值
InputRage.style.background ="linear-gradient(to right, #059CFA, white " +InputRage.value +"%, white)";
};
InputRage.onmouseup=()=>{
this.menuTarget.RcordTransform("opacity");
// console.log(this.History);
}
}
// 定义菜单控制事件
menuEvent() {
// 通过Id获取归墟按钮的div并为它绑定一个鼠标下压事件用于删除对应的拖出来的div
document.getElementById("second").onmousedown = (evnt) => {
this.menuTarget.Remove();
document.getElementById("wrapper").style.display = "none";
};
}
//Div创建完成,先置空onmousemove事件
createFinish() {
window[on.End]=() => {
document[on.Move] = null;
if(this.CreatStatus){
this.CreatStatus=false;
this.menuTarget.Div.BgColor="#"+this.menuTarget.hex;
// Div拖拽完成后为History数组添加一条Json数据对象{Optype:"create",Action:JsonClone(this.menuTarget)}---->optype操作类型,action执行的动作
if(this.menuTarget.WH.W==0||this.menuTarget.WH.H==0){
removeElement(this.menuTarget.Div);
return;
}
this.History.push({
OpType:"create",
Action: JsonClone(this.menuTarget),
})
this.Timer.appendPivot(this.menuTarget)
}if(this.moveStatus){
this.menuTarget.RcordTransform("move");
console.log(this.History)
this.moveStatus=false;
//记录div移动后的位置信息
}
}
}
// 定义了一个更换背景图片的函数
selectImgFile() {
// 获取input的元素对象,获取图片按钮的对象,并为它绑定一个单击事件用于上传背景图片
var inp = document.getElementById("inp");
var RollerImg = document.getElementsByClassName("Roller")[0];
RollerImg.onclick = function () {
inp.click();
};
/* 为input对象绑定一个onchange触发事件;当背景图片选择后,文件对象读取到对应的已选文件对象时获取该文件的虚拟路径,
* 并将其转换为实际的路径;并将该路径保存到变量imagUrl中,获取创建的div对象,将背景图片的路径赋值给它的background的url,
* this.menuTarget.Div.style.backgroundSize="100% 100%" 背景图片样式实现伸缩。
*/
inp.onchange = (e) => {
var reader = new FileReader();
reader.onload = (evt) => {
var imageUrl = evt.target.result;
this.menuTarget.BgUrl=imageUrl;//将图片的url赋值给父相的属性Bgurl
this.menuTarget.RcordTransform("Bgurl");//此处调用父相的方法记录父相的操作记录
this.menuTarget.Div.style.backgroundColor='transparent';
this.menuTarget.Div.style.backgroundImage = "url('" + imageUrl + "')";
};
reader.readAsDataURL(inp.files[0]);
this.menuTarget.Div.style.backgroundSize = "100% 100%";
inp.value='';
};
}
//幕的选择元素的事件的定义
curtain() {
let rotater = document.querySelector("#curtianOp");
rotater.onclick = () => {
this.menuTarget.Curtain = !this.menuTarget.Curtain;
};
}
//全屏功能
fullScreen() {
let fullScr = document.getElementById("fullOp");
fullScr.onmouseup = () => {
this.menuTarget.fullscreen = !this.menuTarget.fullscreen;
if (this.menuTarget.fullscreen === true) {
this.menuTarget.Div.style.top = "0px";
this.menuTarget.Div.style.left = "0px";
this.menuTarget.Div.style.width = "100%";
this.menuTarget.Div.style.height = "100%";
if(this.menuTarget.constructor==Vision){
this.menuTarget.VideoDiv.style.top = "0px";
this.menuTarget.VideoDiv.style.left = "0px";
this.menuTarget.VideoDiv.style.width = "100%";
this.menuTarget.VideoDiv.style.height = "100%";
}
} else {
this.menuTarget.Div.style.top = this.menuTarget.XY.Y + "px";
this.menuTarget.Div.style.left = this.menuTarget.XY.X + "px";
this.menuTarget.Div.style.width = this.menuTarget.WH.W + "px";
this.menuTarget.Div.style.height = this.menuTarget.WH.H + "px";
if(this.menuTarget.constructor==Vision){
this.menuTarget.VideoDiv.style.top = 0 + "px";
this.menuTarget.VideoDiv.style.left = 0 + "px";
this.menuTarget.VideoDiv.style.width = this.menuTarget.WH.W + "px";
this.menuTarget.VideoDiv.style.height = this.menuTarget.WH.H+ "px";
}
}
};
}
// timerHandle(){}
}
let WZCContorller = new Controller();
//父相类
class ClassPhenomena {
constructor(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
) {
WZCContorller.PhenomenaObj[Id]=this;//往控制器定义的原型相数组中通过Id下标添加对象
this.Id=Id;
this.menuDiv = null;
this.textarea = null;
this.editing = false;
this.Curtain = Curtain || false;
this.fullscreen = fullscreen || false;
this.Div = document.createElement("div");
this.Div.className = "Div"; //设置样式
this.Div.id = "DivID";
this.Div.BgColor=BgColor|| "#87ceeb";
this.Div.style.backgroundColor = this.Div.BgColor;
this.BgUrl=BgUrl ||null;
this.Div.style.backgroundImage = BgUrl || "";
this.Div.style.top = XY.Y + "px";
this.Div.style.left = XY.X + "px";
this.XY = XY;
this.SetOpacity(Opacity|1); //透明度--->隐
this.Radius = Radius || "0";
this.Ignores=['Pivot'];
//用于存储动态拖出来的div的宽高
this.WH = WH || { W: 0, H: 0 };
this.Div.style.width = this.WH.W + "px";
this.Div.style.height = this.WH.H + "px";
φ("#Scene").appendChild(this.Div);
this.Div.style.position = "absolute";
this.Div.style.overflow = "hidden";
this.OnToolbarDraw = OnToolbarDraw || false;
// 点击拖动div 1.按下事件
this.Div.addEventListener(on.start, (e) =>{
// if(WZCContorller.moveStatus)return
WZCContorller.menuTarget = this;
if (this.Curtain === false) {
e.stopPropagation();
//e.offesetX和e.offsetY相对于带有定位的父盒子的x,y坐标
e=CoordinatE(e)
let offsetX = e.pageX-this.XY.X;
let offsetY = e.pageY-this.XY.Y; //解决火狐浏览器不兼容问题
// let Rx= e.pageX,Ry=e.pageY;
// console.log(this.XY)
//2.移动事件
document[on.Move] = (ev) => {
ev=CoordinatE(ev)
// console.log(ev)
// console.log(offsetX,ev.pageX,Rx,ev.pageX - offsetX)
let x = ev.pageX - offsetX;//ev.pageX和ev.pageY对于整个页面来言,包括了被卷去的body部分的坐标
let y = ev.pageY - offsetY;
// let x =ev.pageX-Rx ;//ev.pageX和ev.pageY对于整个页面来言,包括了被卷去的body部分的坐标
// let y =ev.pageY-Ry ;
// console.log(x,y)
if(Math.abs(this.XY.X-x)<=1 && Math.abs(this.XY.Y-y)<=1){
return;//如果Div的宽高为0,则页面不显示
}
WZCContorller.moveStatus=true;
if (x < 0) {//div避免左边区域拖出界
x = 0;
}
else if ( x > document.documentElement.clientWidth - this.Div["offsetWidth"]) //div不能右边区域拖出界
{
x = document.documentElement.clientWidth - this.Div["offsetWidth"];
}
if (y < 0) {
y = 0;//div顶部不出界
} else if (
y > document.documentElement.clientHeight - this.Div["offsetHeight"]
) {
y = document.documentElement.clientHeight - this.Div["offsetHeight"];//div底部不拖出界
}
//给垂直方向补差值
if (this.OnToolbarDraw) {
// this.Div["style"].top = y + 35 + "px";
this.Div["style"].top = y + "px";
// console.log('Should OverView')
} else {
this.Div["style"].top = y + "px";
}
//给水平方向补差值
if (this.constructor == Texter) {
if (
this.menuDiv && this.menuDiv.offsetWidth > this.textarea.offsetWidth
) {
// this.Div["style"].left =
// x +(this.menuDiv.offsetWidth - this.textarea.offsetWidth) / 2 +"px";
this.Div["style"].left = x + "px";
} else {
this.Div["style"].left = x + "px";
}
}
if (this.constructor == Voicer||this.constructor==Vision) {
if (
this.Div &&
this.OnToolbarDraw &&
this.menuDiv.offsetWidth > this.Div.offsetWidth
) {
this.Div["style"].left =
x +
(this.menuDiv.offsetWidth - this.Div.offsetWidth) / 2 +
"px";
} else {
this.Div["style"].left = x + "px";
}
}
this.XY = {
X: Number(this.Div["style"].left.split("px")[0]),
Y: Number(this.Div["style"].top.split("px")[0]),
};
// console.log(this.XY)
if(this.AudioWrapper){
this.AudioWrapper.style.left=this.XY.X+"px";
this.AudioWrapper.style.top=this.XY.Y+"px";
};
if(this.VideoWrapper){
this.VideoWrapper.style.left=this.XY.X+"px";
this.VideoWrapper.style.top=this.XY.Y+"px";
}
};
} else {
//当幕的checkbox被选中时,对应div不能拖动。
this.Div[on.Move] = null;
document[on.Move] = null;
return;
}
});
// Div 右击事件
this.Div.oncontextmenu = (event) => {
event.preventDefault();
event.stopPropagation();
if(WZCContorller.editState){
return;
}
this.ToggleColor();
let x = event.pageX;
let y = event.pageY;
this.wrapper = document.getElementById("wrapper");
this.i1 = document.getElementsByClassName("i1")[0];
this.wrapper.style.cssText = "width:450px;height:450px;display:block";
this.wrapper.style.left = x - 225 + "px";
this.wrapper.style.top = y - 225 + "px";
let ColorPancel=document.getElementById("IPanel");
if(ColorPancel){
removeElement(ColorPancel.parentNode);
}
WZCContorller.colorful(); //此处调用了调色板函数
this.wrapper.oncontextmenu = (event) => {
event.preventDefault();
};
//设置菜单上的幕与div对应的状态同步
document.querySelector("#curtianchb").checked = this.Curtain;
//设置菜单上全屏选项与div对应的状态同步
document.querySelector("#fullcheck").checked = this.fullscreen;
//给拖拽出来的div透明度赋初值
WZCContorller.opacitySlider.value = 100 - 100 * this.Div.style.opacity;
WZCContorller.opacitySlider.oninput();
//右击滑动条div圆角设置
WZCContorller.RadiusSlider.onChangeCanvas = (val) => {
this.Div.style.borderRadius = val;
this.Radius = val;
};
//此处调用圆角滑块类的DrawPer(),逆向画出对应的百分比弧,使得滑动条同步上一次编辑状态
WZCContorller.RadiusSlider.slider.DrawPer(this.Radius);
this.wrapper.onmouseleave = () => {
this.wrapper.style.display = "none";
WZCContorller.RadiusSlider.slider.moveFlag = false;
this.leave();
};
this.i1.onclick = () => {
this.wrapper.style.display = "none";
this.leave();
};
};
}
// 设置相的隐的值
SetOpacity(opacity){
this.Div.style.opacity=opacity;
this.Opacity=opacity;
}
RcordTransform(Key,recordTyp){
if(recordTyp=='R'){
WZCContorller.Recovery.push({
OpType:"transform",
Key:Key,
Action:JsonClone(this), }
);
}else{
WZCContorller.History.push({
OpType:"transform",
Key:Key,
Action: JsonClone(this),
})
}
}
Remove(recordTyp){
removeElement(this.Div);
this.Pivot.Remove()
if(this.AudioWrapper){
removeElement(this.AudioWrapper);
}
if(this.VideoWrapper){
removeElement(this.VideoWrapper);
}
if(recordTyp=='R'){
WZCContorller.Recovery.push({
OpType:"remove",
Action: this,
}
)
}else{
WZCContorller.History.push({
OpType:"remove",
Action: this,
})
}
}
SetBackground(BgUrl,BgColor){
this.BgUrl=BgUrl;
this.BgColor=BgColor;
if(BgUrl){
this.Div.style.backgroundColor='transparent';
this.Div.style.backgroundImage="url('" +BgUrl+ "')";
}else{
this.Div.style.backgroundColor=BgColor;
this.Div.style.backgroundImage=null;
}
}
ToggleColor(){
φ('#Texter').style.filter='';
φ('#viocer').style.filter='';
φ('#Vision').style.filter='';
switch(this.constructor){
case Texter :
φ('#Texter').style.filter='hue-rotate(342deg) saturate(3.5)';
break;
case Voicer:
φ("#viocer").style.filter='hue-rotate(342deg) saturate(3.5)';
break;
case Vision:
φ("#Vision").style.filter='hue-rotate(342deg) saturate(3.5)';
break;
}
}
DrawBgColor(dXY){//from distance of original spawn arc compute hue of Div BgColor dynamical
let NowHSB= ColorToolKit.hexToHsb(this.Div.BgColor)
NowHSB.h=Math.round(NowHSB.h+(Math.atan2(dXY.X,dXY.Y)/Math.PI+Math.PI)*180)%360;
let RGB =ColorToolKit.HSBToRGB(NowHSB)
this.rgb=RGB
this.Div.style.backgroundColor=`rgb(${RGB.r},${RGB.g},${RGB.b})`
this.hex=ColorToolKit.rgbToHex(RGB)
}
//动态确定div大小
DrawDiv(e, XY) {
//动态的确定div的宽高
this.DrawDiv_WH(e, XY);
//象限的位置关系
if (e.clientX - XY.X > 0 && e.clientY - XY.Y < 0) {
this.Div.style.top = e.clientY + "px";
this.Div.style.left = XY.X + "px";
} else if (e.clientX - XY.X < 0 && e.clientY - XY.Y < 0) {
this.Div.style.top = e.clientY + "px";
this.Div.style.left = e.clientX + "px";
} else if (e.clientX - XY.X < 0 && e.clientY - XY.Y > 0) {
this.Div.style.left = e.clientX + "px";
this.Div.style.top = XY.Y + "px";
} else {
this.Div.style.top = XY.Y + "px";
this.Div.style.left = XY.X + "px";
}
this.DrawBgColor({
X:e.pageX-XY.X,
Y:e.pageY-XY.Y
})
this.XY.X=Number(this.Div.style.left.split('px')[0]);
this.XY.Y=Number(this.Div.style.top.split('px')[0]);
}
DrawDiv_WH(e, XY) {
//动态的确定div的宽高
this.WH.W = Math.abs(e.pageX - XY.X);
this.WH.H = Math.abs(e.pageY - XY.Y);
this.Div.style.width = this.WH.W + "px";
this.Div.style.height = this.WH.H + "px";
if(this.AudioWrapper){
this.AudioWrapper.style.width= this.WH.W+'px';
this.AudioWrapper.style.height= this.WH.H+'px';
}
if(this.VideoWrapper){
this.VideoWrapper.style.width= this.WH.W+'px';
this.VideoWrapper.style.height= this.WH.H+'px';
}
if(this.VideoDiv){
this.VideoDiv.style.width= this.WH.W+'px';
this.VideoDiv.style.height= this.WH.H+'px';
}
}
leave() {
//退出时,旋转的位置恢复原样
this.Roller = document.getElementsByClassName("Roller");
for (let i = 0; i < 6; i++) {
this.Roller[i].style.top = "25px";
this.Roller[i].style.transform = "translate(-50%, 0) rotate(0deg)";
this.Roller[i].style.transformOrigin = "80px 205px";
this.Roller[i].style.opacity = "0";
}
}
//删除拖拽出来的文相div,创建一个音相实例化对象,实现文相到音相的切换
ToVoicer() {
if(this.AudioWrapper){
removeElement(this.AudioWrapper);
}
if(this.VideoWrapper){
removeElement(this.VideoWrapper);
}
let abandonDiv = this.Div;
let NewVoicer = new Voicer(
this.Id,
this.XY,
this.WH,
this.Div.style.opacity,
this.Div.style.backgroundImage,
this.Div.BgColor,
this.Curtain,
this.Radius,
this.fullscreen
);
WZCContorller.menuTarget=NewVoicer;
removeElement(abandonDiv);
NewVoicer.ToggleColor();
}
//从音相切换到文相
ToTexter(){
if(this.AudioWrapper){
removeElement(this.AudioWrapper);
}
if(this.VideoWrapper){
removeElement(this.VideoWrapper);
}
let abandonDiv = this.Div;
let NewTexter = new Texter(
this.Id,
this.XY,
this.WH,
this.Div.style.opacity,
this.Div.style.backgroundImage,
this.Div.BgColor,
this.Curtain,
this.Radius,
this.fullscrseen
);
WZCContorller.menuTarget=NewTexter;
removeElement(abandonDiv);
NewTexter.ToggleColor();
}
//从文相切换到视相
ToVision(){
if(this.AudioWrapper){
removeElement(this.AudioWrapper);
}
if(this.VideoWrapper){
removeElement(this.VideoWrapper);
}
let abandonDiv = this.Div;
let NewVision = new Vision(
this.Id,
this.XY,
this.WH,
this.Div.style.opacity,
this.Div.style.backgroundImage,
this.Div.BgColor,
this.Curtain,
this.Radius,
this.fullscreen
);
WZCContorller.menuTarget=NewVision;
removeElement(abandonDiv);
NewVision.ToggleColor();
}
Sync_XY(XY){
this.XY=JsonClone(XY);
this.Div.style.left=this.XY.X+"px";
this.Div.style.top=this.XY.Y+"px";
}
}
//文相类部分
class Texter extends ClassPhenomena {
constructor(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
) {
super(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
);
this.DivSon = document.createElement("div");
this.DivSon.className = "DivSon";
this.DivSon.style.float = "left"; //设置样式
this.DivSon.style.fontFamily = this.selectValue;
this.Div.appendChild(this.DivSon);
this.content = "";
this.selectValue = "宋体";
this.flag = true;
let menuTimer;
this.textCenter = false;
//文字颜色 & 文字大小 & 字幕速度 & 光标速度
this.textColor = "#000000";
this.textFont = "16";
this.textSpeed = 300;
this.cursorSpeed = 500;
//双击div开始进入编辑状态
// -----------进入编辑状态------------ //
this.Div.ondblclick = (e) => {
this.Div.style.overflow="visible";
this.DivSon.style.display = "none";
this.editing = true;
if (WZCContorller.editState) {
WZCContorller.editState.ExitEdit(e);
}
WZCContorller.editState = this; // 状态判断 上一个是否创建
this.DivSon.innerHTML = "";
//在文本域中让创建div事件失效以及重复进入时,定时器失去效用-->
clearInterval(this.txttimer);
clearInterval(this.flags);
clearInterval(this.pointertimer);
clearInterval(menuTimer);
/* -------------------创建文本域---------------------------*/
this.textarea = document.createElement("textarea");
this.textarea.className = "textarea";
this.textarea.style.width = this.Div.style.width;
this.textarea.style.height = this.Div.style.height;
this.textarea.style.backgroundColor=this.Div.style.backgroundColor;
this.textarea.style.outline = "none";
this.textarea.style.fontFamily = this.selectValue;
this.Div.appendChild(this.textarea);
this.textarea.value = this.content;
this.textarea.focus();
// ------------------创建菜单------------------- //
this.menuDiv = document.createElement("div");
this.menuDiv.id = "menu";
this.menuDiv.className = "menuDiv";
this.menuDiv.style.width = this.textarea.offsetWidth + "px";
//----------------创建菜单子选项 并且添加至菜单中 菜单添加至div中-------------- friction//
const option1 = document.createElement("span"); //字体颜色
const Picker = document.createElement("span"); //拾色器
const option2 = document.createElement("span"); //字体大小
const option3 = document.createElement("span"); //字幕速度
const option4 = document.createElement("span"); //文本样式
const option5 = document.createElement("span"); //光标速度
const option6 = document.createElement("span"); //文本居中
this.menuDiv.appendChild(option1);
this.menuDiv.appendChild(option2);
this.menuDiv.appendChild(option3);
this.menuDiv.appendChild(option4);
this.menuDiv.appendChild(option5);
this.menuDiv.appendChild(option6);
this.Div.appendChild(this.menuDiv);
option1.className = "opt";
option2.className = "opt";
option3.className = "opt";
option4.className = "opt";
option5.className = "opt";
option6.className = "opt";
option6.id = "opt6";
//文本滑块组 ===> 字体颜色模块
option1.innerHTML = "字体颜色 ";
option1.id = "opt1";
option1.className = "opt1";
option1.appendChild(Picker);
Picker.id = "color-picker";
Picker.className = "picker";
//文本滑块组 ===> 字体大小模块
option2.innerHTML = "字体大小 ";
this.fontTs = new textSlider(this.textFont, option2);
this.fontTs.sliderInputFuc = (self) => {
this.textFont = self.textInput.value;
this.textarea.style.fontSize = this.textFont + "px";
this.DivSon.style.fontSize = this.textFont + "px";
};
this.fontTs.textInputFuc = () => {
this.OnToolbarDraw = true;
};
const PX = document.createElement("strong");
PX.innerHTML = " px";
option2.appendChild(PX);
//文本滑块类 ===> 字幕速度模块
option3.innerHTML = "字幕速度 ";
this.textSpeeds = new textSlider(this.textSpeed, option3);
this.textSpeeds.sliderInputFuc = (self) => {
this.textSpeed = self.textInput.value;
};
this.textSpeeds.textInputFuc = () => {
this.OnToolbarDraw = true;
};
const testMS = document.createElement("strong");
testMS.innerHTML = " ms";
option3.appendChild(testMS);
//文本滑块类 ===> 文本样式模块
option4.innerHTML = "文本样式 ";
this.selectDiv = document.createElement("div");
this.select = document.createElement("select");
const options1 = document.createElement("option");
const options2 = document.createElement("option");
const options3 = document.createElement("option");
const options4 = document.createElement("option");
const options5 = document.createElement("option");
const options6 = document.createElement("option");
options1.text = "宋体";
options2.text = "华文新魏";
options3.text = "华文彩云";
options4.text = "幼圆";
options5.text = "隶书";
options6.text = "仿宋";
this.select.appendChild(options1);
this.select.appendChild(options2);
this.select.appendChild(options3);
this.select.appendChild(options4);
this.select.appendChild(options5);
this.select.appendChild(options6);
this.selectDiv.appendChild(this.select);
this.select.style.display = "block";
this.select.style.marginTop = "3px";
this.selectDiv.style.position = "absolute";
this.selectDiv.style.top = "3px";
this.selectDiv.style.left = "75px";
this.selectDiv.style.display = "inline-block";
option4.appendChild(this.selectDiv);
this.select.value = this.selectValue;
//文本滑块类 ===> 光标速度模块;
option5.innerHTML = "光标速度 ";
this.cursorSpeeds = new textSlider(this.cursorSpeed, option5);
this.cursorSpeeds.sliderInputFuc = (self) => {
this.cursorSpeed = self.textInput.value;
};
this.cursorSpeeds.textInputFuc = () => {
this.OnToolbarDraw = true;
};
const cursorMS = document.createElement("strong");
cursorMS.innerHTML = " ms";
option5.appendChild(cursorMS);
//文本滑块组 ===> 文本居中模块
option6.innerHTML = "文本居中 ";
this.inputCheckbox = document.createElement("input");
this.inputCheckbox.type = "checkbox";
this.inputCheckbox.style.cssText =
"position:absolute;top:6px;left:72px;width:15px;height:15px;";
this.inputCheckbox.id = "checkbox";
option6.appendChild(this.inputCheckbox);
this.inputCheckbox.onchange = (event) => {
if (event.target["checked"] === true) {
this.textCenter = true;
this.textarea.style.textAlign = "center";
} else {
this.textCenter = false;
this.textarea.style.textAlign = "left";
}
};
if (this.textCenter) {
this.inputCheckbox.checked = true;
this.textarea.style.textAlign = "center";
} else {
this.inputCheckbox.checked = false;
this.textarea.style.textAlign = "left";
}
Picker.onmousemove = (e) => {
e.stopPropagation();
};
Picker.style.cssText = "cursor:default;user-select:none;marginTop:5px";
option1.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
option2.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
option3.style.cssText =
"cursor:default;margin:0 20px 0 10px;user-select:none;display:inline-block";
option4.style.cssText =
"cursor:default;margin:0 100px 0 10px;user-select:none;display:inline-block";
option5.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
option6.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
this.textareaT();
// select的改变事件
this.select.onchange = () => {
this.selectValue = this.select.value;
this.textarea.style.fontFamily = this.select.value;
};
//进入编辑状态时把文字样式传给文本域内的字体
this.textarea.style.fontSize = this.textFont + "px";
//把前一步的颜色传递进来
document.getElementById("color-picker").style.background = this.textColor;
this.textarea.style.color = this.textColor;
//文本域右击事件
this.textarea.oncontextmenu = (event) => {
event.stopPropagation();
event.preventDefault();
};
// 阻止点击文字时出现冒泡事件
this.optArr = document.getElementsByClassName("opt");
for (let i = 0; i < this.optArr.length; i++) {
this.optArr[i].onmousedown = (event) => {
event.stopPropagation();
this.OnToolbarDraw = true;
};
this.optArr[i].style.position = "relative";
}
//调用拾色器
this.colorful();
//按下菜单区域
this.menuDiv.onmousedown = () => {
//当点击事件发生后给父类里面发送信号
this.OnToolbarDraw = true;
};
//松开菜单栏区域
this.menuDiv.onmouseup = () => {
this.OnToolbarDraw = false;
};
//双击菜单栏区域阻止事件冒泡
this.menuDiv.ondblclick = (ev) => {
ev.stopPropagation();
};
//右击菜单栏区域阻止事件冒泡
this.menuDiv.oncontextmenu = (ev) => {
ev.preventDefault();
ev.stopPropagation();
};
//文本域大小改变事件和mousemove事件
this.textarea.onmousedown=(e)=>{
e.stopPropagation();
if(e.pageX>(this.XY.X+this.WH.W-15)&&e.pageY>(this.XY.Y+this.WH.H-15)){
this.textarea.onmousemove = () => {
this.textareaT();
}
this.textarea.onmouseup=()=>{
this.RcordTransform("resize");
this.textarea.onmousemove=null;
}
}
}
//文本域失焦事件
this.textarea.onblur = () => {
//清除菜单 此刻处于非编辑状态
console.log(this.OnToolbarDraw)
if (!this.OnToolbarDraw) {
this.ExitEdit();
}
};
//文本域内部双击鼠标事件 解决重复创建文本域内的内容
this.textarea.ondblclick = function (event) {
event.stopPropagation();
};
};
}
//调色板
colorful() {
Colorpicker.create({
el: "color-picker",
color: this.textColor,
// initColor: this.textColor,
change: (elem, hex) => {
this.textColor = hex;
elem.style.backgroundColor = hex;
this.DivSon.style.color = hex;
this.textarea.style.color = hex;
},
});
}
// 文字淡入函数
textFadeIn(){
//文字显示速度(字幕速度)
if(this.txttimer){
clearInterval(this.txttimer);
}
let i = 0;
this.txttimer = setInterval(() => {
if (i < this.content.length) {
this.DivSon.innerText =
this.content.substring(0, i + 1) + (this.flag ? "|" : "");
i = i + 1;
} else {
clearInterval(this.txttimer);
this.txttimer = false;
this.DivSon.innerText="";
}
}, this.textSpeed);
//光标闪烁速度(光标速度)
if (this.cursorSpeed == 0) {
this.flag = false;
} else {
if(this.pointertimer)clearInterval(this.pointertimer);
this.pointertimer = setInterval(() => {
if (this.content !== "") {
this.flag = !this.flag;
if (!this.txttimer) {
this.DivSon.innerText = this.content + (this.flag ? "|" : "");
}
}
}, this.cursorSpeed);
}
}
//退出编辑
ExitEdit() {
this.DivSon.style.fontFamily = this.selectValue;
this.Div.style.overflow="hidden";
if (this.textCenter) {
this.DivSon.style.width = this.Div.style.width;
this.DivSon.style.textAlign = "center";
} else {
this.DivSon.style.textAlign = "left";
}
//给隐藏的div颜色复原
this.DivSon.style.display = "block";
WZCContorller.editState = false; //非编辑状态 阻止mousemove事件的冒泡
if (this.editing) {
//移除this.menuDiv
removeElement(document.getElementById("menu"));
removeElement(document.getElementById("menu"));
}
this.content = this.textarea.value;
this.RcordTransform("caption");//添加字幕信息记录
console.log(WZCContorller.History);
this.textarea.remove();
this.textFadeIn();
}
//文本域形成T字形
textareaT(WH) {
this.DivSon.style.width = this.Div.style.width; //解决文本居中
if(WH){
this.textarea.style.width=WH.W+"px";
this.textarea.style.height=WH.H+"px";
}
this.Div.style.width = this.textarea.style.width;
this.Div.style.height = this.textarea.style.height;
this.WH.W = Number(this.textarea.style.width.split("px")[0]);
this.WH.H = Number(this.textarea.style.height.split("px")[0]);
this.menuDiv.style.width = this.textarea.style.width;
this.distance = 0;
//当文本域的宽度小于菜单栏的宽度时 形成 T 字形
if (this.textarea.offsetWidth < 980) {
this.menuDiv.style.minWidth = "980px";
this.distance =
(this.menuDiv.clientWidth - this.textarea.clientWidth) / 2;
this.menuDiv.style.marginLeft = -this.distance + "px";
//让Div的颜色消失
// this.Div.style.background = 'none';
this.DivSon.style.display = "none";
} else {
this.menuDiv.style.textAlign = "center";
this.DivSon.style.display = "block";
this.distance =
(this.menuDiv.clientWidth - this.textarea.clientWidth) / 2;
this.menuDiv.style.marginLeft = this.distance + "px";
}
}
}
//音相类部分
class Voicer extends ClassPhenomena {
constructor(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
) {
super(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
);
this.flag = true;
let menuTimer;
this.editing = false;
this.URLInp = "";
this.url = "";
this.ShowAudio(this.url);
this.Div.style.minWidth = "280px";
this.Div.style.minHeight = "120px";
//双击div开始进入编辑状态
// -----------进入编辑状态------------ //
this.Div.ondblclick = (e) => {
if(this.editing){
return;
}
this.Div.style.overflow="visible";
this.editing = true;
if (WZCContorller.editState) {
WZCContorller.editState.ExitEdit(e);
}
WZCContorller.editState = this; // 状态判断 上一个是否创建
var formOjb = document.createElement("form");
formOjb.id = "mediaFileStore";
formOjb.style.display = "none";
this.Div.appendChild(formOjb);
// ------------------创建菜单------------------- //
this.menuDiv = document.createElement("div");
this.menuDiv.id = "Au_menu";
this.menuDiv.className = "menuDiv";
this.menuDiv.style.width = this.Div.offsetWidth + "px";
this.menuDiv.style.width = "50px";
//----------------创建菜单子选项 并且添加至菜单中 菜单添加至div中--------------//
const option1 = document.createElement("span"); //音频类型
const URLspan = document.createElement("span"); //Url链接地址
const InpDiv = document.createElement("div"); //放置file型上传按钮
const option3 = document.createElement("input"); //上传音乐
this.InpDiv = InpDiv;
InpDiv.style.width = "70px";
InpDiv.style.height = "30px";
InpDiv.className = "Voicer_Btn";
InpDiv.innerText = "上传音乐";
InpDiv.appendChild(option3);
option3.type = "file";
option3.accept='audio/*';
option3.id = "Audio_INP";
option1.className = "opt";
option1.id = "AudioSpan";
option1.innerHTML = "音频类型";
option1.className = "opt";
URLspan.className = "opt";
URLspan.id = "UrlSpan";
this.SelctInp = option3;
this.menuDiv.appendChild(option1);
this.menuDiv.appendChild(URLspan);
this.menuDiv.appendChild(InpDiv);
this.Div.appendChild(this.menuDiv);
this.selectDiv = document.createElement("div");
this.select = document.createElement("select");
const options1 = document.createElement("option");
const options2 = document.createElement("option");
options1.text = "直链";
options2.text = "外链";
options1.selected = true;
this.select.appendChild(options1);
this.select.appendChild(options2);
this.selectDiv.appendChild(this.select);
this.select.style.display = "block";
this.select.style.marginTop = "3px";
this.selectDiv.style.position = "absolute";
this.selectDiv.style.top = "3px";
this.selectDiv.style.left = "75px";
this.selectDiv.style.display = "inline-block";
option1.appendChild(this.selectDiv);
// this.select.value = this.selectValue;
URLspan.innerHTML = "链接地址:";
const option2 = document.createElement("input"); //Url链接地址输入框
const submitBtn = document.createElement("button"); //链接提交按钮
this.SubBtn = submitBtn;
submitBtn.id = "SubBtn";
submitBtn.className = "Voicer_Btn";
submitBtn.type = "submit";
// submitBtn.name='提交';
submitBtn.innerText = "提交";
this.URLInp = option2;
option2.id = "UrlInp";
option2.type = "text";
option2.name = "URL地址";
option2.value = "";
URLspan.appendChild(option2);
URLspan.appendChild(this.SubBtn);
const FinishBtn = document.createElement("button"); //完成编辑按钮
FinishBtn.type = "submit";
FinishBtn.innerText = "完成";
FinishBtn.className = "Voicer_Btn";
this.FinishBtn = FinishBtn;
this.menuDiv.appendChild(this.FinishBtn);
let DragDiv = document.createElement("div");
this.DragDiv=DragDiv;
DragDiv.id = "DragDiv";
DragDiv.classList="iconfont iDrag";
DragDiv.style.width = "25px";
DragDiv.style.height = "25px";
DragDiv.style.borderRadius = "50%"; //圆角百分比
DragDiv.style.position = "absolute";
DragDiv.style.backgroundColor = "rgb(235 239 242 / 80%)";
DragDiv.style.boxShadow = "0px 0px 5px #88c8888";
DragDiv.style.left = this.Div.offsetWidth + "px";
DragDiv.style.top = this.Div.offsetHeight + "px";
DragDiv.style.transform = "translate(-50%, -50%)";
DragDiv.style.cursor='nw-resize';
//为上传音乐按钮绑定一个点击事件
this.InpDiv.onclick = function (n) {
n.stopPropagation();
Audio_INP.click();
};
this.InpDiv.onmousemove=function(evnt){
evnt.stopPropagation();
}
Audio_INP.onchange = (file) => {
φ("#mediaFileStore").append(file.target.files[0]);
var url = window.URL.createObjectURL(file.target.files[0]);
// --------------------此处引入读取MP3信息的js文件--base64编码方式---------------------------------//
var jsmediatags = window.jsmediatags;
jsmediatags.read(file.target.files[0], {
onSuccess: (tag) => {
this.ap.list.add([
{
name: tag.tags.title,
artist: tag.tags.artist,
url: url,
cover: tag.tags.picture?('data:'+tag.tags.picture.format+';base64,'+ arrayBufferToBase64(tag.tags.picture.data)):'',
lrc: "lrc.lrc",
theme: "#ebd0c2",
listMaxHeight: this.Div.offsetHeight - 90 + "px",
},
]);
this.AudioDelete();
},
onError: (error) => {
this.ap.list.add([
{
name: "音乐",
artist: "artist",
url: url,
cover: "cover.jpg",
lrc: "lrc.lrc",
theme: "#ebd0c2",
listMaxHeight: this.Div.offsetHeight - 90 + "px",
},
]);
this.AudioDelete();
},
});
//---------------------------------------------------------------------//
φ(".aplayer-body").onload = function () {
window.URL.revokeObjectURL(src);
};
};
//为音相域右下角的圆形的拖拽div,绑定一个鼠标下压事件
this.Div.appendChild(DragDiv);
DragDiv.onmousedown = (e) => {
e.stopPropagation();
// this.RcordTransform("resize");
document.onmousemove = (event) => {
if (
event.pageX - this.XY.X < 280 &&
this.WH.W > event.pageX - this.XY.X
) {
//若当前Div设置的新值宽度小于280且Div的当前宽大于鼠标移动的新值,退出程序
return;
}
if (
event.pageY - this.XY.Y < 120 &&
this.WH.H > event.pageY - this.XY.Y
) {
//若当前Div设置的新值高度小于280且Div的当前高大于鼠标移动的新值,退出程序
return;
}
this.DrawDiv_WH(event, this.XY);
if(this.ap){
this.Div.φ('.aplayer-list').style.maxHeight= this.Div.offsetHeight - 90 + "px";
}
this.APlayerDivT();
};
document.onmouseup=(e)=>{
e.stopPropagation();
document.onmousemove=null;
this.RcordTransform("resize");
document.onmouseup=null;
console.log(WZCContorller.History)
}
};
option1.style.cssText =
"cursor:default;margin:0px 55px 0 25px;;;user-select:none;display:inline-block";
URLspan.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
option2.style.cssText =
"cursor:default;margin:0 10px;padding: 0px 3px;height:20px;display:inline-block";
submitBtn.style.cssText =
"cursor:default;margin:0 10px;display:inline-block;width:50px;Height:30px";
option3.style.cssText = "display:none";
InpDiv.style.cssText =
"cursor:default;margin:0 10px 0 10px;width:70px;user-select:none;display:inline-block";
FinishBtn.style.cssText =
"cursor:default;margin:0px 10px;display:inline-block;width:50px;Height:30px";
this.APlayerDivT();//初始化T字菜单
this.SubBtn.onclick = (e) => {
this.urlVal = this.URLInp.value;
if (this.select.value === "直链") {
this.ap.list.add([
{
name: "音乐",
artist: "artist",
url: this.urlVal,
cover: "cover.jpg",
lrc: "lrc.lrc",
theme: "#ebd0c2"
},
]);
this.AudioDelete();
e.stopPropagation();
} else {
this.IframeAudio(this.urlVal);
}
};
// select的改变事件
this.select.onchange = (e) => {
var str = this.select.value;
switch (str) {
case "直链":
this.ShowAudio(this.urlVal);
break;
case "外链":
// console.log(this.urlVal);
this.IframeAudio(this.urlVal);
break;
}
};
// 阻止点击文字时出现冒泡事件
this.optArr = document.getElementsByClassName("opt");
for (let i = 0; i < this.optArr.length; i++) {
this.optArr[i].onmousedown = (event) => {
event.stopPropagation();
this.OnToolbarDraw = true;
};
this.optArr[i].style.position = "relative";
}
//按下菜单区域
this.menuDiv.onmousedown = () => {
//当点击事件发生后给父类里面发送信号
this.OnToolbarDraw = true;
};
//松开菜单栏区域
this.menuDiv.onmouseup = () => {
this.OnToolbarDraw = false;
};
//双击菜单栏区域阻止事件冒泡
this.menuDiv.ondblclick = (ev) => {
ev.stopPropagation();
};
//右击菜单栏区域阻止事件冒泡
this.menuDiv.oncontextmenu = (ev) => {
ev.preventDefault();
ev.stopPropagation();
};
//音相域完成,退出编辑状态
this.FinishBtn.onmousedown = (e) => {
//清除菜单 此刻处于非编辑状态
e.stopPropagation();
if (!this.OnToolbarDraw) {
this.ExitEdit();
}
};
};
}
//扩展父类的sync_XY()同步坐标XY的方法
Sync_XY(XY){
super.Sync_XY(XY);
console.log("233333")
console.log(this.AudioWrapper)
if(this.AudioWrapper){
this.AudioWrapper.style.left=this.XY.X+"px";
this.AudioWrapper.style.top=this.XY.Y+"px";
};
}
// 删除音乐列表中的歌
AudioDelete() {
let audioList = this.Div.querySelectorAll("li");
for (let i = 0; i < audioList.length; i++) {
var element = audioList[i];
element.oncontextmenu = (evn) => {
evn.stopPropagation();
evn.preventDefault();
this.ap.list.remove(i);
this.AudioDelete();
};
}
}
//退出编辑
ExitEdit() {
this.Div.style.overflow="hidden";
WZCContorller.editState = false; //非编辑状态阻止mousemove事件的冒泡
if (this.editing) {
//移除this.menuDiv
removeElement(document.getElementById("Au_menu"));
removeElement(document.getElementById("DragDiv"));
}
this.editing=false;
}
//音相域形成T字形
APlayerDivT() {
if(this.AudioWrapper){
this.AudioWrapper.style.width= this.WH.W+'px';
this.AudioWrapper.style.height= this.WH.H+'px';
}
if(this.VideoWrapper){
this.VideoWrapper.style.width= this.WH.W+'px';
this.VideoWrapper.style.height= this.WH.H+'px';
}
this.DragDiv.style.left = this.WH.W + "px";
this.DragDiv.style.top = this.WH.H + "px";
this.Div.style.width=this.WH.W+"px";
this.Div.style.height=this.WH.H+"px";
this.menuDiv.style.width = this.Div.style.width;
this.distance = 0;
//当文本域的宽度小于菜单栏的宽度时 形成 T 字形
if (this.Div.offsetWidth < 690) {
this.menuDiv.style.minWidth = "690px";
this.distance = (this.menuDiv.clientWidth - this.Div.clientWidth) / 2;
this.menuDiv.style.marginLeft = -this.distance + "px";
} else {
this.menuDiv.style.textAlign = "center";
this.Div.style.display = "block";
this.distance = (this.menuDiv.clientWidth - this.Div.clientWidth) / 2;
this.menuDiv.style.marginLeft = this.distance + "px";
}
}
// 选择直链时对应显示Audio组件;并删除AplayerDiv内部的ifram元素
ShowAudio(url) {
if(this.InpDiv){
this.InpDiv.style.display="inline-block";
}
if (this.New_Iframe) {
removeElement(this.New_Iframe);
removeElement(this.AudioWrapper);
this.New_Iframe='';
}
this.Div.style.backgroundColor= this.Div.BgColor;
this.ap = new APlayer({
container: this.Div,
mini: false,
autoplay: true,
theme: "#FADFA3",
loop: "all",
order: "random",
preload: "auto",
volume: 0.5,
mutex: true,
listFolded: true,
listMaxHeight: this.Div.offsetHeight - 90 + "px",
lrcType: 3,
audio: [
{
name: "Higher",
artist: "Erik Gronwall",
url: this.url || "./mp3/Higher.mp3",
// url: 'http://music.163.com/song/media/outer/url?id=454828887.mp3'|| url,
cover: "./img/Higher.jpg",
},
],
});
//把音乐的body和list阻止onmousedown事件
if(this.Div.querySelector(".aplayer-body")){
this.Div.querySelector(".aplayer-body").onmousedown = (e) => {
e.stopPropagation();
}
this.Div.querySelector(".aplayer-list").onmousedown = (e) => {
e.stopPropagation();
}
}
if(this.menuDiv){
this.Div.appendChild(this.menuDiv);
this.Div.appendChild(this.DragDiv);
}
}
IframeAudio(url) {
this.InpDiv.style.display="none";//上传按键不显示
if(this.ap){
this.ap.list.clear();
}
this.ap=null;
removeElement(this.Div.querySelector(".aplayer-body"));
removeElement(this.Div.querySelector(".aplayer-list"));
// this.ap.destroy();
if (this.New_Iframe) {
document.getElementById("IframeAu").src = url;
} else {
this.New_Iframe = document.createElement("iframe");
this.New_Iframe.id = "IframeAu";
this.New_Iframe.style.width = "100%";
this.New_Iframe.style.height = "100%";
this.New_Iframe.src = url || "https://kf369.cn/music/";
this.New_Iframe.style.frameborder = "0";
this.AudioWrapper=document.createElement("div");
this.AudioWrapper.style.width=this.WH.W+"px";
this.AudioWrapper.style.height=this.WH.H+"px";
this.AudioWrapper.style.position="absolute";
this.AudioWrapper.style.left=this.XY.X+"px";
this.AudioWrapper.style.top=this.XY.Y+"px";
this.Div.style.backgroundColor="transparent";
this.AudioWrapper.style.zIndex='-1';
this.AudioWrapper.appendChild(this.New_Iframe);
document.body.appendChild(this.AudioWrapper);
}
}
}
//视相类部分
class Vision extends ClassPhenomena {
constructor(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
) {
super(
Id,
XY,
WH,
Opacity,
BgUrl,
BgColor,
Curtain,
Radius,
fullscreen,
OnToolbarDraw
);
this.flag = true;
let menuTimer;
this.editing = false;
this.URLInp = "";
this.url = "";
this.ShowVideo(this.url);
//双击div开始进入编辑状态
// -----------进入编辑状态------------ //
this.Div.ondblclick = (e) => {
if(this.editing){
return;
}
this.editing = true;
this.Div.style.overflow="visible";
if (WZCContorller.editState) {
WZCContorller.editState.ExitEdit(e);
}
WZCContorller.editState = this; // 状态判断上一个是否创建
//在文本域中让创建div事件失效以及重复进入时,定时器失效用-->
clearInterval(this.flags);
clearInterval(menuTimer);
var formOjb = document.createElement("form");
formOjb.id = "mediaFileStore";
formOjb.style.display = "none";
this.Div.appendChild(formOjb);
// ------------------创建菜单------------------- //
this.menuDiv = document.createElement("div");
this.menuDiv.id = "Au_menu";
this.menuDiv.className = "menuDiv";
this.menuDiv.style.width = this.VideoDiv.offsetWidth + "px";
this.menuDiv.style.width = "50px";
//----------------创建菜单子选项 并且添加至菜单中 菜单添加至div中--------------//
const option1 = document.createElement("span"); //视频类型
const URLspan = document.createElement("span"); //Url链接地址
const InpDiv = document.createElement("div"); //放置file型上传按钮
const option3 = document.createElement("input"); //上传视频
this.InpDiv = InpDiv;
InpDiv.style.width = "70px";
InpDiv.style.height = "30px";
InpDiv.className = "Voicer_Btn";
InpDiv.innerText = "上传视频";
InpDiv.appendChild(option3);
option3.type = "file";
option3.accept='video/*';
option3.id = "Video_INP";
option1.className = "opt";
option1.id = "VideoSpan";
option1.innerHTML = "视频类型";
option1.className = "opt";
URLspan.className = "opt";
URLspan.id = "UrlSpan";
this.SelctInp = option3;
this.menuDiv.appendChild(option1);
this.menuDiv.appendChild(URLspan);
this.menuDiv.appendChild(InpDiv);
this.Div.appendChild(this.menuDiv);
this.selectDiv = document.createElement("div");
this.select = document.createElement("select");
const options1 = document.createElement("option");
const options2 = document.createElement("option");
options1.text = "直链";
options2.text = "外链";
options1.selected = true;
this.select.appendChild(options1);
this.select.appendChild(options2);
this.selectDiv.appendChild(this.select);
this.select.style.display = "block";
this.select.style.marginTop = "3px";
this.selectDiv.style.position = "absolute";
this.selectDiv.style.top = "3px";
this.selectDiv.style.left = "75px";
this.selectDiv.style.display = "inline-block";
option1.appendChild(this.selectDiv);
URLspan.innerHTML = "链接地址:";
const option2 = document.createElement("input"); //Url链接地址输入框
const submitBtn = document.createElement("button"); //链接提交按钮
this.SubBtn = submitBtn;
submitBtn.id = "SubBtn";
submitBtn.className = "Voicer_Btn";
submitBtn.type = "submit";
submitBtn.innerText = "提交";
this.URLInp = option2;
option2.id = "UrlInp";
option2.type = "text";
option2.name = "URL地址";
option2.value = "";
URLspan.appendChild(option2);
URLspan.appendChild(this.SubBtn);
const FinishBtn = document.createElement("button"); //完成编辑按钮
FinishBtn.type = "submit";
FinishBtn.innerText = "完成";
FinishBtn.className = "Voicer_Btn";
this.FinishBtn = FinishBtn;
this.menuDiv.appendChild(this.FinishBtn);
let DragDiv = document.createElement("div");
this.DragDiv=DragDiv;
DragDiv.id = "DragDiv";
DragDiv.classList="iconfont iDrag";
DragDiv.style.width = "25px";
DragDiv.style.height = "25px";
DragDiv.style.borderRadius = "50%"; //圆角百分比
DragDiv.style.position = "absolute";
DragDiv.style.zIndex='999';
DragDiv.style.backgroundColor = "rgb(235 239 242 / 80%)";
DragDiv.style.boxShadow = "0px 0px 5px #88c8888";
DragDiv.style.left = this.Div.offsetWidth + "px";
DragDiv.style.top = this.Div.offsetHeight + "px";
DragDiv.style.transform = "translate(-50%, -50%)";
DragDiv.style.cursor='nw-resize';
//为上传视频按钮绑定一个点击事件
this.InpDiv.onclick = function (n){
n.stopPropagation();
Video_INP.click();
};
this.InpDiv.onmousemove=function(evn){
evn.stopPropagation();
}
Video_INP.onchange = (file) => {
φ("#mediaFileStore").append(file.target.files[0]);
var url = window.URL.createObjectURL(file.target.files[0]);
// --------------------此处引用读取MP4缩略图封面的方法---------------------------------//
getVideoPreviewImg(url,this.VideoDiv.offsetWidth,this.Div.offsetHeight).then(res=>{
/* 缩略图的base64数据 */
this.dp.switchVideo(
{
url: url,
pic: res,
thumbnails: 'second.jpg',
},
{
id: 'test',
api: 'https://api.prprpr.me/dplayer/',
maximum: 3000,
user: 'DIYgod',
}
);
console.log(res)
})
//---------------------------------------------------------------------//
φ(".VideoDiv").onload = function () {
window.URL.revokeObjectURL(src);
};
};
//为视相域右下角的圆形的拖拽div,绑定一个鼠标下压事件
this.Div.appendChild(DragDiv);
DragDiv.onmousedown = (e) => {
e.stopPropagation();
document.onmousemove = (event) => {
if (
event.pageX - this.XY.X < 280 && this.WH.W > event.pageX - this.XY.X
) {
//若当前Div设置的新值宽度小于280且Div的当前宽大于鼠标移动的新值,退出程序
return;
}
if (
event.pageY - this.XY.Y < 120 && this.WH.H > event.pageY - this.XY.Y
) {
//若当前Div设置的新值高度小于280且Div的当前高大于鼠标移动的新值,退出程序
return;
}
this.DrawDiv_WH(event, this.XY);
this.DPlayerDivT();
};
document.onmouseup=(e)=>{//document、window是全局变量,避免事件替换;解决方法就是阻止冒泡后,将onmousemove事件和onmouseup事件都置空
e.stopPropagation();
document.onmousemove=null;
this.RcordTransform("resize");//记录大小改变
document.onmouseup=null;
console.log(WZCContorller.History)
}
};
option1.style.cssText =
"cursor:default;margin:0px 55px 0 25px;;;user-select:none;display:inline-block";
URLspan.style.cssText =
"cursor:default;margin:0 20px;user-select:none;display:inline-block";
option2.style.cssText =
"cursor:default;margin:0 10px;padding: 0px 3px;height:20px;display:inline-block";
submitBtn.style.cssText =
"cursor:default;margin:0 10px;display:inline-block;width:50px;Height:30px";
option3.style.cssText = "display:none";
InpDiv.style.cssText =
"cursor:default;margin:0 10px 0 10px;width:70px;user-select:none;display:inline-block";
FinishBtn.style.cssText =
"cursor:default;margin:0px 10px;display:inline-block;width:50px;Height:30px";
this.DPlayerDivT();
this.SubBtn.onclick = (e) => {
this.urlVal = this.URLInp.value;
if (this.select.value === "直链") {
this.dp.switchVideo(
{
url: this.urlVal,
pic: 'second.png',
thumbnails: 'second.jpg',
},
{
id: 'test',
api: 'https://api.prprpr.me/dplayer/',
maximum: 3000,
user: 'DIYgod',
}
);
e.stopPropagation();
} else {
this.IframeVideo(this.urlVal);
}
};
// select的改变事件
this.select.onchange = (e) => {
var str = this.select.value;
switch (str) {
case "直链":
this.ShowVideo(this.urlVal);
break;
case "外链":
// console.log(this.urlVal);
this.IframeVideo(this.urlVal);
break;
}
};
// 阻止点击文字时出现冒泡事件
this.optArr = document.getElementsByClassName("opt");
for (let i = 0; i < this.optArr.length; i++) {
this.optArr[i].onmousedown = (event) => {
event.stopPropagation();
this.OnToolbarDraw = true;
};
this.optArr[i].style.position = "relative";
}
//按下菜单区域
this.menuDiv.onmousedown = () => {
//当点击事件发生后给父类里面发送信号
this.OnToolbarDraw = true;
};
//松开菜单栏区域
this.menuDiv.onmouseup = () => {
this.OnToolbarDraw = false;
};
//双击菜单栏区域阻止事件冒泡
this.menuDiv.ondblclick = (ev) => {
ev.stopPropagation();
};
//右击菜单栏区域阻止事件冒泡
this.menuDiv.oncontextmenu = (ev) => {
ev.preventDefault();
ev.stopPropagation();
};
//视相域完成,退出编辑状态
this.FinishBtn.onmousedown = (e) => {
//清除菜单 此刻处于非编辑状态
e.stopPropagation();
if (!this.OnToolbarDraw) {
this.ExitEdit();
}
};
};
}
//扩展父类的sync_XY()的方法
Sync_XY(XY){
super.Sync_XY(XY);
if(this.VideoWrapper){
this.VideoWrapper.style.left=this.XY.X+"px";
this.VideoWrapper.style.top=this.XY.Y+"px";
}
}
//退出编辑
ExitEdit() {
this.Div.style.overflow="hidden";
WZCContorller.editState = false; //非编辑状态阻止mousemove事件的冒泡
if (this.editing) {
//移除this.menuDiv
removeElement(document.getElementById("Au_menu"));
removeElement(document.getElementById("DragDiv"));
}
this.editing=false;
}
//视相域形成T字形
DPlayerDivT() {
if(this.AudioWrapper){
this.AudioWrapper.style.width= this.WH.W+'px';
this.AudioWrapper.style.height= this.WH.H+'px';
}
if(this.VideoWrapper){
this.VideoWrapper.style.width= this.WH.W+'px';
this.VideoWrapper.style.height= this.WH.H+'px';
}
this.DragDiv.style.left = this.WH.W + "px";
this.DragDiv.style.top = this.WH.H + "px";
this.Div.style.width=this.WH.W+"px";
this.Div.style.height=this.WH.H+"px";
this.VideoDiv.style.width =this.Div.offsetWidth+"px";
this.VideoDiv.style.height=this.Div.offsetHeight+"px";
this.menuDiv.style.width = this.Div.style.width;
this.distance = 0;
//当文本域的宽度小于菜单栏的宽度时 形成 T 字形
if (this.Div.offsetWidth < 690) {
this.menuDiv.style.minWidth = "690px";
this.distance = (this.menuDiv.clientWidth - this.Div.clientWidth) / 2;
this.menuDiv.style.marginLeft = -this.distance + "px";
} else {
this.menuDiv.style.textAlign = "center";
this.Div.style.display = "block";
this.distance = (this.menuDiv.clientWidth - this.Div.clientWidth) / 2;
this.menuDiv.style.marginLeft = this.distance + "px";
}
}
// 选择直链时对应显示Video组件;并删除AplayerDiv内部的ifram元素
ShowVideo(url) {
this.VideoDiv = document.createElement("div");
this.VideoDiv.className = "VideoDiv";
this.VideoDiv.id="VideoDiv";
this.VideoDiv.style.width =this.Div.offsetWidth+"px";
this.VideoDiv.style.height=this.Div.offsetHeight+"px";
this.Div.appendChild(this.VideoDiv);
if(this.InpDiv){
this.InpDiv.style.display="inline-block";
}
if (this.New_Iframe) {
removeElement(this.New_Iframe);
removeElement(this.VideoWrapper);
this.New_Iframe='';
}
// this.Div.style.backgroundColor= this.Div.BgColor;
this.dp = new DPlayer({
container:this.VideoDiv,
autoplay: false,
theme: '#FADFA3',
loop: true,
lang: 'zh-cn',
screenshot: true,
hotkey: true,
preload: 'auto',
logo: './img/logo.png',
volume: 0.5,
mutex: true,
video: {
url: url||'https://api.dogecloud.com/player/get.mp4?vcode=5ac682e6f8231991&userId=17&ext=.mp4',
pic: 'dplayer.png',
thumbnails: 'thumbnails.jpg',
type: 'auto',
},
subtitle: {
url: 'dplayer.vtt',
type: 'webvtt',
fontSize: '25px',
bottom: '10%',
color: '#b7daff',
},
danmaku: {
id: '9E2E3368B56CDBB4',
api: 'https://api.prprpr.me/dplayer/',
token: 'tokendemo',
maximum: 1000,
addition: ['https://api.prprpr.me/dplayer/v3/bilibili?aid=4157142'],
user: 'DIYgod',
bottom: '15%',
unlimited: true,
},
highlight: [
{
time: 20,
text: '这是第 20 秒',
},
{
time: 120,
text: '这是 2 分钟',
},
],
});
this.Div.φ('.dplayer-controller').onmousedown=(e)=>{
e.stopPropagation();
}
}
IframeVideo(url) {
this.InpDiv.style.display="none";
this.dp=null;
removeElement(this.Div.querySelector(".VideoDiv"));
if (this.New_Iframe) {
document.getElementById("IframeAu").src = url;
} else {
this.New_Iframe = document.createElement("iframe");
this.New_Iframe.id = "IframeAu";
this.New_Iframe.style.width = "100%";
this.New_Iframe.style.height = "100%";
this.New_Iframe.src = url || "https://kf369.cn/music/";
this.New_Iframe.style.frameborder = "0";
this.VideoWrapper=document.createElement("div");
this.VideoWrapper.style.width=this.WH.W+"px";
this.VideoWrapper.style.height=this.WH.H+"px";
this.VideoWrapper.style.position="absolute";
this.VideoWrapper.style.left=this.XY.X+"px";
this.VideoWrapper.style.top=this.XY.Y+"px";
this.Div.style.backgroundColor="transparent";
this.VideoWrapper.style.zIndex='-1';
this.VideoWrapper.appendChild(this.New_Iframe);
document.body.appendChild(this.VideoWrapper);
}
}
}
//文本滑块组
class textSlider {
constructor(iptVal, father) {
//字体大小模块设计(文本框 + 滑块 + px)
this.textInput = document.createElement("input");
this.textInput.type = "text";
this.textInput.className = "inputText";
this.slider = document.createElement("input");
this.slider.className = "sliderDemo";
this.slider.type = "range";
this.slider.min = "0";
this.slider.max = "1000";
this.visible = false;
//字体大小的方法
this.sliderInputFuc = null;
this.textInputFuc = null;
father.appendChild(this.textInput);
father.appendChild(this.slider);
this.textInput.value = iptVal;
this.slider.value = iptVal;
this.slider.style.background =
"linear-gradient(to right, #059CFA, white " +
this.slider.value / 10 +
"%, white)";
this.slider.oninput = () => {
this.slider.style.background =
"linear-gradient(to right, #059CFA, white " + this.slider.value / 10 +"%, white)";
this.textInput.value = this.slider.value;
if (this.sliderInputFuc) {
this.sliderInputFuc(this);
}
};
this.slider.onmousedown = (event) => {
event.stopPropagation();
this.visible = true;
};
this.slider.onmouseup = () => {
this.visible = false;
this.textInput.focus();
};
this.textInput.oninput = (e) => {
this.textInput.value = this.textInput.value.replace(/\D/g, "");
this.slider.value = this.textInput.value;
if (this.sliderInputFuc) {
this.sliderInputFuc(this);
}
};
this.textInput.onfocus = () => {
this.visible = false;
this.slider.style.display = "inline-block";
};
this.textInput.onblur = () => {
if (this.visible) {
this.slider.style.display = "block";
} else {
this.slider.style.display = "none";
}
};
this.textInput.onmousedown = (event) => {
if (this.textInputFuc) this.textInputFuc(this);
event.stopPropagation();
};
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(v,h,p){v!=Array.prototype&&v!=Object.prototype&&(v[h]=p.value)};$jscomp.getGlobal=function(v){return"undefined"!=typeof window&&window===v?v:"undefined"!=typeof global&&null!=global?global:v};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(v,h,p,n){if(h){p=$jscomp.global;v=v.split(".");for(n=0;n<v.length-1;n++){var m=v[n];m in p||(p[m]={});p=p[m]}v=v[v.length-1];n=p[v];h=h(n);h!=n&&null!=h&&$jscomp.defineProperty(p,v,{configurable:!0,writable:!0,value:h})}};$jscomp.polyfill("Object.setPrototypeOf",function(v){return v?v:"object"!=typeof"".__proto__?null:function(h,p){h.__proto__=p;if(h.__proto__!==p)throw new TypeError(h+" is not extensible");return h}},"es6","es5");
(function(v){"object"===typeof exports&&"undefined"!==typeof module?module.exports=v():"function"===typeof define&&define.amd?define([],v):("undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:this).jsmediatags=v()})(function(){return function h(p,n,m){function q(d,b){if(!n[d]){if(!p[d]){var g="function"==typeof require&&require;if(!b&&g)return g(d,!0);if(t)return t(d,!0);b=Error("Cannot find module '"+d+"'");throw b.code="MODULE_NOT_FOUND",b;}b=n[d]=
{exports:{}};p[d][0].call(b.exports,function(b){var k=p[d][1][b];return q(k?k:b)},b,b.exports,h,p,n,m)}return n[d].exports}for(var t="function"==typeof require&&require,f=0;f<m.length;f++)q(m[f]);return q}({1:[function(h,p,n){},{}],2:[function(h,p,n){p.exports=XMLHttpRequest},{}],3:[function(h,p,n){function m(b){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?
"symbol":typeof a};return m(b)}function q(b,a){for(var e=0;e<a.length;e++){var c=a[e];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(b,c.key,c)}}function t(b,a,e){a&&q(b.prototype,a);e&&q(b,e);return b}function f(b){f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)};return f(b)}function d(b){if(void 0===b)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return b}
function b(b,a){if("function"!==typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function");b.prototype=Object.create(a&&a.prototype,{constructor:{value:b,writable:!0,configurable:!0}});a&&g(b,a)}function g(b,a){g=Object.setPrototypeOf||function(a,c){a.__proto__=c;return a};return g(b,a)}function k(b,a,e){a in b?Object.defineProperty(b,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):b[a]=e;return b}h=function(g){function a(e){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");
var c=f(a).call(this);c=!c||"object"!==m(c)&&"function"!==typeof c?d(this):c;k(d(c),"_array",void 0);k(d(c),"_size",void 0);c._array=e;c._size=e.length;c._isInitialized=!0;return c}b(a,g);t(a,[{key:"init",value:function(a){setTimeout(a.onSuccess,0)}},{key:"loadRange",value:function(a,c){setTimeout(c.onSuccess,0)}},{key:"getByteAt",value:function(a){if(a>=this._array.length)throw Error("Offset "+a+" hasn't been loaded yet.");return this._array[a]}}],[{key:"canReadFile",value:function(a){return Array.isArray(a)||
"function"===typeof Buffer&&Buffer.isBuffer(a)}}]);return a}(h("./MediaFileReader"));p.exports=h},{"./MediaFileReader":11}],4:[function(h,p,n){function m(a){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return m(a)}function q(a,e){for(var c=0;c<e.length;c++){var l=e[c];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=
!0);Object.defineProperty(a,l.key,l)}}function t(a,e,c){e&&q(a.prototype,e);c&&q(a,c);return a}function f(a){f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)};return f(a)}function d(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function b(a,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(e&&
e.prototype,{constructor:{value:a,writable:!0,configurable:!0}});e&&g(a,e)}function g(a,e){g=Object.setPrototypeOf||function(c,a){c.__proto__=a;return c};return g(a,e)}function k(a,e,c){e in a?Object.defineProperty(a,e,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[e]=c;return a}var r=h("./ChunkedFileData");h=function(a){function e(c){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var a=f(e).call(this);a=!a||"object"!==m(a)&&"function"!==typeof a?d(this):
a;k(d(a),"_blob",void 0);k(d(a),"_fileData",void 0);a._blob=c;a._fileData=new r;return a}b(e,a);t(e,[{key:"_init",value:function(c){this._size=this._blob.size;setTimeout(c.onSuccess,1)}},{key:"loadRange",value:function(c,a){var e=this,l=(this._blob.slice||this._blob.mozSlice||this._blob.webkitSlice).call(this._blob,c[0],c[1]+1),b=new FileReader;b.onloadend=function(l){l=new Uint8Array(b.result);e._fileData.addData(c[0],l);a.onSuccess()};b.onerror=b.onabort=function(c){if(a.onError)a.onError({type:"blob",
info:b.error})};b.readAsArrayBuffer(l)}},{key:"getByteAt",value:function(a){return this._fileData.getByteAt(a)}}],[{key:"canReadFile",value:function(a){return"undefined"!==typeof Blob&&a instanceof Blob||"undefined"!==typeof File&&a instanceof File}}]);return e}(h("./MediaFileReader"));p.exports=h},{"./ChunkedFileData":5,"./MediaFileReader":11}],5:[function(h,p,n){function m(h,f){for(var d=0;d<f.length;d++){var b=f[d];b.enumerable=b.enumerable||!1;b.configurable=!0;"value"in b&&(b.writable=!0);Object.defineProperty(h,
b.key,b)}}function q(h,f,d){f&&m(h.prototype,f);d&&m(h,d);return h}h=function(){function h(){if(!(this instanceof h))throw new TypeError("Cannot call a class as a function");"_fileData"in this?Object.defineProperty(this,"_fileData",{value:void 0,enumerable:!0,configurable:!0,writable:!0}):this._fileData=void 0;this._fileData=[]}q(h,null,[{key:"NOT_FOUND",get:function(){return-1}}]);q(h,[{key:"addData",value:function(f,d){var b=f+d.length-1,g=this._getChunkRange(f,b);if(-1===g.startIx)this._fileData.splice(g.insertIx||
0,0,{offset:f,data:d});else{var k=this._fileData[g.startIx],r=this._fileData[g.endIx];b=b<r.offset+r.data.length-1;var a={offset:Math.min(f,k.offset),data:d};f>k.offset&&(f=this._sliceData(k.data,0,f-k.offset),a.data=this._concatData(f,d));b&&(f=this._sliceData(a.data,0,r.offset-a.offset),a.data=this._concatData(f,r.data));this._fileData.splice(g.startIx,g.endIx-g.startIx+1,a)}}},{key:"_concatData",value:function(f,d){if("undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(f)){var b=
new f.constructor(f.length+d.length);b.set(f,0);b.set(d,f.length);return b}return f.concat(d)}},{key:"_sliceData",value:function(f,d,b){return f.slice?f.slice(d,b):f.subarray(d,b)}},{key:"_getChunkRange",value:function(f,d){for(var b,g,k=-1,r=-1,a=0,e=0;e<this._fileData.length;e++,a=e){g=this._fileData[e].offset;b=g+this._fileData[e].data.length;if(d<g-1)break;if(f<=b+1&&d>=g-1){k=e;break}}if(-1===k)return{startIx:-1,endIx:-1,insertIx:a};for(e=k;e<this._fileData.length&&!(g=this._fileData[e].offset,
b=g+this._fileData[e].data.length,d>=g-1&&(r=e),d<=b+1);e++);-1===r&&(r=k);return{startIx:k,endIx:r}}},{key:"hasDataRange",value:function(f,d){for(var b=0;b<this._fileData.length;b++){var g=this._fileData[b];if(d<g.offset)break;if(f>=g.offset&&d<g.offset+g.data.length)return!0}return!1}},{key:"getByteAt",value:function(f){for(var d,b=0;b<this._fileData.length;b++){var g=this._fileData[b].offset,k=g+this._fileData[b].data.length-1;if(f>=g&&f<=k){d=this._fileData[b];break}}if(d)return d.data[f-d.offset];
throw Error("Offset "+f+" hasn't been loaded yet.");}}]);return h}();p.exports=h},{}],6:[function(h,p,n){function m(a){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return m(a)}function q(a,e){for(var c=0;c<e.length;c++){var b=e[c];b.enumerable=b.enumerable||!1;b.configurable=!0;"value"in b&&(b.writable=!0);Object.defineProperty(a,b.key,b)}}
function t(a,e,b){e&&q(a.prototype,e);b&&q(a,b);return a}function f(a){f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)};return f(a)}function d(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function b(a,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,
configurable:!0}});e&&g(a,e)}function g(a,e){g=Object.setPrototypeOf||function(a,c){a.__proto__=c;return a};return g(a,e)}function k(a,e,b){e in a?Object.defineProperty(a,e,{value:b,enumerable:!0,configurable:!0,writable:!0}):a[e]=b;return a}var r=[4,132],a=[6,134],e="Other;32x32 pixels 'file icon' (PNG only);Other file icon;Cover (front);Cover (back);Leaflet page;Media (e.g. label side of CD);Lead artist/lead performer/soloist;Artist/performer;Conductor;Band/Orchestra;Composer;Lyricist/text writer;Recording Location;During recording;During performance;Movie/video screen capture;A bright coloured fish;Illustration;Band/artist logotype;Publisher/Studio logotype".split(";");
h=function(c){function l(){var a;if(!(this instanceof l))throw new TypeError("Cannot call a class as a function");for(var c=arguments.length,e=Array(c),b=0;b<c;b++)e[b]=arguments[b];c=(a=f(l)).call.apply(a,[this].concat(e));a=!c||"object"!==m(c)&&"function"!==typeof c?d(this):c;k(d(a),"_commentOffset",void 0);k(d(a),"_pictureOffset",void 0);return a}b(l,c);t(l,[{key:"_loadData",value:function(a,c){var e=this;a.loadRange([4,7],{onSuccess:function(){e._loadBlock(a,4,c)}})}},{key:"_loadBlock",value:function(c,
e,b){var l=this,d=c.getByteAt(e),k=c.getInteger24At(e+1,!0);if(-1!==r.indexOf(d)){var g=e+4;c.loadRange([g,g+k],{onSuccess:function(){l._commentOffset=g;l._nextBlock(c,e,d,k,b)}})}else-1!==a.indexOf(d)?(g=e+4,c.loadRange([g,g+k],{onSuccess:function(){l._pictureOffset=g;l._nextBlock(c,e,d,k,b)}})):l._nextBlock(c,e,d,k,b)}},{key:"_nextBlock",value:function(a,c,e,b,l){var d=this;if(127<e)if(d._commentOffset)l.onSuccess();else l.onError({type:"loadData",info:"Comment block could not be found."});else a.loadRange([c+
4+b,c+4+4+b],{onSuccess:function(){d._loadBlock(a,c+4+b,l)}})}},{key:"_parseData",value:function(a,c){var b=a.getLongAt(this._commentOffset,!1)+(this._commentOffset+4);c=a.getLongAt(b,!1);b+=4;for(var l,d,k,g,u,r,f=0;f<c;f++){var w=a.getLongAt(b,!1),h=a.getStringWithCharsetAt(b+4,w,"utf-8").toString(),m=h.indexOf("=");h=[h.slice(0,m),h.slice(m+1)];switch(h[0]){case "TITLE":l=h[1];break;case "ARTIST":d=h[1];break;case "ALBUM":k=h[1];break;case "TRACKNUMBER":g=h[1];break;case "GENRE":u=h[1]}b+=4+w}this._pictureOffset&&
(r=a.getLongAt(this._pictureOffset,!0),c=this._pictureOffset+4,b=a.getLongAt(c,!0),f=c+4,c=a.getStringAt(f,b),b=f+b,f=a.getLongAt(b,!0),w=b+4,b=a.getStringWithCharsetAt(w,f,"utf-8").toString(),f=w+f+16,w=a.getLongAt(f,!0),a=a.getBytesAt(f+4,w,!0),r={format:c,type:e[r],description:b,data:a});return{type:"FLAC",version:"1",tags:{title:l,artist:d,album:k,track:g,genre:u,picture:r}}}}],[{key:"getTagIdentifierByteRange",value:function(){return{offset:0,length:4}}},{key:"canReadTagFormat",value:function(a){return"fLaC"===
String.fromCharCode.apply(String,a.slice(0,4))}}]);return l}(h("./MediaTagReader"));p.exports=h},{"./MediaTagReader":12}],7:[function(h,p,n){function m(b){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(b){return typeof b}:function(b){return b&&"function"===typeof Symbol&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b};return m(b)}function q(b,d){for(var a=0;a<d.length;a++){var e=d[a];e.enumerable=e.enumerable||!1;e.configurable=!0;"value"in e&&(e.writable=
!0);Object.defineProperty(b,e.key,e)}}function t(b,d,a){d&&q(b.prototype,d);a&&q(b,a);return b}function f(b){f=Object.setPrototypeOf?Object.getPrototypeOf:function(b){return b.__proto__||Object.getPrototypeOf(b)};return f(b)}function d(d,g){if("function"!==typeof g&&null!==g)throw new TypeError("Super expression must either be null or a function");d.prototype=Object.create(g&&g.prototype,{constructor:{value:d,writable:!0,configurable:!0}});g&&b(d,g)}function b(d,g){b=Object.setPrototypeOf||function(a,
e){a.__proto__=e;return a};return b(d,g)}n=h("./MediaTagReader");h("./MediaFileReader");h=function(b){function k(){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");var a=f(k).apply(this,arguments);if(!a||"object"!==m(a)&&"function"!==typeof a){if(void 0===this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=this}return a}d(k,b);t(k,[{key:"_loadData",value:function(a,e){var c=a.getSize();a.loadRange([c-128,c-1],e)}},{key:"_parseData",
value:function(a,e){var c=a.getSize()-128,b=a.getStringWithCharsetAt(c+3,30).toString(),d=a.getStringWithCharsetAt(c+33,30).toString(),k=a.getStringWithCharsetAt(c+63,30).toString(),f=a.getStringWithCharsetAt(c+93,4).toString();var h=a.getByteAt(c+97+28);e=a.getByteAt(c+97+29);if(0==h&&0!=e){var r="1.1";h=a.getStringWithCharsetAt(c+97,28).toString()}else r="1.0",h=a.getStringWithCharsetAt(c+97,30).toString(),e=0;a=a.getByteAt(c+97+30);a={type:"ID3",version:r,tags:{title:b,artist:d,album:k,year:f,
comment:h,genre:255>a?g[a]:""}};e&&(a.tags.track=e);return a}}],[{key:"getTagIdentifierByteRange",value:function(){return{offset:-128,length:128}}},{key:"canReadTagFormat",value:function(a){return"TAG"===String.fromCharCode.apply(String,a.slice(0,3))}}]);return k}(n);var g="Blues;Classic Rock;Country;Dance;Disco;Funk;Grunge;Hip-Hop;Jazz;Metal;New Age;Oldies;Other;Pop;R&B;Rap;Reggae;Rock;Techno;Industrial;Alternative;Ska;Death Metal;Pranks;Soundtrack;Euro-Techno;Ambient;Trip-Hop;Vocal;Jazz+Funk;Fusion;Trance;Classical;Instrumental;Acid;House;Game;Sound Clip;Gospel;Noise;AlternRock;Bass;Soul;Punk;Space;Meditative;Instrumental Pop;Instrumental Rock;Ethnic;Gothic;Darkwave;Techno-Industrial;Electronic;Pop-Folk;Eurodance;Dream;Southern Rock;Comedy;Cult;Gangsta;Top 40;Christian Rap;Pop/Funk;Jungle;Native American;Cabaret;New Wave;Psychadelic;Rave;Showtunes;Trailer;Lo-Fi;Tribal;Acid Punk;Acid Jazz;Polka;Retro;Musical;Rock & Roll;Hard Rock;Folk;Folk-Rock;National Folk;Swing;Fast Fusion;Bebob;Latin;Revival;Celtic;Bluegrass;Avantgarde;Gothic Rock;Progressive Rock;Psychedelic Rock;Symphonic Rock;Slow Rock;Big Band;Chorus;Easy Listening;Acoustic;Humour;Speech;Chanson;Opera;Chamber Music;Sonata;Symphony;Booty Bass;Primus;Porn Groove;Satire;Slow Jam;Club;Tango;Samba;Folklore;Ballad;Power Ballad;Rhythmic Soul;Freestyle;Duet;Punk Rock;Drum Solo;Acapella;Euro-House;Dance Hall".split(";");
p.exports=h},{"./MediaFileReader":11,"./MediaTagReader":12}],8:[function(h,p,n){function m(a,e){for(var c=0;c<e.length;c++){var b=e[c];b.enumerable=b.enumerable||!1;b.configurable=!0;"value"in b&&(b.writable=!0);Object.defineProperty(a,b.key,b)}}function q(a,e,c){e&&m(a.prototype,e);c&&m(a,c);return a}function t(a){switch(a){case 0:a="iso-8859-1";break;case 1:a="utf-16";break;case 2:a="utf-16be";break;case 3:a="utf-8";break;default:a="iso-8859-1"}return a}function f(a,e,c,b){var l=c.getStringWithCharsetAt(a+
1,e-1,b);a=c.getStringWithCharsetAt(a+1+l.bytesReadCount,e-1-l.bytesReadCount,b);return{user_description:l.toString(),data:a.toString()}}h("./MediaFileReader");var d=h("./StringUtils"),b=h("./ArrayFileReader"),g={BUF:"Recommended buffer size",CNT:"Play counter",COM:"Comments",CRA:"Audio encryption",CRM:"Encrypted meta frame",ETC:"Event timing codes",EQU:"Equalization",GEO:"General encapsulated object",IPL:"Involved people list",LNK:"Linked information",MCI:"Music CD Identifier",MLL:"MPEG location lookup table",
PIC:"Attached picture",POP:"Popularimeter",REV:"Reverb",RVA:"Relative volume adjustment",SLT:"Synchronized lyric/text",STC:"Synced tempo codes",TAL:"Album/Movie/Show title",TBP:"BPM (Beats Per Minute)",TCM:"Composer",TCO:"Content type",TCR:"Copyright message",TDA:"Date",TDY:"Playlist delay",TEN:"Encoded by",TFT:"File type",TIM:"Time",TKE:"Initial key",TLA:"Language(s)",TLE:"Length",TMT:"Media type",TOA:"Original artist(s)/performer(s)",TOF:"Original filename",TOL:"Original Lyricist(s)/text writer(s)",
TOR:"Original release year",TOT:"Original album/Movie/Show title",TP1:"Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group",TP2:"Band/Orchestra/Accompaniment",TP3:"Conductor/Performer refinement",TP4:"Interpreted, remixed, or otherwise modified by",TPA:"Part of a set",TPB:"Publisher",TRC:"ISRC (International Standard Recording Code)",TRD:"Recording dates",TRK:"Track number/Position in set",TSI:"Size",TSS:"Software/hardware and settings used for encoding",TT1:"Content group description",TT2:"Title/Songname/Content description",
TT3:"Subtitle/Description refinement",TXT:"Lyricist/text writer",TXX:"User defined text information frame",TYE:"Year",UFI:"Unique file identifier",ULT:"Unsychronized lyric/text transcription",WAF:"Official audio file webpage",WAR:"Official artist/performer webpage",WAS:"Official audio source webpage",WCM:"Commercial information",WCP:"Copyright/Legal information",WPB:"Publishers official webpage",WXX:"User defined URL link frame",AENC:"Audio encryption",APIC:"Attached picture",ASPI:"Audio seek point index",
CHAP:"Chapter",CTOC:"Table of contents",COMM:"Comments",COMR:"Commercial frame",ENCR:"Encryption method registration",EQU2:"Equalisation (2)",EQUA:"Equalization",ETCO:"Event timing codes",GEOB:"General encapsulated object",GRID:"Group identification registration",IPLS:"Involved people list",LINK:"Linked information",MCDI:"Music CD identifier",MLLT:"MPEG location lookup table",OWNE:"Ownership frame",PRIV:"Private frame",PCNT:"Play counter",POPM:"Popularimeter",POSS:"Position synchronisation frame",
RBUF:"Recommended buffer size",RVA2:"Relative volume adjustment (2)",RVAD:"Relative volume adjustment",RVRB:"Reverb",SEEK:"Seek frame",SYLT:"Synchronized lyric/text",SYTC:"Synchronized tempo codes",TALB:"Album/Movie/Show title",TBPM:"BPM (beats per minute)",TCOM:"Composer",TCON:"Content type",TCOP:"Copyright message",TDAT:"Date",TDLY:"Playlist delay",TDRC:"Recording time",TDRL:"Release time",TDTG:"Tagging time",TENC:"Encoded by",TEXT:"Lyricist/Text writer",TFLT:"File type",TIME:"Time",TIPL:"Involved people list",
TIT1:"Content group description",TIT2:"Title/songname/content description",TIT3:"Subtitle/Description refinement",TKEY:"Initial key",TLAN:"Language(s)",TLEN:"Length",TMCL:"Musician credits list",TMED:"Media type",TMOO:"Mood",TOAL:"Original album/movie/show title",TOFN:"Original filename",TOLY:"Original lyricist(s)/text writer(s)",TOPE:"Original artist(s)/performer(s)",TORY:"Original release year",TOWN:"File owner/licensee",TPE1:"Lead performer(s)/Soloist(s)",TPE2:"Band/orchestra/accompaniment",TPE3:"Conductor/performer refinement",
TPE4:"Interpreted, remixed, or otherwise modified by",TPOS:"Part of a set",TPRO:"Produced notice",TPUB:"Publisher",TRCK:"Track number/Position in set",TRDA:"Recording dates",TRSN:"Internet radio station name",TRSO:"Internet radio station owner",TSOA:"Album sort order",TSOP:"Performer sort order",TSOT:"Title sort order",TSIZ:"Size",TSRC:"ISRC (international standard recording code)",TSSE:"Software/Hardware and settings used for encoding",TSST:"Set subtitle",TYER:"Year",TXXX:"User defined text information frame",
UFID:"Unique file identifier",USER:"Terms of use",USLT:"Unsychronized lyric/text transcription",WCOM:"Commercial information",WCOP:"Copyright/Legal information",WOAF:"Official audio file webpage",WOAR:"Official artist/performer webpage",WOAS:"Official audio source webpage",WORS:"Official internet radio station homepage",WPAY:"Payment",WPUB:"Publishers official webpage",WXXX:"User defined URL link frame"};h=function(){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");
}q(a,null,[{key:"getFrameReaderFunction",value:function(a){return a in k?k[a]:"T"===a[0]?k["T*"]:"W"===a[0]?k["W*"]:null}},{key:"readFrames",value:function(e,c,b,d,g){for(var l={},k=this._getFrameHeaderSize(d);e<c-k;){var f=this._readFrameHeader(b,e,d),u=f.id;if(!u)break;var h=f.flags,w=f.size,r=e+f.headerSize,m=b;e+=f.headerSize+f.size;if(!g||-1!==g.indexOf(u)){if("MP3e"===u||"\x00MP3"===u||"\x00\x00MP"===u||" MP3"===u)break;h&&h.format.unsynchronisation&&(m=this.getUnsyncFileReader(m,r,w),r=0,w=
m.getSize());h&&h.format.data_length_indicator&&(r+=4,w-=4);h=(f=a.getFrameReaderFunction(u))?f.apply(this,[r,w,m,h,d]):null;r=this._getFrameDescription(u);w={id:u,size:w,description:r,data:h};u in l?(l[u].id&&(l[u]=[l[u]]),l[u].push(w)):l[u]=w}}return l}},{key:"_getFrameHeaderSize",value:function(a){a=a.major;return 2==a?6:3==a||4==a?10:0}},{key:"_readFrameHeader",value:function(a,c,b){var e=b.major,l=null;b=this._getFrameHeaderSize(b);switch(e){case 2:var d=a.getStringAt(c,3);var g=a.getInteger24At(c+
3,!0);break;case 3:d=a.getStringAt(c,4);g=a.getLongAt(c+4,!0);break;case 4:d=a.getStringAt(c,4),g=a.getSynchsafeInteger32At(c+4)}if(d==String.fromCharCode(0,0,0)||d==String.fromCharCode(0,0,0,0))d="";d&&2<e&&(l=this._readFrameFlags(a,c+8));return{id:d||"",size:g||0,headerSize:b||0,flags:l}}},{key:"_readFrameFlags",value:function(a,c){return{message:{tag_alter_preservation:a.isBitSetAt(c,6),file_alter_preservation:a.isBitSetAt(c,5),read_only:a.isBitSetAt(c,4)},format:{grouping_identity:a.isBitSetAt(c+
1,7),compression:a.isBitSetAt(c+1,3),encryption:a.isBitSetAt(c+1,2),unsynchronisation:a.isBitSetAt(c+1,1),data_length_indicator:a.isBitSetAt(c+1,0)}}}},{key:"_getFrameDescription",value:function(a){return a in g?g[a]:"Unknown"}},{key:"getUnsyncFileReader",value:function(a,c,l){a=a.getBytesAt(c,l);for(c=0;c<a.length-1;c++)255===a[c]&&0===a[c+1]&&a.splice(c+1,1);return new b(a)}}]);return a}();var k={APIC:function(a,b,c,l,d){l=a;var e=t(c.getByteAt(a));switch(d&&d.major){case 2:d=c.getStringAt(a+1,
3);a+=4;break;case 3:case 4:d=c.getStringWithCharsetAt(a+1,b-1);a+=1+d.bytesReadCount;break;default:throw Error("Couldn't read ID3v2 major version.");}var g=c.getByteAt(a);g=r[g];e=c.getStringWithCharsetAt(a+1,b-(a-l)-1,e);a+=1+e.bytesReadCount;return{format:d.toString(),type:g,description:e.toString(),data:c.getBytesAt(a,l+b-a)}},CHAP:function(a,b,c,l,g){l=a;var e={},k=d.readNullTerminatedString(c.getBytesAt(a,b));e.id=k.toString();a+=k.bytesReadCount;e.startTime=c.getLongAt(a,!0);a+=4;e.endTime=
c.getLongAt(a,!0);a+=4;e.startOffset=c.getLongAt(a,!0);a+=4;e.endOffset=c.getLongAt(a,!0);a+=4;e.subFrames=this.readFrames(a,a+(b-(a-l)),c,g);return e},CTOC:function(a,b,c,l,g){l=a;var e={childElementIds:[],id:void 0,topLevel:void 0,ordered:void 0,entryCount:void 0,subFrames:void 0},k=d.readNullTerminatedString(c.getBytesAt(a,b));e.id=k.toString();a+=k.bytesReadCount;e.topLevel=c.isBitSetAt(a,1);e.ordered=c.isBitSetAt(a,0);a++;e.entryCount=c.getByteAt(a);a++;for(k=0;k<e.entryCount;k++){var f=d.readNullTerminatedString(c.getBytesAt(a,
b-(a-l)));e.childElementIds.push(f.toString());a+=f.bytesReadCount}e.subFrames=this.readFrames(a,a+(b-(a-l)),c,g);return e},COMM:function(a,b,c,l,d){var e=a,g=t(c.getByteAt(a));l=c.getStringAt(a+1,3);d=c.getStringWithCharsetAt(a+4,b-4,g);a+=4+d.bytesReadCount;a=c.getStringWithCharsetAt(a,e+b-a,g);return{language:l,short_description:d.toString(),text:a.toString()}}};k.COM=k.COMM;k.PIC=function(a,b,c,l,d){return k.APIC(a,b,c,l,d)};k.PCNT=function(a,b,c,l,d){return c.getLongAt(a,!1)};k.CNT=k.PCNT;k["T*"]=
function(a,b,c,l,d){l=t(c.getByteAt(a));return c.getStringWithCharsetAt(a+1,b-1,l).toString()};k.TXXX=function(a,b,c,l,d){l=t(c.getByteAt(a));return f(a,b,c,l)};k.WXXX=function(a,b,c,l,d){if(0===b)return null;l=t(c.getByteAt(a));return f(a,b,c,l)};k["W*"]=function(a,b,c,l,d){return 0===b?null:c.getStringWithCharsetAt(a,b,"iso-8859-1").toString()};k.TCON=function(a,b,c,l){return k["T*"].apply(this,arguments).replace(/^\(\d+\)/,"")};k.TCO=k.TCON;k.USLT=function(a,b,c,l,d){var e=a,g=t(c.getByteAt(a));
l=c.getStringAt(a+1,3);d=c.getStringWithCharsetAt(a+4,b-4,g);a+=4+d.bytesReadCount;a=c.getStringWithCharsetAt(a,e+b-a,g);return{language:l,descriptor:d.toString(),lyrics:a.toString()}};k.ULT=k.USLT;k.UFID=function(a,b,c,l,g){l=d.readNullTerminatedString(c.getBytesAt(a,b));a+=l.bytesReadCount;a=c.getBytesAt(a,b-l.bytesReadCount);return{ownerIdentifier:l.toString(),identifier:a}};var r="Other;32x32 pixels 'file icon' (PNG only);Other file icon;Cover (front);Cover (back);Leaflet page;Media (e.g. label side of CD);Lead artist/lead performer/soloist;Artist/performer;Conductor;Band/Orchestra;Composer;Lyricist/text writer;Recording Location;During recording;During performance;Movie/video screen capture;A bright coloured fish;Illustration;Band/artist logotype;Publisher/Studio logotype".split(";");
p.exports=h},{"./ArrayFileReader":3,"./MediaFileReader":11,"./StringUtils":13}],9:[function(h,p,n){function m(b){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return m(b)}function q(b,a){for(var e=0;e<a.length;e++){var c=a[e];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(b,c.key,c)}}function t(b,
a,e){a&&q(b.prototype,a);e&&q(b,e);return b}function f(b){f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)};return f(b)}function d(d,a){if("function"!==typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function");d.prototype=Object.create(a&&a.prototype,{constructor:{value:d,writable:!0,configurable:!0}});a&&b(d,a)}function b(d,a){b=Object.setPrototypeOf||function(a,c){a.__proto__=c;return a};return b(d,a)}n=h("./MediaTagReader");
h("./MediaFileReader");var g=h("./ID3v2FrameReader");h=function(b){function a(){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");var b=f(a).apply(this,arguments);if(!b||"object"!==m(b)&&"function"!==typeof b){if(void 0===this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");b=this}return b}d(a,b);t(a,[{key:"_loadData",value:function(a,b){a.loadRange([6,9],{onSuccess:function(){a.loadRange([0,10+a.getSynchsafeInteger32At(6)-1],b)},
onError:b.onError})}},{key:"_parseData",value:function(a,b){var c,e=0,d=a.getByteAt(e+3);if(4<d)return{type:"ID3",version:">2.4",tags:{}};var f=a.getByteAt(e+4),h=a.isBitSetAt(e+5,7),r=a.isBitSetAt(e+5,6),m=a.isBitSetAt(e+5,5),p=a.getSynchsafeInteger32At(e+6);e+=10;if(r)if(4===d){var n=a.getSynchsafeInteger32At(e);e+=n}else n=a.getLongAt(e,!0),e+=n+4;n={type:"ID3",version:"2."+d+"."+f,major:d,revision:f,flags:{unsynchronisation:h,extended_header:r,experimental_indicator:m,footer_present:!1},size:p,
tags:{}};b&&(c=this._expandShortcutTags(b));b=p+10;n.flags.unsynchronisation&&(a=g.getUnsyncFileReader(a,e,p),e=0,b=a.getSize());a=g.readFrames(e,b,a,n,c);for(var q in k)k.hasOwnProperty(q)&&(c=this._getFrameData(a,k[q]))&&(n.tags[q]=c);for(var t in a)a.hasOwnProperty(t)&&(n.tags[t]=a[t]);return n}},{key:"_getFrameData",value:function(a,b){for(var c=0,e;e=b[c];c++)if(e in a)return a=a[e]instanceof Array?a[e][0]:a[e],a.data}},{key:"getShortcuts",value:function(){return k}}],[{key:"getTagIdentifierByteRange",
value:function(){return{offset:0,length:10}}},{key:"canReadTagFormat",value:function(a){return"ID3"===String.fromCharCode.apply(String,a.slice(0,3))}}]);return a}(n);var k={title:["TIT2","TT2"],artist:["TPE1","TP1"],album:["TALB","TAL"],year:["TYER","TYE"],comment:["COMM","COM"],track:["TRCK","TRK"],genre:["TCON","TCO"],picture:["APIC","PIC"],lyrics:["USLT","ULT"]};p.exports=h},{"./ID3v2FrameReader":8,"./MediaFileReader":11,"./MediaTagReader":12}],10:[function(h,p,n){function m(a){m="function"===
typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return m(a)}function q(a,b){for(var c=0;c<b.length;c++){var e=b[c];e.enumerable=e.enumerable||!1;e.configurable=!0;"value"in e&&(e.writable=!0);Object.defineProperty(a,e.key,e)}}function t(a,b,c){b&&q(a.prototype,b);c&&q(a,c);return a}function f(a){f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||
Object.getPrototypeOf(a)};return f(a)}function d(a,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,configurable:!0}});e&&b(a,e)}function b(a,e){b=Object.setPrototypeOf||function(a,b){a.__proto__=b;return a};return b(a,e)}n=h("./MediaTagReader");h("./MediaFileReader");h=function(a){function b(){if(!(this instanceof b))throw new TypeError("Cannot call a class as a function");
var a=f(b).apply(this,arguments);if(!a||"object"!==m(a)&&"function"!==typeof a){if(void 0===this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=this}return a}d(b,a);t(b,[{key:"_loadData",value:function(a,b){var c=this;a.loadRange([0,16],{onSuccess:function(){c._loadAtom(a,0,"",b)},onError:b.onError})}},{key:"_loadAtom",value:function(a,b,e,d){if(b>=a.getSize())d.onSuccess();else{var c=this,l=a.getLongAt(b,!0);if(0==l||isNaN(l))d.onSuccess();else{var g=a.getStringAt(b+
4,4);if(this._isContainerAtom(g)){"meta"==g&&(b+=4);var k=(e?e+".":"")+g;"moov.udta.meta.ilst"===k?a.loadRange([b,b+l],d):a.loadRange([b+8,b+8+8],{onSuccess:function(){c._loadAtom(a,b+8,k,d)},onError:d.onError})}else a.loadRange([b+l,b+l+8],{onSuccess:function(){c._loadAtom(a,b+l,e,d)},onError:d.onError})}}}},{key:"_isContainerAtom",value:function(a){return 0<=["moov","udta","meta","ilst"].indexOf(a)}},{key:"_canReadAtom",value:function(a){return"----"!==a}},{key:"_parseData",value:function(a,b){var c=
{};b=this._expandShortcutTags(b);this._readAtom(c,a,0,a.getSize(),b);for(var e in r)r.hasOwnProperty(e)&&(b=c[r[e]])&&(c[e]="track"===e?b.data.track:b.data);return{type:"MP4",ftyp:a.getStringAt(8,4),version:a.getLongAt(12,!0),tags:c}}},{key:"_readAtom",value:function(a,b,e,d,g,k,f){f=void 0===f?"":f+" ";for(var c=e;c<e+d;){var l=b.getLongAt(c,!0);if(0==l)break;var h=b.getStringAt(c+4,4);if(this._isContainerAtom(h)){"meta"==h&&(c+=4);this._readAtom(a,b,c+8,l-8,g,(k?k+".":"")+h,f);break}(!g||0<=g.indexOf(h))&&
"moov.udta.meta.ilst"===k&&this._canReadAtom(h)&&(a[h]=this._readMetadataAtom(b,c));c+=l}}},{key:"_readMetadataAtom",value:function(a,b){var c=a.getLongAt(b,!0),e=a.getStringAt(b+4,4),d=a.getInteger24At(b+16+1,!0);d=g[d];if("trkn"==e)var l={track:a.getByteAt(b+16+11),total:a.getByteAt(b+16+13)};else if("disk"==e)l={disk:a.getByteAt(b+16+11),total:a.getByteAt(b+16+13)};else{b+=24;var f=c-24;"covr"===e&&"uint8"===d&&(d="jpeg");switch(d){case "text":l=a.getStringWithCharsetAt(b,f,"utf-8").toString();
break;case "uint8":l=a.getShortAt(b,!1);break;case "int":case "uint":l=("int"==d?1==f?a.getSByteAt:2==f?a.getSShortAt:4==f?a.getSLongAt:a.getLongAt:1==f?a.getByteAt:2==f?a.getShortAt:a.getLongAt).call(a,b+(8==f?4:0),!0);break;case "jpeg":case "png":l={format:"image/"+d,data:a.getBytesAt(b,f)}}}return{id:e,size:c,description:k[e]||"Unknown",data:l}}},{key:"getShortcuts",value:function(){return r}}],[{key:"getTagIdentifierByteRange",value:function(){return{offset:0,length:16}}},{key:"canReadTagFormat",
value:function(a){return"ftyp"===String.fromCharCode.apply(String,a.slice(4,8))}}]);return b}(n);var g={0:"uint8",1:"text",13:"jpeg",14:"png",21:"int",22:"uint"},k={"\u00a9alb":"Album","\u00a9ART":"Artist",aART:"Album Artist","\u00a9day":"Release Date","\u00a9nam":"Title","\u00a9gen":"Genre",gnre:"Genre",trkn:"Track Number","\u00a9wrt":"Composer","\u00a9too":"Encoding Tool","\u00a9enc":"Encoded By",cprt:"Copyright",covr:"Cover Art","\u00a9grp":"Grouping",keyw:"Keywords","\u00a9lyr":"Lyrics","\u00a9cmt":"Comment",
tmpo:"Tempo",cpil:"Compilation",disk:"Disc Number",tvsh:"TV Show Name",tven:"TV Episode ID",tvsn:"TV Season",tves:"TV Episode",tvnn:"TV Network",desc:"Description",ldes:"Long Description",sonm:"Sort Name",soar:"Sort Artist",soaa:"Sort Album",soco:"Sort Composer",sosn:"Sort Show",purd:"Purchase Date",pcst:"Podcast",purl:"Podcast URL",catg:"Category",hdvd:"HD Video",stik:"Media Type",rtng:"Content Rating",pgap:"Gapless Playback",apID:"Purchase Account",sfID:"Country Code",atID:"Artist ID",cnID:"Catalog ID",
plID:"Collection ID",geID:"Genre ID","xid ":"Vendor Information",flvr:"Codec Flavor"},r={title:"\u00a9nam",artist:"\u00a9ART",album:"\u00a9alb",year:"\u00a9day",comment:"\u00a9cmt",track:"trkn",genre:"\u00a9gen",picture:"covr",lyrics:"\u00a9lyr"};p.exports=h},{"./MediaFileReader":11,"./MediaTagReader":12}],11:[function(h,p,n){function m(d,b){for(var g=0;g<b.length;g++){var k=b[g];k.enumerable=k.enumerable||!1;k.configurable=!0;"value"in k&&(k.writable=!0);Object.defineProperty(d,k.key,k)}}function q(d,
b,g){b&&m(d.prototype,b);g&&m(d,g);return d}function t(d,b,g){b in d?Object.defineProperty(d,b,{value:g,enumerable:!0,configurable:!0,writable:!0}):d[b]=g;return d}var f=h("./StringUtils");h=function(){function d(b){if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");t(this,"_isInitialized",void 0);t(this,"_size",void 0);this._isInitialized=!1;this._size=0}q(d,[{key:"init",value:function(b){var d=this;if(this._isInitialized)setTimeout(b.onSuccess,1);else return this._init({onSuccess:function(){d._isInitialized=
!0;b.onSuccess()},onError:b.onError})}},{key:"_init",value:function(b){throw Error("Must implement init function");}},{key:"loadRange",value:function(b,d){throw Error("Must implement loadRange function");}},{key:"getSize",value:function(){if(!this._isInitialized)throw Error("init() must be called first.");return this._size}},{key:"getByteAt",value:function(b){throw Error("Must implement getByteAt function");}},{key:"getBytesAt",value:function(b,d){for(var g=Array(d),f=0;f<d;f++)g[f]=this.getByteAt(b+
f);return g}},{key:"isBitSetAt",value:function(b,d){return 0!=(this.getByteAt(b)&1<<d)}},{key:"getSByteAt",value:function(b){b=this.getByteAt(b);return 127<b?b-256:b}},{key:"getShortAt",value:function(b,d){b=d?(this.getByteAt(b)<<8)+this.getByteAt(b+1):(this.getByteAt(b+1)<<8)+this.getByteAt(b);0>b&&(b+=65536);return b}},{key:"getSShortAt",value:function(b,d){b=this.getShortAt(b,d);return 32767<b?b-65536:b}},{key:"getLongAt",value:function(b,d){var g=this.getByteAt(b),f=this.getByteAt(b+1),a=this.getByteAt(b+
2);b=this.getByteAt(b+3);d=d?(((g<<8)+f<<8)+a<<8)+b:(((b<<8)+a<<8)+f<<8)+g;0>d&&(d+=4294967296);return d}},{key:"getSLongAt",value:function(b,d){b=this.getLongAt(b,d);return 2147483647<b?b-4294967296:b}},{key:"getInteger24At",value:function(b,d){var g=this.getByteAt(b),f=this.getByteAt(b+1);b=this.getByteAt(b+2);d=d?((g<<8)+f<<8)+b:((b<<8)+f<<8)+g;0>d&&(d+=16777216);return d}},{key:"getStringAt",value:function(b,d){for(var g=[],f=b,a=0;f<b+d;f++,a++)g[a]=String.fromCharCode(this.getByteAt(f));return g.join("")}},
{key:"getStringWithCharsetAt",value:function(b,d,k){b=this.getBytesAt(b,d);switch((k||"").toLowerCase()){case "utf-16":case "utf-16le":case "utf-16be":k=f.readUTF16String(b,"utf-16be"===k);break;case "utf-8":k=f.readUTF8String(b);break;default:k=f.readNullTerminatedString(b)}return k}},{key:"getCharAt",value:function(b){return String.fromCharCode(this.getByteAt(b))}},{key:"getSynchsafeInteger32At",value:function(b){var d=this.getByteAt(b),f=this.getByteAt(b+1),h=this.getByteAt(b+2);return this.getByteAt(b+
3)&127|(h&127)<<7|(f&127)<<14|(d&127)<<21}}],[{key:"canReadFile",value:function(b){throw Error("Must implement canReadFile function");}}]);return d}();p.exports=h},{"./StringUtils":13}],12:[function(h,p,n){function m(f,d){for(var b=0;b<d.length;b++){var g=d[b];g.enumerable=g.enumerable||!1;g.configurable=!0;"value"in g&&(g.writable=!0);Object.defineProperty(f,g.key,g)}}function q(f,d,b){d&&m(f.prototype,d);b&&m(f,b);return f}function t(f,d,b){d in f?Object.defineProperty(f,d,{value:b,enumerable:!0,
configurable:!0,writable:!0}):f[d]=b;return f}h("./MediaFileReader");h=function(){function f(d){if(!(this instanceof f))throw new TypeError("Cannot call a class as a function");t(this,"_mediaFileReader",void 0);t(this,"_tags",void 0);this._mediaFileReader=d;this._tags=null}q(f,[{key:"setTagsToRead",value:function(d){this._tags=d;return this}},{key:"read",value:function(d){var b=this;this._mediaFileReader.init({onSuccess:function(){b._loadData(b._mediaFileReader,{onSuccess:function(){try{var g=b._parseData(b._mediaFileReader,
b._tags)}catch(k){if(d.onError){d.onError({type:"parseData",info:k.message});return}}d.onSuccess(g)},onError:d.onError})},onError:d.onError})}},{key:"getShortcuts",value:function(){return{}}},{key:"_loadData",value:function(d,b){throw Error("Must implement _loadData function");}},{key:"_parseData",value:function(d,b){throw Error("Must implement _parseData function");}},{key:"_expandShortcutTags",value:function(d){if(!d)return null;for(var b=[],g=this.getShortcuts(),f=0,h;h=d[f];f++)b=b.concat(g[h]||
[h]);return b}}],[{key:"getTagIdentifierByteRange",value:function(){throw Error("Must implement");}},{key:"canReadTagFormat",value:function(d){throw Error("Must implement");}}]);return f}();p.exports=h},{"./MediaFileReader":11}],13:[function(h,p,n){function m(d,b){for(var g=0;g<b.length;g++){var f=b[g];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(d,f.key,f)}}function q(d,b,f){b&&m(d.prototype,b);f&&m(d,f);return d}function t(d,b,f){b in d?Object.defineProperty(d,
b,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[b]=f;return d}var f=function(){function d(b,f){if(!(this instanceof d))throw new TypeError("Cannot call a class as a function");t(this,"_value",void 0);t(this,"bytesReadCount",void 0);t(this,"length",void 0);this._value=b;this.bytesReadCount=f;this.length=b.length}q(d,[{key:"toString",value:function(){return this._value}}]);return d}();p.exports={readUTF16String:function(d,b,g){var k=0,h=1,a=0;g=Math.min(g||d.length,d.length);254==d[0]&&255==
d[1]?(b=!0,k=2):255==d[0]&&254==d[1]&&(b=!1,k=2);b&&(h=0,a=1);b=[];for(var e=0;k<g;e++){var c=d[k+h],l=(c<<8)+d[k+a];k+=2;if(0==l)break;else 216>c||224<=c?b[e]=String.fromCharCode(l):(c=(d[k+h]<<8)+d[k+a],k+=2,b[e]=String.fromCharCode(l,c))}return new f(b.join(""),k)},readUTF8String:function(d,b){var g=0;b=Math.min(b||d.length,d.length);239==d[0]&&187==d[1]&&191==d[2]&&(g=3);for(var h=[],m=0;g<b;m++){var a=d[g++];if(0==a)break;else if(128>a)h[m]=String.fromCharCode(a);else if(194<=a&&224>a){var e=
d[g++];h[m]=String.fromCharCode(((a&31)<<6)+(e&63))}else if(224<=a&&240>a){e=d[g++];var c=d[g++];h[m]=String.fromCharCode(((a&255)<<12)+((e&63)<<6)+(c&63))}else if(240<=a&&245>a){e=d[g++];c=d[g++];var l=d[g++];c=((a&7)<<18)+((e&63)<<12)+((c&63)<<6)+(l&63)-65536;h[m]=String.fromCharCode((c>>10)+55296,(c&1023)+56320)}}return new f(h.join(""),g)},readNullTerminatedString:function(d,b){var g=[];b=b||d.length;for(var h=0;h<b;){var m=d[h++];if(0==m)break;g[h-1]=String.fromCharCode(m)}return new f(g.join(""),
h)}}},{}],14:[function(h,p,n){function m(a){m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return m(a)}function q(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(a,d.key,d)}}function t(a,b,c){b&&q(a.prototype,b);c&&q(a,c);return a}function f(a){f=
Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)};return f(a)}function d(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function b(a,b){if("function"!==typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}});b&&g(a,b)}function g(a,b){g=Object.setPrototypeOf||
function(a,b){a.__proto__=b;return a};return g(a,b)}function k(a,b,c){b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c;return a}var r=h("./ChunkedFileData");n=function(a){function e(a){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");var b=f(e).call(this);b=!b||"object"!==m(b)&&"function"!==typeof b?d(this):b;k(d(b),"_url",void 0);k(d(b),"_fileData",void 0);b._url=a;b._fileData=new r;return b}b(e,a);t(e,[{key:"_init",value:function(a){e._config.avoidHeadRequests?
this._fetchSizeWithGetRequest(a):this._fetchSizeWithHeadRequest(a)}},{key:"_fetchSizeWithHeadRequest",value:function(a){var b=this;this._makeXHRRequest("HEAD",null,{onSuccess:function(c){(c=b._parseContentLength(c))?(b._size=c,a.onSuccess()):b._fetchSizeWithGetRequest(a)},onError:a.onError})}},{key:"_fetchSizeWithGetRequest",value:function(a){var b=this,c=this._roundRangeToChunkMultiple([0,0]);this._makeXHRRequest("GET",c,{onSuccess:function(c){var d=b._parseContentRange(c);c=b._getXhrResponseContent(c);
if(d){if(null==d.instanceLength){b._fetchEntireFile(a);return}b._size=d.instanceLength}else b._size=c.length;b._fileData.addData(0,c);a.onSuccess()},onError:a.onError})}},{key:"_fetchEntireFile",value:function(a){var b=this;this._makeXHRRequest("GET",null,{onSuccess:function(c){c=b._getXhrResponseContent(c);b._size=c.length;b._fileData.addData(0,c);a.onSuccess()},onError:a.onError})}},{key:"_getXhrResponseContent",value:function(a){return a.responseBody||a.responseText||""}},{key:"_parseContentLength",
value:function(a){a=this._getResponseHeader(a,"Content-Length");return null==a?a:parseInt(a,10)}},{key:"_parseContentRange",value:function(a){if(a=this._getResponseHeader(a,"Content-Range")){var b=a.match(/bytes (\d+)-(\d+)\/(?:(\d+)|\*)/i);if(!b)throw Error("FIXME: Unknown Content-Range syntax: "+a);return{firstBytePosition:parseInt(b[1],10),lastBytePosition:parseInt(b[2],10),instanceLength:b[3]?parseInt(b[3],10):null}}return null}},{key:"loadRange",value:function(a,b){var c=this;c._fileData.hasDataRange(a[0],
Math.min(c._size,a[1]))?setTimeout(b.onSuccess,1):(a=this._roundRangeToChunkMultiple(a),a[1]=Math.min(c._size,a[1]),this._makeXHRRequest("GET",a,{onSuccess:function(d){d=c._getXhrResponseContent(d);c._fileData.addData(a[0],d);b.onSuccess()},onError:b.onError}))}},{key:"_roundRangeToChunkMultiple",value:function(a){return[a[0],a[0]+1024*Math.ceil((a[1]-a[0]+1)/1024)-1]}},{key:"_makeXHRRequest",value:function(a,b,d){var c=this._createXHRObject();c.open(a,this._url);var f=function(){if(200===c.status||
206===c.status)d.onSuccess(c);else if(d.onError)d.onError({type:"xhr",info:"Unexpected HTTP status "+c.status+".",xhr:c});c=null};"undefined"!==typeof c.onload?(c.onload=f,c.onerror=function(){if(d.onError)d.onError({type:"xhr",info:"Generic XHR error, check xhr object.",xhr:c})}):c.onreadystatechange=function(){4===c.readyState&&f()};e._config.timeoutInSec&&(c.timeout=1E3*e._config.timeoutInSec,c.ontimeout=function(){if(d.onError)d.onError({type:"xhr",info:"Timeout after "+c.timeout/1E3+"s. Use jsmediatags.Config.setXhrTimeout to override.",
xhr:c})});c.overrideMimeType("text/plain; charset=x-user-defined");b&&this._setRequestHeader(c,"Range","bytes="+b[0]+"-"+b[1]);this._setRequestHeader(c,"If-Modified-Since","Sat, 01 Jan 1970 00:00:00 GMT");c.send(null)}},{key:"_setRequestHeader",value:function(a,b,d){0>e._config.disallowedXhrHeaders.indexOf(b.toLowerCase())&&a.setRequestHeader(b,d)}},{key:"_hasResponseHeader",value:function(a,b){a=a.getAllResponseHeaders();if(!a)return!1;a=a.split("\r\n");for(var c=[],d=0;d<a.length;d++)c[d]=a[d].split(":")[0].toLowerCase();
return 0<=c.indexOf(b.toLowerCase())}},{key:"_getResponseHeader",value:function(a,b){return this._hasResponseHeader(a,b)?a.getResponseHeader(b):null}},{key:"getByteAt",value:function(a){return this._fileData.getByteAt(a).charCodeAt(0)&255}},{key:"_isWebWorker",value:function(){return"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope}},{key:"_createXHRObject",value:function(){if("undefined"===typeof window&&!this._isWebWorker())return new (h("xhr2").XMLHttpRequest);if("undefined"!==
typeof XMLHttpRequest)return new XMLHttpRequest;throw Error("XMLHttpRequest is not supported");}}],[{key:"canReadFile",value:function(a){return"string"===typeof a&&/^[a-z]+:\/\//i.test(a)}},{key:"setConfig",value:function(a){for(var b in a)a.hasOwnProperty(b)&&(this._config[b]=a[b]);a=this._config.disallowedXhrHeaders;for(b=0;b<a.length;b++)a[b]=a[b].toLowerCase()}}]);return e}(h("./MediaFileReader"));k(n,"_config",void 0);n._config={avoidHeadRequests:!1,disallowedXhrHeaders:[],timeoutInSec:30};p.exports=
n},{"./ChunkedFileData":5,"./MediaFileReader":11,xhr2:2}],15:[function(h,p,n){function m(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");}function q(a,b){for(var d=0;d<b.length;d++){var c=b[d];c.enumerable=c.enumerable||!1;c.configurable=!0;"value"in c&&(c.writable=!0);Object.defineProperty(a,c.key,c)}}function t(a,b,d){b&&q(a.prototype,b);d&&q(a,d);return a}function f(a,b,d){b in a?Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0,writable:!0}):a[b]=
d;return a}function d(a,b){var d=0>a.offset&&(-a.offset>b||0<a.offset+a.length);return!(0<=a.offset&&a.offset+a.length>=b||d)}h("./MediaFileReader");var b=h("./XhrFileReader"),g=h("./BlobFileReader"),k=h("./ArrayFileReader");h("./MediaTagReader");var r=h("./ID3v1TagReader"),a=h("./ID3v2TagReader"),e=h("./MP4TagReader"),c=h("./FLACTagReader"),l=[],u=[],w=function(){function a(b){m(this,a);f(this,"_file",void 0);f(this,"_tagsToRead",void 0);f(this,"_fileReader",void 0);f(this,"_tagReader",void 0);this._file=
b}t(a,[{key:"setTagsToRead",value:function(a){this._tagsToRead=a;return this}},{key:"setFileReader",value:function(a){this._fileReader=a;return this}},{key:"setTagReader",value:function(a){this._tagReader=a;return this}},{key:"read",value:function(a){var b=new (this._getFileReader())(this._file),d=this;b.init({onSuccess:function(){d._getTagReader(b,{onSuccess:function(c){(new c(b)).setTagsToRead(d._tagsToRead).read(a)},onError:a.onError})},onError:a.onError})}},{key:"_getFileReader",value:function(){return this._fileReader?
this._fileReader:this._findFileReader()}},{key:"_findFileReader",value:function(){for(var a=0;a<l.length;a++)if(l[a].canReadFile(this._file))return l[a];throw Error("No suitable file reader found for "+this._file);}},{key:"_getTagReader",value:function(a,b){if(this._tagReader){var d=this._tagReader;setTimeout(function(){b.onSuccess(d)},1)}else this._findTagReader(a,b)}},{key:"_findTagReader",value:function(a,b){for(var c=[],e=[],f=a.getSize(),g=0;g<u.length;g++){var h=u[g].getTagIdentifierByteRange();
d(h,f)&&(0<=h.offset&&h.offset<f/2||0>h.offset&&h.offset<-f/2?c.push(u[g]):e.push(u[g]))}var k=!1;g={onSuccess:function(){if(k){for(var c=0;c<u.length;c++){var e=u[c].getTagIdentifierByteRange();if(d(e,f)){try{var g=a.getBytesAt(0<=e.offset?e.offset:e.offset+f,e.length)}catch(x){if(b.onError)b.onError({type:"fileReader",info:x.message});return}if(u[c].canReadTagFormat(g)){b.onSuccess(u[c]);return}}}if(b.onError)b.onError({type:"tagFormat",info:"No suitable tag reader found"})}else k=!0},onError:b.onError};
this._loadTagIdentifierRanges(a,c,g);this._loadTagIdentifierRanges(a,e,g)}},{key:"_loadTagIdentifierRanges",value:function(a,b,d){if(0===b.length)setTimeout(d.onSuccess,1);else{for(var c=[Number.MAX_VALUE,0],e=a.getSize(),f=0;f<b.length;f++){var g=b[f].getTagIdentifierByteRange(),h=0<=g.offset?g.offset:g.offset+e;g=h+g.length-1;c[0]=Math.min(h,c[0]);c[1]=Math.max(g,c[1])}a.loadRange(c,d)}}}]);return a}();n=function(){function a(){m(this,a)}t(a,null,[{key:"addFileReader",value:function(b){l.push(b);
return a}},{key:"addTagReader",value:function(b){u.push(b);return a}},{key:"removeTagReader",value:function(b){b=u.indexOf(b);0<=b&&u.splice(b,1);return a}},{key:"EXPERIMENTAL_avoidHeadRequests",value:function(){b.setConfig({avoidHeadRequests:!0})}},{key:"setDisallowedXhrHeaders",value:function(a){b.setConfig({disallowedXhrHeaders:a})}},{key:"setXhrTimeoutInSec",value:function(a){b.setConfig({timeoutInSec:a})}}]);return a}();n.addFileReader(b).addFileReader(g).addFileReader(k).addTagReader(a).addTagReader(r).addTagReader(e).addTagReader(c);
"undefined"===typeof process||process.browser||(h="undefined"!==typeof navigator&&"ReactNative"===navigator.product?h("./ReactNativeFileReader"):h("./NodeFileReader"),n.addFileReader(h));p.exports={read:function(a,b){(new w(a)).read(b)},Reader:w,Config:n}},{"./ArrayFileReader":3,"./BlobFileReader":4,"./FLACTagReader":6,"./ID3v1TagReader":7,"./ID3v2TagReader":9,"./MP4TagReader":10,"./MediaFileReader":11,"./MediaTagReader":12,"./NodeFileReader":1,"./ReactNativeFileReader":1,"./XhrFileReader":14}]},
{},[15])(15)});
File added
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
div{
width:120px;
height:120px;
line-height:120px;
margin: 20px;
background-color: #5cb85c;
float: left;
font-size: 12px;
text-align: center;
color:#000;
}
/*效果一:360°旋转 修改rotate(旋转度数)*/
.img1 {
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.img1:hover {
transform: rotate(360deg);
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-o-transform: rotate(360deg);
-ms-transform: rotate(360deg);
}
/*效果二:放大 修改scale(放大的值)*/
.img2 {
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.img2:hover {
transform: scale(1.2);
-webkit-transform: scale(1.2);
-moz-transform: scale(1.2);
-o-transform: scale(1.2);
-ms-transform: scale(1.2);
}
/*效果三:旋转放大 修改rotate(旋转度数) scale(放大值)*/
.img3 {
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.img3:hover {
transform: rotate(360deg) scale(1.2);
-webkit-transform: rotate(360deg) scale(1.2);
-moz-transform: rotate(360deg) scale(1.2);
-o-transform: rotate(360deg) scale(1.2);
-ms-transform: rotate(360deg) scale(1.2);
}
/*效果四:上下左右移动 修改translate(x轴,y轴)*/
.img4 {
transition: All 0.4s ease-in-out;
-webkit-transition: All 0.4s ease-in-out;
-moz-transition: All 0.4s ease-in-out;
-o-transition: All 0.4s ease-in-out;
}
.img4:hover {
transform: translate(0, -10px);
-webkit-transform: translate(0, -10px);
-moz-transform: translate(0, -10px);
-o-transform: translate(0, -10px);
-ms-transform: translate(0, -10px);
}
</style>
</head>
<body>
<div class="img1">360°旋转 </div>
<div class="img2">放大</div>
<div class="img3">旋转放大</div>
<div class="img4">上下左右移动 </div>
</body>
</html>
{
"folders": [
{
"path": "..\\..\\Golnd-bbs\\mlog"
},
{
"path": "."
}
],
"settings": {}
}
\ No newline at end of file
++ "b/\346\265\213\350\257\225.md"
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./js/jquery-1.9.1.js"></script>
<style>
#iframeDiv{
width: 600px;
height: 600px;
border: 1px solid grey;
}
</style>
<script>
function showIframe(url,w,h){
//添加iframe
var if_w = w;
var if_h = h;
$("<iframe width='" + if_w + "' height='" + if_h + "' id=‘iFrame' name='iFrame' style='position:absolute;z-index:4;' frameborder='no' marginheight='0' marginwidth='0' allowTransparency='true'></iframe>").prependTo('body');
//iframe屏幕适应宽高设置
var st=document.documentElement.scrollTop|| document.body.scrollTop;//滚动条距顶部的距离
var sl=document.documentElement.scrollLeft|| document.body.scrollLeft;//滚动条距左边的距离
var ch=document.documentElement.clientHeight;//屏幕的高度
var cw=document.documentElement.clientWidth;//屏幕的宽度
var objH=$("#iFrame").height();//浮动对象的高度
var objW=$("#iFrame").width();//浮动对象的宽度
var objT=Number(st)+(Number(ch)-Number(objH))/2;
var objL=Number(sl)+(Number(cw)-Number(objW))/2;
$("#iFramee").css('left',objL);
$("#iFrame").css('top',objT);
$("#iFrame").attr("src", url)
}
showIframe('https://www.baidu.com','100%','100%');
</script>
</head>
<body>
<!-- <div id="iframeDiv">
</div> -->
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment