王一之 发表于 2022-1-30 17:27:51

Hangover 发表于 2022-1-30 14:00
大佬还有别的方案吗

    var TranslationButton = document.body.appendChild(document.createElement("button"));
    TranslationButton.id = "speech-translation";
    TranslationButton.style.position = "fixed";
    TranslationButton.style.display = 'none';
    TranslationButton.innerHTML = '翻译';
    TranslationButton.addEventListener('mouseup', function (e) {
      e.stopPropagation();
    });
    TranslationButton.onclick = function () {
      alert('666');
    };
    document.addEventListener("mouseup", (event) => {
      event = event || window.event;
      var left = event.clientX;
      var top = event.clientY;
      var getSelection = window.getSelection().toString();
      if (getSelection != '') {
            TranslationButton.style.display = 'block';
            TranslationButton.style.left = left + 50 + "px";
            TranslationButton.style.top = top + 0 + "px";
      } else {
            TranslationButton.style.display = 'none';
      }
    });

var TranslationButton = document.createElement("button");
document.body.appendChild(TranslationButton);

放一起

Hangover 发表于 2022-1-30 18:22:21

王一之 发表于 2022-1-30 17:27
var TranslationButton = document.createElement("button");
document.body.appendChild(TranslationB ...

{:4_89:}我想要的不仅是性能上的优化,还想知道有没有别的方法能实现,框架除外

王一之 发表于 2022-1-30 21:51:09

Hangover 发表于 2022-1-30 18:22
我想要的不仅是性能上的优化,还想知道有没有别的方法能实现,框架除外
...

想不到了

cxxjackie 发表于 2022-1-30 22:18:54

Hangover 发表于 2022-1-30 14:00
大佬还有别的方案吗

Translation.style.cssText = `display: block; left: ${left + 50}px; top: ${top + 50}px;`;
这样?还有把创建元素改成insertAdjacentHTML之类的,不过绑事件比较麻烦,不是很有必要。其他感觉没什么了,硬要说的话,你的命名不太规范,变量的首字母不应该大写,一般是类名才写成这样,有兴趣可以查一下“驼峰命名法”。

Hangover 发表于 2022-1-31 00:35:43

cxxjackie 发表于 2022-1-30 22:18
这样?还有把创建元素改成insertAdjacentHTML之类的,不过绑事件比较麻烦,不是很有必要。其他感觉没什 ...

小学英语支撑到现在的我,起变量名靠的是百度翻译,有时候都想直接用abcd代替了。。。感觉不是团队协作的话,啥规范都不太重要吧,不过养成习惯还是好的
页: 1 [2]
查看完整版本: 存在则更新,不存在则创建