已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 超级灌水 (发帖)

标题: 代码历史备份

作者: @Ta

时间: 2024-07-26发布,2024-09-19修改

点击: 173
被下沉


[隐藏样式|查看源码]


『回复列表(15|隐藏机器人聊天)』

1. (function() {
  // 创建一个随机颜色函数
  function getRandomColor() {
    const letters = '0123456789ABCDEF';
    let color = '#';
    for (let i = 0; i < 6; i++) {
      color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
  }

  // 给除了body和html之外的所有元素添加随机背景渐变
  function applyRandomGradientToElements() {
    const allElements = document.querySelectorAll('u,i,small');
    allElements.forEach(function(element) {
      const color1 = getRandomColor();
      const color2 = getRandomColor();
      element.style.cssText += `
        background-image: linear-gradient(to right, ${color1},${color2}) ;
        -webkit-background-clip: text ;
        color: transparent ;
      `;
    });
  }

  // 创建按钮并添加到页面中
  const button = document.createElement('button');
  button.textContent = '改变颜色';
  document.body.appendChild(button);

  // 给按钮添加点击事件
  button.addEventListener('click', applyRandomGradientToElements);
})();
(/@Ta/2024-09-24 16:20//)

2. h
(/@Ta/2024-09-19 09:25//)

3. h
(/@Ta/2024-09-19 09:15//)

4. document.addEventListener('DOMContentLoaded', function() {
  // 获取所有p元素
  var pElements = document.querySelectorAll('p');

  // 为每个p元素添加按钮
  pElements.forEach(function(p, index) {
    // 创建按钮
    var button = document.createElement('button');
    button.textContent = '点击将文字转换为图片并显示';
    button.onclick = function() {
      textToImage(p.innerText);
    };

    // 将按钮添加到p元素后面
    p.parentNode.insertBefore(button, p.nextSibling);
  });

  function textToImage(text) {
    // 创建canvas元素
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');

    // 设置字体和填充颜色
    var fontSize = 24; // 增加字体大小
    ctx.font = fontSize + 'px Arial';
    ctx.fillStyle = 'black';

    // 处理文本,并支持换行
    var textLines = text.split('\n');
    var lineHeight = fontSize + 38; //2倍为4, 假设行高是字体大小加上一些额外空间
    var maxWidth = 0;

    // 计算最大宽度和总高度
    textLines.forEach(function(line) {
      var metrics = ctx.measureText(line);
      if (metrics.width > maxWidth) {
        maxWidth = metrics.width;
      }
    });
    var totalHeight = textLines.length * lineHeight;

    // 设置canvas的宽度和高度,并放大2倍以提高清晰度
    var scale = 4; // 放大倍数
    canvas.width = maxWidth * scale + 20 * scale; // 添加一些边距,并放大
    canvas.height = totalHeight * scale + 20 * scale; // 添加一些边距,并放大

    // 设置缩放比例
    ctx.scale(scale, scale);

    // 在canvas上绘制每一行文本
    textLines.forEach(function(line, index) {
      ctx.fillText(line, 10 / scale, (lineHeight * (index + 1)) / scale);
    });

    // 将canvas转换为图片
    var imgData = canvas.toDataURL('image/png');

    // 打开新窗口并设置窗口内容为图片
    var newWindow = window.open();
    newWindow.document.write('<img src="' + imgData + '" alt="Text as Image" style="width: ' + (canvas.width / scale) + 'px; height: ' + (canvas.height / scale) + 'px;" /><meta name="viewport" content="width=device-width,initial-scale=2"/>');
  }
});
(/@Ta/2024-09-05 23:46//)

5.  
document.addEventListener('DOMContentLoaded', function() {
  // 获取所有details元素
  var detailsElements = document.querySelectorAll('details');

  // 为每个details元素添加按钮
  detailsElements.forEach(function(details, index) {
    // 获取对应的p元素和summary元素
    var pElement = details.querySelector('p');
    var summaryElement = details.querySelector('summary');

    // 创建按钮
    var button = document.createElement('button');
    button.textContent = '点击将文字转换为图片并显示';
    button.onclick = function() {
      // 如果details元素没有展开,则展开它以获取p元素的内容
      var wasOpen = details.open;
      if (!wasOpen) {
        details.open = true;
      }

      // 获取文本内容,并在summary后添加两个换行,同时用书名号包裹summary内容
      var summaryText = '《' + summaryElement.innerText + '》\n\n';
      var pText = pElement.innerText;

      // 如果之前没有展开,现在将其关闭
      if (!wasOpen) {
        details.open = false;
      }

      // 调用函数生成图片
      textToImage(summaryText, pText);
    };

    // 将按钮添加到details元素后面
    details.parentNode.insertBefore(button, details.nextSibling);
  });

  function textToImage(summaryText, pText) {
    // 创建canvas元素
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');

    // 设置字体和填充颜色
    var fontSize = 24; // 增加字体大小
    ctx.font = fontSize + 'px Arial';
    ctx.fillStyle = 'black';

    // 处理文本,并支持换行
    var textLines = (summaryText + pText).split('\n'); // 将summary文本作为第一行,并在其后添加两个换行
    var lineHeight = fontSize + 10; // 假设行高是字体大小加上一些额外空间
    var maxWidth = 0;

    // 计算最大宽度和总高度
    textLines.forEach(function(line) {
      var metrics = ctx.measureText(line);
      if (metrics.width > maxWidth) {
        maxWidth = metrics.width;
      }
    });
    
    // 设置canvas的宽度和高度,并放大2倍以提高清晰度
    var scale = 2; // 放大倍数
    canvas.width = maxWidth * scale + 20 * scale; // 添加一些边距,并放大
    // 设置canvas的高度为文本行数乘以行高,并加上一些额外的边距
    canvas.height = (textLines.length * lineHeight) * scale + 20 * scale; // 添加一些边距,并放大

    // 设置缩放比例
    ctx.scale(scale, scale);

    // 在canvas上绘制每一行文本
    textLines.forEach(function(line, index) {
      ctx.fillText(line, 10 / scale, (lineHeight * (index + 1)) / scale);
    });

    // 将canvas转换为图片
    var imgData = canvas.toDataURL('image/png');

    // 打开新窗口并设置窗口内容为图片
    var newWindow = window.open();
    newWindow.document.write('<img src="' + imgData + '" alt="Text as Image" style="width: ' + (canvas.width / scale) + 'px; height: ' + (canvas.height / scale) + 'px;" /><meta name="viewport" content="width=device-width,initial-scale=2"/>');
  }
});
 
(/@Ta/2024-09-09 17:49//)

6.     <style>
        /* 设置一些样式,让显示的文字更加明显 */
        .text-popup {
            position: absolute;
            color: #fff;
            background-color: rgba(0, 0, 0, 0.5);
            padding: 0;
            border-radius: 10px;
            font-size: 16px;
            pointer-events: none; /* 防止文本弹出层影响触摸事件 */
        }
    </style>
</head>
<body>

<script>
// 定义一个数组,包含要显示的不同文字
var texts = ["我", "我", "我", "我", "我", "我",];
// 初始化一个变量来记录当前显示的文字索引
var currentIndex = 0;

// 为整个文档添加触摸事件监听器
document.addEventListener("touchstart", function(e) {
    // 创建一个新的元素来显示文字
    var textPopup = document.createElement("div");
    textPopup.classList.add("text-popup");
    textPopup.textContent = texts[currentIndex];

    // 设置文本弹出层的位置为触摸位置
    textPopup.style.left = e.touches[0].clientX + 'px';
    textPopup.style.top = e.touches[0].clientY + 'px';

    // 将文本弹出层添加到文档中
    document.body.appendChild(textPopup);

    // 设置一个定时器来移除文本弹出层
    setTimeout(function() {
        document.body.removeChild(textPopup);
    }, 10000); // 文字显示2秒后消失

    // 更新索引,以便下次触摸时显示不同的文字
    currentIndex = (currentIndex + 1) % texts.length;
});

</script>
(/@Ta/2024-09-22 00:11//)

7.
(/@Ta/2025-07-10 16:24//)

8. h
(/@Ta/2024-09-19 09:18//)

9. h
(/@Ta/2024-09-19 09:19//)

10. h
(/@Ta/2024-09-19 09:19//)

11. h
(/@Ta/2024-09-19 09:21//)

12. h
(/@Ta/2024-09-19 09:22//)

13. h
(/@Ta/2024-09-19 09:23//)

14. h
(/@Ta/2024-09-19 09:23//)

15. h
(/@Ta/2024-09-19 09:24//)

回复需要登录

7月12日 23:29 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1