js简单实现div宽度匀速增加/减小
时间:2022-05-15
本文章向大家介绍js简单实现div宽度匀速增加/减小,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
效果类似百度首页音乐盒。
点击音乐右边的div可以变长或者变短。
代码:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <style>
7 *{
8 margin: 0;
9 padding: 0
10 }
11 body{
12 background: #121B18;
13 }
14 .txt{
15 width: 50%;
16 margin: 100px auto;
17 position: relative;
18 }
19 .mask{
20 width: 0px;
21 height: 50px;
22 overflow: hidden;
23 position: absolute;
24 left: 0;
25 display: none;
26 background: #5D6A5D;
27
28 }
29 .right{
30 float: left;
31 position: relative;
32
33 }
34 .gouzi{
35 float: left;
36 width: 30px;
37 height: 50px;
38 color: #fff;
39 text-align: center;
40 position: relative;
41 background: #4F6151;
42 }
43 .yinyue{
44 position: absolute;
45 top: 11px;
46 left: 0;
47 }
48 .content{
49 color: #fff;
50 width: 700px;
51 }
52 .clear{
53 clear: both;
54 }
55 </style>
56 </head>
57 <body>
58 <div class="txt" draggable="true">
59 <div class="gouzi" id="holdTxt"><span class="yinyue">音乐</span></div><!--钩子-->
60 <div class="right">
61 <div class="mask" id="mask"><!--遮罩层-->
62 <div class="content">我是内容</div>
63 </div>
64 <div class="clear"></div><!--清除浮动 -->
65 </div>
66 </div>
67 </body>
68 <script>
69 var holdTxt = document.getElementById("holdTxt");
70 var mask = document.getElementById("mask");
71
72 function addW(iWidthMin,iWidthMax,iSpeed){//增加/减小宽度函数,iWidthMin为最小宽度,iWidthMax为最大宽度,iSpeed为速度
73 mask.style.display="block";
74 if(iSpeed>0){//判断是增加宽度还是减小宽度
75 if(mask.offsetWidth<iWidthMax){//临界值判断
76 mask.style.width=mask.offsetWidth+iSpeed+"px";//offsetWidth:元素的宽度,边框,内边距,内容之和,不包括外边距的。
77 }
78 }else{
79 if(mask.offsetWidth>iWidthMin){
80 mask.style.width=mask.offsetWidth+iSpeed+"px";
81 }
82 }
83
84
85 }
86 var timer=null;
87 var flag=0;
88 holdTxt.onclick=function(){
89 clearInterval(timer);//清除上一次的定时器
90 if(flag==0){//如果flag==0,执行增加宽度函数
91 timer = setInterval(function(){
92 addW(0,700,10);
93 },20);
94 flag=1;//让flag=1,下次点击就执行减小宽度函数
95
96 }else if(flag==1){
97 timer = setInterval(function(){
98 addW(0,400,-10);
99 },20);
100 flag=0;
101
102 }
103
104
105 }
106 </script>
107 </html>
效果好丑(没有加太多修饰):
- finecms设置伪静态后分享到微信不能访问怎么处理
- composer安装其实可以很简单 两行命令就解决了
- 章神的私房菜之数据预处理
- 如何调用finecms指定栏目的描述关键词
- finecms栏目文章页seo设置
- Logistic回归实战篇之预测病马死亡率(一)
- DedeCMS后台500错误一种原因是不支持PHP5.3、5.4及以上版本
- finecms指定从第几篇文章开始调用5条记录,并调用文章所在栏目
- finecms如何调用多个栏目的子栏目
- 从傅立叶变换到Gabor滤波器
- 三个小时学会wordpress模板制作
- The each() function is deprecated报错的解决方法
- 书接上文:薛定谔的猫是如何诞生的?
- docker源码分析(3)---镜像(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浙大版《C语言程序设计(第3版)》题目集 习题8-3 数组循环右移
- SwiftUI:控制图像插值
- SQL-查询比p6零件供应数量都高的零件
- 浙大版《C语言程序设计(第3版)》题目集 习题8-5 使用函数实现字符串部分复制
- 最小生成树-Magicpig密室出逃(Kruskal+并查集)
- 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符
- SQL-显示供应商供应零件的汇总列表(with rollup+coalesce)
- 浙大版《C语言程序设计(第3版)》题目集 习题8-8 判断回文字符串
- 双向广搜-HDU1401 Solitaire
- TCP三次握手和四次挥手以及11种状态
- 浙大版《C语言程序设计(第3版)》题目集 题8-9 分类统计各类字符个数
- 迭代加深搜索-POJ 3134 Power Calculus
- 浙大版《C语言程序设计(第3版)》题目集 习题9-2 计算两个复数之积
- 浙大版《C语言程序设计(第3版)》题目集 习题9-6 按等级统计学生成绩
- 实战|用pandas+PyQt5制作一款数据分组透视处理工具