153 lines
5.8 KiB
JavaScript
153 lines
5.8 KiB
JavaScript
![]() |
"use strict";
|
|||
|
/**
|
|||
|
* 拷贝事件
|
|||
|
*/
|
|||
|
define(function (require, exports, module) {
|
|||
|
|
|||
|
function handle(e) {
|
|||
|
const utils = require("../../common/utils");
|
|||
|
let event = utils.ParseEvent(e);
|
|||
|
let target = utils.GetEventTarget(event);
|
|||
|
console.log("target: ", target, target.tagName)
|
|||
|
if (target.tagName === "SPAN") {
|
|||
|
target = target.parentElement;
|
|||
|
console.log("cur_target: ", target, target.tagName)
|
|||
|
}
|
|||
|
if (target.tagName === "LI") {
|
|||
|
let curLi = target;
|
|||
|
//处理 下拉选择/取消选择
|
|||
|
let myParent = curLi.parentElement;
|
|||
|
let dataMySelectV = myParent.getAttribute("data-my-select-v");
|
|||
|
let liList = myParent.querySelectorAll("li");
|
|||
|
for (let i = 0; i < liList.length; i++) {
|
|||
|
let tmpLi = liList[i];
|
|||
|
if (tmpLi.textContent === curLi.textContent) {
|
|||
|
tmpLi.setAttribute("data-my-select", "true");
|
|||
|
tmpLi.setAttribute("data-my-select-v", dataMySelectV);
|
|||
|
tmpLi.style.setProperty("background-color", "#f0f0f0");
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
tmpLi.setAttribute("data-my-select", "false");
|
|||
|
tmpLi.removeAttribute("data-my-select-v");
|
|||
|
tmpLi.style.removeProperty("background-color");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//refreshPFontSize ; refreshEditFrontSize ; refreshEditColor ; refreshEditBgColor; other
|
|||
|
let dataMyStyleType = myParent.getAttribute("data-my-style-type");
|
|||
|
switch (dataMyStyleType) {
|
|||
|
case "refreshPFontSize":
|
|||
|
refreshPFontSize(target);
|
|||
|
break;
|
|||
|
case "refreshEditFrontSize":
|
|||
|
refreshEditFrontSize(target);
|
|||
|
break;
|
|||
|
case "refreshEditColor":
|
|||
|
refreshEditColor(target);
|
|||
|
break
|
|||
|
case "refreshEditBgColor":
|
|||
|
refreshEditBgColor(target);
|
|||
|
break
|
|||
|
default :
|
|||
|
console.log("暂时不支持")
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function refreshEditColor(curLi) {
|
|||
|
const ctx = require("../../common/ctx");
|
|||
|
const utils = require("../../common/utils");
|
|||
|
let select = utils.GetSelection();
|
|||
|
let curP = select.anchorNode.parentElement.closest("p");
|
|||
|
let dataMySelectK = curLi.getAttribute("data-my-style-k");
|
|||
|
let dataMySelectV = curLi.getAttribute("data-my-style-v");
|
|||
|
|
|||
|
let tSpan = curLi.parentElement.parentElement.previousElementSibling;
|
|||
|
console.log("refreshEditColor ", dataMySelectK, dataMySelectV, tSpan, tSpan.getAttribute("data-v"))
|
|||
|
|
|||
|
tSpan.setAttribute("data-v", dataMySelectV)
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
function refreshEditBgColor(curLi) {
|
|||
|
const ctx = require("../../common/ctx");
|
|||
|
const utils = require("../../common/utils");
|
|||
|
let select = utils.GetSelection();
|
|||
|
let curP = select.anchorNode.parentElement.closest("p");
|
|||
|
let dataMySelectK = curLi.getAttribute("data-my-style-k");
|
|||
|
let dataMySelectV = curLi.getAttribute("data-my-style-v");
|
|||
|
|
|||
|
let tSpan = curLi.parentElement.parentElement.previousElementSibling;
|
|||
|
console.log("refreshEditBgColor ", dataMySelectK, dataMySelectV, tSpan, tSpan.getAttribute("data-v"))
|
|||
|
|
|||
|
tSpan.setAttribute("data-v", dataMySelectV)
|
|||
|
}
|
|||
|
|
|||
|
function refreshPFontSize(curLi) {
|
|||
|
const ctx = require("../../common/ctx");
|
|||
|
const utils = require("../../common/utils");
|
|||
|
let select = utils.GetSelection();
|
|||
|
let curP = select.anchorNode.parentElement.closest("p");
|
|||
|
let dataMySelectK = curLi.getAttribute("data-my-style-k");
|
|||
|
let dataMySelectV = curLi.getAttribute("data-my-style-v");
|
|||
|
|
|||
|
let kList = dataMySelectK.toString().split(",");
|
|||
|
let vList = dataMySelectV.toString().split(",");
|
|||
|
let total = kList.length;
|
|||
|
let num = 0;
|
|||
|
for (let i = 0; i < kList.length; i++) {
|
|||
|
if (curP.style.getPropertyValue(kList[i]) === vList[i]) {
|
|||
|
num++;
|
|||
|
}
|
|||
|
|
|||
|
if (vList[i] === "defaultFontSize") {
|
|||
|
let myEditFrontSize = document.getElementById("myEdit_main");
|
|||
|
curP.style.setProperty(kList[i], myEditFrontSize.style.fontSize);
|
|||
|
} else {
|
|||
|
curP.style.setProperty(kList[i], vList[i]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//移除
|
|||
|
if (total === num) {
|
|||
|
for (let j = 0; j < kList.length; j++) {
|
|||
|
curP.style.removeProperty(kList[j]);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function refreshEditFrontSize(curLi) {
|
|||
|
const ctx = require("../../common/ctx");
|
|||
|
const utils = require("../../common/utils");
|
|||
|
let curStyleV = curLi.getAttribute("data-my-style-v");
|
|||
|
//设置当前的尺寸
|
|||
|
ctx.editFrontSize = curStyleV;
|
|||
|
let curClientW = ctx.getScreenWidth();
|
|||
|
if (!curClientW) {
|
|||
|
return
|
|||
|
}
|
|||
|
//字体尺寸 https://www.shejidaren.com/zihao-daxiao-sheji-bilv.html
|
|||
|
//12~72 px 建议最大字体是48px
|
|||
|
let dpr = utils.GetDpr();
|
|||
|
let myEditFrontSize = document.getElementById("myEdit_main");
|
|||
|
if (ctx.isTablet) {
|
|||
|
myEditFrontSize.style.fontSize = ctx.editFrontSize * dpr + 'px';
|
|||
|
} else {
|
|||
|
myEditFrontSize.style.fontSize = ctx.editFrontSize + 'px';
|
|||
|
}
|
|||
|
|
|||
|
console.log("refreshEditFrontSize ", curLi, curStyleV,
|
|||
|
"\nctx.editFrontSize: ", ctx.editFrontSize)
|
|||
|
|
|||
|
//保存在本地 refreshEditFrontSize
|
|||
|
localStorage.setItem('refreshEditFrontSize', ctx.editFrontSize);
|
|||
|
//show
|
|||
|
document.getElementById("cur_my_font_size").textContent = ctx.editFrontSize + "px"
|
|||
|
}
|
|||
|
|
|||
|
//导出
|
|||
|
exports.handle = handle;
|
|||
|
});
|