玩转代码|三个惊艳的黑科技代码,每一行代码都有惊讶的效果

news2024/11/23 21:47:51

目录

显示忘记密码

解除网页限制

去除视频logo

今日优质代码推荐

实现效果

实现过程

1. 简单的 Html 和 CSS

2. 创建 canvas画布

3. 获取鼠标点击位置

4. 实现鼠标点击产生烟花的初级形态

5. 实现烟花散开

6. 实现拖尾效果以及随机颜色

7. 实现烟花重力下坠

8. 实现自动烟花效果

自定义文字


显示忘记密码

是不是有时候我们浏览器记住了密码,一直都是使用记住密码登录。时间久了就忘记了密码了。换到新的浏览器没有密码那就没法办了。这样真的让人着急抓头皮。

今天呢遇到了小编,这个问题就不是问题了,让小编带着大家来体验一下代码的魅力,让你轻轻松松的把忘记的密码查看到。这样就算我们忘记了,只要是浏览器帮我们记住了我们就完全不需要担心了。

立马安排:

1、点击F12打开开发者模式。

如果F12无法使用的话或者你点击右上角三个点-更多工具-开发者工具。

 2、找到console选项,中文下是【控制台】,依次输入下面的代码然后回车。

javascript:"use strict";!function(){var e,t;e=document.getElementsByTagName("input");for(var a=0;a<e.length;a++)if(t=e[a],"password"==t.type.toLowerCase())try{t.type="text"}catch(e){var r,n;r=document.createElement("input"),n=t.attributes;for(var o=0;o<n.length;o++){var i,c,d;i=n[o],c=i.nodeName,d=i.nodeValue,"type"!=c.toLowerCase()&&"height"!=c&&"width"!=c&!!d&&(r[c]=d)}t.parentNode.replaceChild(r,t)}}();

3、查看效果如下动图 

 4、总结

  • 简单,方便
  • 有效,实用
  • 无须担心忘记密码

解除网页限制

你是否遇到下面这样的场景:

  • 1、网页设置了不允许复制内容;
  • 2、复制需要强制登录帐号才行;
  • 3、复制有限制长度;

 或许今天带给大家的代码可以随意复制网页内容,所见的即可复制,针对上面我写的3个场景,或许你用OCR文字识别搞定,但是相对于我如下方法就麻烦多了。

 1、点击F12打开开发者模式。如果F12无法使用的话或者你点击右上角三个点-更多工具-开发者工具。

 2、找到console选项,中文下是【控制台】,依次输入下面的代码然后回车。

javascript:"use strict";!function(){var t=function(t){t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation()};["copy","cut","contextmenu","selectstart","mousedown","mouseup","keydown","keypress","keyup"].forEach(function(e){document.documentElement.addEventListener(e,t,{capture:!0})}),alert("解除限制成功啦!")}();

3、查看效果如下动图 

 4、总结

  • 解除限制
  • 方便使用
  • 自由复制

去除视频logo

看着好看自己喜欢的视频想保存下载来,当做一个小素材使用,但是呢,视频上面带着logo在使用素材的时候呢很不方便。但是有什么办法能去去除logo呢。或许你今天就能找到答案。

 

 1、点击F12打开开发者模式。如果F12无法使用的话或者你点击右上角三个点-更多工具-开发者工具。

 2、找到console选项,中文下是【控制台】,依次输入下面的代码然后回车。

javascript:var myCss= document.createElement('style'); myCss.innerHTML ='.txp_waterMark_pic,.logo-new,.iqp-logo-box{display:none!important;}';document.body.appendChild(myCss);void(0);

3、查看效果

今日优质代码推荐

我裁一段星河以赠你,好叫你不逊色这人间错落烟火

漫天的烟火,在这璀璨的星空中闪耀,成就了这片星空的绚丽,更散发出了自己无限的光芒,今天就使用canvas来做一个烟花效果吧!

实现效果

实现的效果还是很不错的,漫天的烟火肆意绽放

实现过程

1. 简单的 Html 和 CSS

简单的写点基础样式,背景黑色,定义个canvas标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            background-color: black;
        }
        canvas {
            position: absolute;
            z-index: 0;
        }
</style>
</head>
<body>
    <canvas>您的浏览器不支持</canvas>
    <script src="index.js"></script>
</body>
</html>

2. 创建 canvas画布

在js中先获取标签,设置画布大小,采用resize监听页面的调整,及时的改变画布的大小

