利用 JS 构造函数思想,同时设置多个页面元素的动态效果

JavaScript网页动态效果设计案例详解 / 替换data-src为真实URL。// CSS切换显示状态。// 动态插入新元素。// 计算时针角度 ((小时%12 + 分钟/60) * π/6):输入时即时校验格式(如邮箱、密码强度),错误提示动态插入DOM27。:页面滚动时多层背景以不同速度移动,营造3D深度感3。// 指示器状态同步。// 绘制时针(长度40%半径,粗12px) 阅读详情

JS 构造函数思想在DOM上的应用

对于页面中某些重复元素要设置相同或类似的动态属性,为了尽量减少代码重复,我们可以利用JS面向对象的构造函数思想来封装组件。

举例:

页面中两个盒子,一个盒子通过鼠标点击,可以切换显示的内容。另一个盒子自动切换显示的内容。

在这里插入图片描述
在这里插入图片描述

分析:

两个盒子的共同点:

  1. 盒子的布局完全相同,子节点相同
  2. 切换显示内容的动态事件相同

两个盒子的不同点:

​ 触发事件的方式不同,一个是点击事件,一个是自动触发(页面加载)

思路:

我们通过一个构造函数,以盒子的id为参数,构造出一个实例对象,这个对象可以调用构造函数上的方法来实现动态事件。

在构造函数中,我们把两个盒子的共同的属性放到构造函数的属性里,将点击事件和自动触发事件分别作为两个方法,放到构造函数的原型 prototype 上。

实现代码:

HTML 部分:

<div id="div1">
    <p style="background-color: pink">点击切换</p>
    <button class="on">1</button>
    <button>2</button>
    <button>3</button>
    <div style="display: block">哈哈哈哈哈</div>
    <div>嘻嘻嘻嘻嘻</div>
    <div>嘿嘿嘿嘿嘿</div>
</div>

<div id="div2">
    <p style="background-color: pink">自动切换</p>
    <button class="on">1</button>
    <button>2</button>
    <button>3</button>
    <div style="display: block">哈哈哈哈哈</div>
    <div>嘻嘻嘻嘻嘻</div>
    <div>嘿嘿嘿嘿嘿</div>
</div>

CSS 部分:

<style>
        #div1>div,
        #div2>div{
            border: 1px solid red;
            width: 200px;
            height: 200px;
            display: none;
            margin-bottom: 30px;
        }
        #div1 button,
        #div2 button{
            width: 50px;
            height: 30px;
        }
        .on{
            background-color: red;;
        }
        p{
            width: 200px;
        }
    </style>

JS 部分:

 function Change(id) {
        this.box = document.querySelector(id); 
        this.btns = this.box.querySelectorAll('button');
        this.divs = this.box.querySelectorAll('div');
        this.num = 0;
     // 改变按钮样式和下面的显示内容,是通用方法,放在属性里
        this.itemChange = (index)=> {
            this.divs.forEach((item)=>{
                item.style.display = 'none';
            });
            this.divs[index].style.display = 'block';

            this.btns.forEach((item) => {
                item.classList.remove('on');
            });
            this.btns[index].classList.add('on');
        };
    }
	//点击改变
    Change.prototype.go = function () {
        this.btns.forEach((item,index) => {
            item.onclick = () =>{
                this.itemChange(index)
            }
        });
    };
	// 自动改变,用定时器实现
    Change.prototype.autogo = function(){
        setInterval(()=>{
            this.num ++;
            if (this.num > this.btns.length - 1){this.num = 0}
            this.itemChange(this.num);
        }, 500)
    };

	// 生成盒子1的实例,调用相应动态方法
    let box1 = new Change('#div1');
    box1.go();

	// 生成盒子2的实例,调用相应动态方法
    let box2 = new Change('#div2');
    box2.autogo();
JS纯前端实现卡通人物图片的动态效果 web前端卡通图片动态效果 阅读详情

相关推荐

JavaScript之排他思想详述,一线互联网公司面经总结

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取![外链图片转存中…(img-NAnUGXDM-1712119729042)]

2401_84097820的博客 798

JS中既要改变display又要改变opacity的解决方法

JS中既要改变display又要改变opacity的解决方法 今天写作业遇到一个transition失效的问题,在查阅资料得到以下总结: 问题点:如果在一个元素上设置display:none/block,那么他的其他transition的效果是不能有作用的; 解决方法:在设置了display的下面加一个子元素,设置子元素的opacity,然后再在JS中用setTimeout的方法进行对opacit...

weixin_45600344的博客 1543

JavaScript动态效果源码实战下载

