最简单的利用原生js模拟电视机屏保效果

简介: 最简单的利用原生js模拟电视机屏保效果小的时候记得家里刚用彩色电视机时,看电视还要用天线,当天线信号不好时,电视屏幕就会进入到屏保状态,有一串文字在屏幕内“撞来撞去”。下面我们来讲一下如何实现下图这个效果:在这里插入图片描述HTML代码: 调速:<input type="number" name="" id="num"> <div id="box"></div> 1 2CSS代码: * { margin: 0; padding: 0; } #box { width:

最简单的利用原生js模拟电视机屏保效果




小的时候记得家里刚用彩色电视机时,看电视还要用天线,当天线信号不好时,电视屏幕就会进入到屏保状态,有一串文字在屏幕内“撞来撞去”。下面我们来讲一下如何实现下图这个效果:


在这里插入图片描述

20200530014415138.gif

HTML代码:

调速:<inputtype="number"name=""id="num"><divid="box"></div>


CSS代码:



* {
        margin: 0;
        padding: 0;
    }
    #box {
        width: 200px;
        height: 200px;
        background: red;
        position: absolute;
        top: 0;
        left: 0;
    }

JS代码:

// 获取元素
    var oBox = document.getElementById("box");
    var oV=document.getElementById("num");
    var x = 0,y = 0;
    var on=true;
    var on2=true;
    var v1=0;
    oV.onchange=function(){
        v1=Number(this.value)
    }
    setInterval(function () {
        // 水平
        if(on){
            x+=v1;
            if(x>=innerWidth-200){
                on=!on;
            }
        }else{
            x-=v1;
            if(x<=0){on=!on;}}//垂直if(on2){y++;if(y>=innerHeight-200){
                on2=!on2;
            }
        }else{
            y--;
            if(y<=0){on2=!on2;}}//if(x>=innerWidth-200) {
        //     // 超出水平方向范围
        //     x--;
        // }else{
        //      x++;
        // }
        // if(y>=innerHeight-200){
        //     //超出垂直方向范围
        //     y--;
        // }else{
        //     y++;
        // }
        oBox.style.left = x + "px";
        oBox.style.top = y + "px";
    }, 1)


注意: 其实实现屏保效果很简单,需要注意的是怎样编辑临界条件,怎样确定当前的方块应该向哪个方向移动。


**视频讲解链接:https://www.bilibili.com/video/BV195411s7aT/**

文章来源:https://blog.csdn.net/qq_39155611/article/details/106436099


相关文章
|
22天前
|
JavaScript 算法 数据安全/隐私保护
原生JS实现:密码输入框显示隐藏密码效果
原生JS实现:密码输入框显示隐藏密码效果
|
25天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
3月前
|
JavaScript
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
62 1
|
25天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
4月前
|
前端开发 JavaScript 索引
|
5天前
|
前端开发 JavaScript 调度
原生JavaScript实现弹幕组件
原生JavaScript实现弹幕组件
|
7天前
|
JavaScript 前端开发
js原生自调用函数原理
JavaScript中的IIFE(Immediately Invoked Function Expression)是定义后立即执行的函数表达式。它有两种实现方式:匿名函数表达式 `(function() { /* 函数体 */ })()` 和命名函数声明 `(function myFunction() { /* 函数体 */ })()`。IIFE提供封闭作用域,防止变量冲突,常用于创建私有作用域、封装代码和避免变量提升问题。执行后,IIFE内部的变量和函数会被销毁,除非被特意暴露。
|
7天前
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
8天前
|
JavaScript 前端开发 BI
原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)
原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)
11 1
|
11天前
|
移动开发 JavaScript HTML5
input | pattern | oninvalid | setCustomValidity | html5原生js表单校验
input | pattern | oninvalid | setCustomValidity | html5原生js表单校验
13 0