// 元素获取
const canvas = document.querySelector("canvas")
const ctx = canvas.getContext("2d");
// 设定画布大小
function resizeCanvas() {
    canvas.width = window.innerWidth
    canvas.height = window.innerHeight
}
resizeCanvas();
// 页面缩放改变画布大小
window.addEventListener("resize", resizeCanvas)

3. 获取鼠标点击位置

通过e.clientXe.clientY来获取鼠标点击的位置,用于在后面实现在鼠标点击的位置,产生烟花

function clickSite(e) {
    // 获取当前鼠标的坐标
    let x = e.clientX;
    let y = e.clientY;
    // 绘制
    addFires(x, y);
}
document.addEventListener('click', clickSite);

4. 实现鼠标点击产生烟花的初级形态

我们一步一步来实现,这是实现烟花效果的第一步,通过在点击位置添加一个烟花雏形

,这是一个单纯的静态,在后面我们慢慢的让它动起来

function drawFires() {
    // 初始半径,以及粒子数量
    let count = 10;
    let radius = 10;
    for (let i = 0; i < count; i++) {
        // 渲染出当前数据
        // 下面是点数学题
        // moveX,moveY是粒子开始的坐标,画个三角形,角度半径知道很容易就得出方程
        let angle = 360 / count * i;
        let radians = angle * Math.PI / 180;
        let moveX = x + Math.cos(radians) * radius
        let moveY = y + Math.sin(radians) * radius
        // 开始路径
        ctx.beginPath();
        ctx.arc(moveX, moveY, 2, Math.PI * 2, false);
        // 结束
        ctx.closePath();
        ctx.fillStyle = '#ff0000'
        ctx.fill();
    }
}

 

5. 实现烟花散开

有了上面的铺垫,每一个小圆点都是即将要散开的烟花,那么我们只需要更新画布让它的半径不断的增大即可,实现散开的效果很简单,那部分代码就不贴了(节省篇幅),对于更新画布,采用的一个html5中的新方法requestAnimationFrame官方文档

它相比于使用定时器实现动画有什么优点呢?

  1. 在隐藏或不可见的元素中,requestAnimationFrame将不会进行重绘或回流,会减少对内存的使用
  2. requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成

动画实现代码

// 渲染,更新粒子的信息
function tick() {
    // 更新画布
    drawFires();
    requestAnimationFrame(tick);
}
tick()

6. 实现拖尾效果以及随机颜色

从上面的效果图可以看出,爆炸的效果我们已经能基本实现了,但是烟花不是一个个的小球,我们需要添加拖尾的效果,并且给每个小球随机颜色,这样会更加的炫丽

拖尾效果代码

在绘制完一帧后,绘制下一帧之前,添加一个半透明的蒙层就能实现一个拖尾的效果

function tick() {
    // 设置拖影
    ctx.globalCompositeOperation = 'destination-out';
    ctx.fillStyle = 'rgba(0,0,0,' + 10 / 100 + ')';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    ctx.globalCompositeOperation = 'lighter';
    // 更新画布
    drawFires();
    requestAnimationFrame(tick);
}

随机颜色代码

采用的是hsla函数来设定颜色,因为烟花的色彩都是接近的,所以我们可以通过调节色相值,来选择烟花颜色。这里采用的是固定饱和度为100%,亮度颜色随机在一定范围内,使得颜色不会过于离谱

hsla() 函数使用色相、饱和度、亮度、透明度来定义颜色。
let hue = Math.random() * 360;
let hueVariance = 60;
function setColors(firework) {
    firework.hue = Math.floor(Math.random() * ((hue + hueVariance) - (hue - hueVariance))) + (hue - hueVariance);
    firework.brightness = Math.floor(Math.random() * 21) + 50;
    firework.alpha = (Math.floor(Math.random() * 60) + 40) / 100;
}

7. 实现烟花重力下坠

从上面的效果图,我们可以认识到我们还差两部,烟花的下坠以及烟花的消失

我们通过重新调整烟花路径的算法,来实现烟花的下坠,在初始的代码中对于烟花的爆炸路径,采用的是普通的直线运动,我们需要在这个基础上让它的y方向加大一点,这样就会实现了一个抛物线的效果,同时,对于烟花的爆炸应当还要有个殆尽的效果,我们通过改变透明度来实现,对于透明度小于0的我们将它从数组中移除