htmltable {th, td {th {pre {简介:JavaScript是一种轻量级编程语言,广泛用于网页和网络应用开发,通过实现交互性与动态视觉效果显著提升用户体验。本资源包含丰富的JS动态效果源代码,涵盖动态加载、动画实现、事件处理、DOM操作、AJAX异步通信、响应式设计、数据可视化图表、网页游戏开发、Web组件封装及前端路由等核心技术,适用于前端开发者学习与项目实践,帮助掌握现代网页动态交互的完整技术体系。

weixin_29092787的博客 865

javascript面向对象编程--构造函数 实现动态构造

在面向对象过程中,构造和析构是类的两个重要特性,构造函数在对象创建时候调用,析构函数在对象销毁时被调用 构造函数:   function F(x,y){ this.x=x;this.y=y}   var f=new F(1,2);  alert(f.constructor==F); //true,说明F是f的构造函数 注意:构造函数一般是没有return值的,但有些框架会利用return...

wenmin1987的博客 677

前端动态效果:jQuery与JavaScript合集试用版

本文还有配套的精品资源,点击获取 简介:此资源包包括30多种JavaScript和jQuery动态效果,用于增强网页设计的交互性。效果如焦点图、轮播图、放大镜和左右滑动图片等,可显著提升用户体验。jQuery和JavaScript的使用简化了代码,缩短开发时间。每个效果均独立,配有示例代码,便于在项目中应用和定制。适合所有前端开发者,无论是初学者还是专业人士,能帮助他们学习...

weixin_36064575的博客 1761

使用javascript实现的多种HTML页面特效

主要给出了使用javascript实现网页动态特效,有很多方面,比方说鼠标的移动效果,导航菜单,页面打开效果,文字效果等

js动态添加页面元素

在刚完成的作业中,使用的动态添加页面元素的代码: function add(name) { $("#list").append(" &lt;a class='a' href=\"\"&gt;&lt;li class='li'&gt;\n" + " &lt;img class='img' src=\"/picture/logo.p

Heimdall_vata的博客 2777

可以在一个页面打开多个页面Javascript

一个很不错的javascript实现的打开多层窗体,在网上找了半天都没有找到一个合适的,最是还是自己写了一个,现在还是测试版的,不过可以用,样式还需要自己写

javascript 多个div同时移动

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>练习</title> <style> div{ width:100px ; heig...

浮生途的博客 1712

JavaScript DOM节点添加示例

本节为大家介绍下JavaScript DOM节点添加,将node里面的str放到h1段落中使之成为h1的新段落

偏差平方和说明什么_共同方法偏差检验之潜在误差变量控制法的Amos操作

潜在误差变量控制法是在结构方程模型中,将共同方法偏差作为一个潜变量加入模型,如果在包含方法偏差潜变量情况下模型的显著拟合度优于不包含共同方法偏差潜变量的情况,那么共同方法偏差效应就得到了检验,包含共同方法偏差潜在变量的模型,对于预测与效标变量关系的估计则控制了共同方法偏差。具体操作如下:因为这个过程也是基于因子分析的基础上进行的,关于绘制模型以及运行等过程不再介绍,请参考前面关于“合成信度 ”的相...

weixin_28730927的博客 2363

js动态效果

1、编程实现:鼠标经过改变颜色 假设元素原本为红色,鼠标悬停,改为蓝色,鼠标离开,颜色还原 <!DOCTYPE html> <html lang="zh-CH"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-w

weixin_48322694的博客 2834

美亚杯取证比赛必备:Veracrypt挂载+检材解压保姆级教程(附常见错误排查)

本文提供美亚杯数字取证竞赛的Veracrypt挂载与检材解压保姆级教程。详细解析从分卷压缩包解压(密码格式为MeiyaCup+年份)到使用Veracrypt正确挂载加密容器的全流程,并附有常见错误排查与高级应急方案,帮助选手高效突破技术门槛,顺利进入取证分析阶段。

alice7model的博客 1030

Vue.js的多个元素过渡:实现列表的动态效果

多个元素的过渡可以用于实现列表的自定义过渡效果。

你若盛开,清风自来 587

Libero SoC v2021.1离线安装与IP核配置全攻略

本文详细介绍了Libero SoC v2021.1在离线环境下的完整安装与配置流程。核心内容包括如何选择正确的离线安装包、获取并配置许可证、安装与挂载MegaVault IP库,以及将ModelSim仿真器切换至免费SE模式的关键步骤。文章旨在帮助内网开发者避开常见陷阱,顺利完成FPGA开发环境的搭建。

weixin_29279101的博客 406

STM32实战指南:TFTLCD液晶屏驱动与ILI9341应用解析

本文详细解析了STM32驱动TFTLCD液晶屏的实战技巧,重点介绍了ILI9341控制器的硬件连接、寄存器操作及性能优化方法。通过8080并行接口时序分析、GRAM操作优化和DMA传输应用,帮助开发者高效实现液晶屏驱动,适用于工业控制、智能家居等场景。

weixin_26873711的博客 232

JavaScript网页设计中的魔法:各种各样实用好看的动态效果

通过以上几个案例,我们充分展示了 JavaScript 在实现各种各样实用好看的动态效果方面的强大能力。这些动态效果不仅极大地提升了网页的视觉吸引力,还显著增强了用户与页面之间的交互性。在实际的网页设计过程中,你可以根据网页的具体需求和整体风格,灵活地组合运用这些动态效果,从而打造出独一无二的用户体验。此外,如果你想要进一步拓展这些效果,还有很多方法可以尝试。比如,结合 CSS3 丰富的动画属性,你可以实现更加复杂、精美的动画效果;

四六的六专栏 1739

从零到一:嵌入式车载通信中间件VSOMEIP的跨平台构建之旅

本文详细介绍了嵌入式车载通信中间件VSOMEIP的跨平台构建过程,重点解析了交叉编译环境配置、Boost库编译、VSOMEIP定制化编译等关键技术环节。通过实战案例展示了在ARM架构嵌入式设备上的部署与调试方法,为开发者提供了一套完整的VSOMEIP嵌入式应用解决方案。

lilh34434的博客 195

如何使用JavaScript来创建交互性和动态效果

例如moveUp()、moveDown()、moveLeft()和moveRight()将设置元素的top、left、right和bottom属性,以使其相对于父元素向上、向下、向左和向右移动。如果你是一名新手,那么学习JavaScript可能会让你感到有些困难,但是不要担心,因为我们将尽量详细的解释这门语言,并且给出一些实用的例子。这样,当用户滚动页面时,图片将会动态地移动,并且看起来非常酷炫。当你运行这个例子时,你将看到四个按钮将使元素上下移动、左右移动和向左向右移动,从而创建一个动态的效果。

2301_77795034的博客 2658

Windows下Anaconda和PyTorch深度学习环境完整安装配置教程

本文详细介绍了在Windows系统下安装配置PyTorch深度学习环境的完整流程。主要内容包括:硬件环境检查(确认GPU支持)、Anaconda环境管理系统的安装与配置、虚拟环境的创建与管理方法、以及PyTorch及其相关组件的安装指南。特别强调了版本兼容性选择策略(如CUDA版本的确定)、显卡驱动更新、使用Anaconda创建隔离的PyTorch专用环境等关键步骤。无论是使用CPU还是GPU版本,读者都能按照教程快速搭建稳定的PyTorch开发环境,为深度学习项目打下坚实基础。

FJN110的博客 973

10、皮肤 - 神经记录实验全流程解析

本博客详细介绍了皮肤-神经记录实验的全流程,涵盖实验所需的材料准备和具体操作方法。内容包括细胞外记录设备的设置、合成间质液(SIF)的制备与调节、小鼠后爪皮肤和胫神经的手术解剖步骤、清洁解剖后的记录准备、纤维分离与感受野识别方法,以及神经纤维机械响应的测量。该实验为研究神经纤维的活动与功能提供了重要的技术支持,适用于神经科学研究领域。

backprop5master的博客 185

JavaScript(页面动态效果)

JavaScript三个核心:ECMAScript、BOM、DOM JavaScript入门 三种添加方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS入门</title> <!-- 2.内部方式添加js代码, script标签位置没有要求 --> <script>

DZiXin的博客 4197

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[ JavaScript ] 前端网页的动态效果

本次主要介绍了JavaScript的相关内容, 包括JavaScript的概述 基本语法 函数 事件 内置对象 dom操作 计时

yang20060116的博客 713

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

利用JavaScript创建交互式网站:掌握HTML, CSS, JavaScript基础,实现网页的动态效果和用户交互。

想象一下,互联网是一片浩瀚无垠的大海,而我们的旅程就从这片蓝色深渊的边缘开始,那里有HTML的小溪静静流淌,滋养着一切的基础;回望来时的路,我们从HTML的小溪出发,穿越了CSS的湖泊,最终在JavaScript的海洋中畅游。它集成了HTML的结构、CSS的美化以及JavaScript的灵动,每一个细节都是精心设计,旨在提供最佳的用户体验。告别了溪流,我们来到了CSS的湖畔,这里风光旖旎,色彩斑斓。“不怕神一样的对手,就怕猪一样的队友”,但在前端世界里,我们要做的是成为那个“神队友”,用技术征服一切难题?

一个平平无奇的博客,一个平平无奇的人,一个平平无奇的约定 1232

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: JS面试题解析 考察:js执行顺序,变量提升,作用域,this 指向,继承等
下一篇: typeof 和 instanceof 比较
s_apy
博客等级 码龄7年 4粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值