let moveX = Math.cos(firework.radians) * firework.radius;
let moveY = Math.sin(firework.radians) * firework.radius + 1;
firework.x += moveX;
firework.y += moveY;
// 更新数据,让圆扩散开来
firework.radius *= 1 - firework.speed / 120
firework.alpha -= 0.01;
// 如果透明度小于0就删除这个粒子
if (firework.alpha <= 0) {
    fireworks.splice(i, 1);
    // 跳过这次循环,不进行绘制
    continue;
}

改变了算法

每次画布的更新都要让透明度降低,同时每个粒子的移动半径不断地减小,这样会形成向中间合拢的趋势,由于每个粒子都存放在数组当中,当粒子透明度小于0,从数组移除

8. 实现自动烟花效果

只需要通过定时器,不断的添加烟花即可

setInterval(() => {
    // 可以多调用几次用来增加烟花的数量
    addFires(Math.random() * canvas.width, Math.random() * canvas.height)
    addFires(Math.random() * canvas.width, Math.random() * canvas.height)
}, 500)

自定义文字

可以在页面中加一些标签,比如文字,实现的效果都是不错的噢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习模型训练的全流程

目标是使用Pytorch来完成CNN的训练和验证过程&#xff0c;CNN网络结构。需要完成的逻辑结构如下&#xff1a; 构造训练集和验证集&#xff1b; 每轮进行训练和验证&#xff0c;并根据最优验证集精度保存模型。 # 将自定义的Dataset封装成一个Batch Size大小的Tensor&#xf…

threejs后期处理

个人博客地址: https://cxx001.gitee.io 1. 如何使用Threejs的后期处理 后期处理就是在场景渲染完后&#xff0c;最后对场景显示效果调整的手段。 使用后期处理步骤&#xff1a; &#xff08;1&#xff09;创建THREE.EffectComposer对象。(效果组合器) &#xff08;2&#x…

指定某个时间,计算和当前时间间隔几天几时几分

dateDiff(startTime,endTime) {let t1 new Date(startTime).getTime()*1000; //开始时间 2023-06-29 10:00:00let t2 new Date(endTime).getTime()*1000; //结束时间 1688090400000000 2023-06-30 10:00:00 1688092230000000 2023-06-30 10:30:30let dateTime 1000 *…

小程序反编译

第一步&#xff1a;下载软件 根据把博客下载好三个软件 夜神模拟器 RE文件管理器 Node.js 第二步&#xff1a;打开模拟器中的 “微信” 第三步&#xff1a;点击要下载的小程序 并 记录当时的时间 方便一会查找pkg文件 第四步&#xff1a;打开文件资源管理器 第五步&#xff1a…

PyTorch的ONNX结合MNIST手写数字数据集的应用(.pth和.onnx的转换与onnx运行时)

在PyTorch以前的模型都是.pth格式&#xff0c;后面Meta跟微软一起做了一个.onnx的通用格式。这里对这两种格式文件&#xff0c;分别做一个介绍&#xff0c;依然使用MNIST数据集来做示例 1、CUDA下的pth文件 那pth文件里面是什么结构呢&#xff1f;其实在以前的文章就有介绍过…

0基础学习VR全景平台篇 第50篇:高级功能-自定义右键

本期为大家带来蛙色VR平台&#xff0c;高级功能—自定义右键功能操作。 功能位置示意 一、本功能将用在哪里&#xff1f; 自定义右键功能&#xff0c;观看者可通过电脑端右键和手机端长按屏幕&#xff0c;出现作者配置的自定义内容&#xff0c;使VR全景玩法变得多样化。 二、…

欧科云链2023年报:毛利达1.55亿港元,数字资产业务成最大增长点

据香港商报报道&#xff0c;2023年6月28日&#xff0c;欧科云链控股有限公司&#xff08;以下简称“欧科云链”&#xff09;及其附属公司&#xff08;股份代号&#xff1a;1499.HK&#xff0c;以下简称“集团”&#xff09;发布了截至2023年3月31日的年度报告。报告期内&#x…

工业读码器的选择和使用注意事项有哪些?

工业读码器是一种能够读取条形码、二维码等信息的设备&#xff0c;广泛应用于物流、生产制造、零售等行业。如何选择和使用工业读码器呢?下面是一些注意事项。 选择工业读码器 要根据应用场景选择合适的读码器类型&#xff0c;如手持式、固定式、手动旋转式等。 要考虑读取码的…

【C++】详解多态

目录 一、多态的概念二、多态的定义及实现1、多态的构成条件2、虚函数3、虚函数的重写1、虚函数重写的两个例外 4、C11 override 和 final5、重载、覆盖(重写)、隐藏(重定义)的对比 三、抽象类1、概念2、接口继承和实现继承 四、多态的原理1、虚函数表2、多态的原理3、动态绑定…

Mysql架构篇--Mysql(M-S) 主从同步

文章目录 前言&#xff1a;一、主从同步是什么&#xff1f;二、主从同步实现&#xff1a;1.准备工作&#xff1a;2.开启主从复制&#xff1a;2.1 mysql 服务端配置文件修改&#xff1a;2.2 mysql master 节点用户创建&#xff1a;2.3 mysql slave 节点开启数据复制&#xff1a;…

突破传统设计灵感,虚拟展厅设计方案

导语&#xff1a; 随着科技的不断发展&#xff0c;虚拟展厅设计方案正成为现代设计行业的新宠。这种创新的设计形式不仅突破了传统设计的局限&#xff0c;还为传统设计公司带来了诸多优势和特点&#xff0c;从而提高了设计产量和创意灵感。 在这篇软文中&#xff0c;我们将深入…

雅迪、爱玛谁是“新宠”?

电动两轮车下半场&#xff0c;谁是“新王”&#xff1f; 6月15日&#xff0c;爱玛科技有限公司&#xff08;下称“爱玛”&#xff0c;603529.SH)迎来了上市两周年。 作为电动两轮车的头部玩家&#xff0c;雅迪控股有限公司&#xff08;下称“雅迪”&#xff0c;01585.HK&…

HJ101 输入整型数组和排序标识,对其元素

描述 输入整型数组和排序标识&#xff0c;对其元素按照升序或降序进行排序 数据范围&#xff1a; 1≤n≤1000 1≤n≤1000 &#xff0c;元素大小满足 0≤val≤100000 0≤val≤100000 输入描述&#xff1a; 第一行输入数组元素个数 第二行输入待排序的数组&#xff0c;每个…

python实现九九乘法表

九九乘法表 i 1 while i < 9:j 1while j < i:print(f{j}*{i}{i * j}, end\t)j 1print()i 1结果&#xff1a;

window10 查看本机TCP协议进程

1. netstat 是一个常见的网络工具&#xff0c;用于显示网络连接状态、路由表、接口统计信息等网络相关的信息&#xff0c;可以帮助诊断和解决网络问题。 其中&#xff0c;各参数的含义为&#xff1a; -a&#xff1a;显示所有的网络连接和监听端口。 -e&#xff1a;显示以太网…

CDH yarn Fair 队列最大资源使用限制,任务无法提交

一、问题背景描述 1.任务提交异常日志 2023-06-29 15:48:20,877 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the requested resources are available in the YARN cluster 2023-06-29 15:48:21,129 IN…

1-什么是NumPy?【视频版】

目录 问题解答观看视频 问题 解答 NumPy&#xff0c;全称Numerical Python&#xff0c;是一个开源的Python科学计算库。它为Python提供了大量的数学库&#xff0c;包括&#xff1a; 强大的N维数组对象成熟的广播功能集成C/C和Fortran代码的工具有用的线性代数、傅里叶变换和随…

第一个spring程序

我们今天写第一个spring程序 我们采用maven形式创建工程。 我们首先在pom.xml中加入引用。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSch…

(6)蜂鸣器(又称音调报警)

文章目录 6.1 使用有源蜂鸣器而不是无源蜂鸣器 6.2 安装蜂鸣器 6.3 使蜂鸣器安静 蜂鸣器&#xff08;或音调报警器&#xff09;可用于以声音指示飞行器的状态变化。根据电路板的能力&#xff0c;它可以是一个有源设备&#xff08;只需要施加电压来产生一个单一频率的音调&am…

给定一组数据样本,计算:【样本的平均值】, 【样本的标准差】, 【样本的变异系数】,【样本的标准误差】

一、指标含义 样本的平均值&#xff1a;指样本中所有数据的总和除以样本大小&#xff0c;是样本的中心趋势的度量。平均值常用于描述数据的集中程度&#xff0c;具有良好的代表性和易于计算的优点。 样本的标准差&#xff1a;指样本中每个数据与平均值的偏差的平方和的平均值的…