首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

角度动画开关2不同大小的div

是指通过使用CSS动画和JavaScript来实现一个开关,点击开关时可以切换两个不同大小的div的显示和隐藏。

实现这个功能的关键是使用CSS动画来控制div的动态效果,以及使用JavaScript来监听开关的点击事件并切换div的显示和隐藏。

以下是一个可能的实现方式:

HTML代码:

代码语言:txt
复制
<div class="switch">
  <input type="checkbox" id="toggle">
  <label for="toggle"></label>
</div>

<div class="div1"></div>
<div class="div2"></div>

CSS代码:

代码语言:txt
复制
.switch {
  position: relative;
  width: 60px;
  height: 30px;
}

.switch input[type="checkbox"] {
  display: none;
}

.switch label {
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 30px;
  background-color: #ccc;
  border-radius: 15px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.switch label:before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 26px;
  height: 26px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.3s;
}

.switch input[type="checkbox"]:checked + label {
  background-color: #66bb6a;
}

.switch input[type="checkbox"]:checked + label:before {
  transform: translateX(30px);
}

.div1 {
  width: 100px;
  height: 100px;
  background-color: #f44336;
  transition: opacity 0.3s;
}

.div2 {
  width: 200px;
  height: 200px;
  background-color: #2196f3;
  transition: opacity 0.3s;
  opacity: 0;
}

.switch input[type="checkbox"]:checked ~ .div1 {
  opacity: 0;
}

.switch input[type="checkbox"]:checked ~ .div2 {
  opacity: 1;
}

JavaScript代码:

代码语言:txt
复制
const toggle = document.getElementById('toggle');

toggle.addEventListener('change', function() {
  const div1 = document.querySelector('.div1');
  const div2 = document.querySelector('.div2');
  
  if (this.checked) {
    div1.style.display = 'none';
    div2.style.display = 'block';
  } else {
    div1.style.display = 'block';
    div2.style.display = 'none';
  }
});

这段代码实现了一个简单的开关,点击开关时会切换div1和div2的显示和隐藏。div1和div2分别代表两个不同大小的div,通过设置不同的宽度和高度来实现不同的大小。

该实现使用了CSS的transition属性来实现平滑的动画效果,通过改变div的透明度来实现显示和隐藏的效果。开关的状态通过JavaScript的事件监听来实现,当开关状态改变时,通过修改div的display属性来切换显示和隐藏。

腾讯云相关产品和产品介绍链接地址:

  • CSS动画:https://cloud.tencent.com/product/css-animation
  • JavaScript:https://cloud.tencent.com/product/js
  • HTML5:https://cloud.tencent.com/product/html5
  • 前端开发工具:https://cloud.tencent.com/product/frontend-tools

请注意,以上链接仅为示例,实际使用时应根据实际情况选择合适的腾讯云产品和链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS动画系列之四:基础动画之平移篇2. 创建不同速度控制动画3. Swift版本部分差异

最终实现效果: BasicAnimation.gif 步骤如下: 1, 创建CALayer。 2, 设置CALayer位置、大小、背景颜色。...basicAni.duration = 2; //动画填充模式 basicAni.fillMode = kCAFillModeForwards; /...创建不同速度控制动画 上面代码里面我们看到了有一些莫名其妙出来字符串,例如在设置动画属性时候出来: //设置动画属性 basicAni.keyPath = @"position"...2; //动画重复次数 basicAni.repeatCount = CGFLOAT_MAX; //xcode8.0之后需要遵守代理协议 basicAni.delegate...Swift版本部分差异 Swift版本几乎和OC一模一样。略有不同是,swift在加载layer时候,我们使用了懒加载方式。也就是在使用时候才去创建这个layer。

2.8K20
  • 基于 HTML5 3D 工控隧道案例

    、SplitView 和 TabView 等容器中使用,而最外层 HT 组件则需要用户手工将 getView() 返回底层 div元素添加到页面的 DOM 元素中,这里需要注意是,当父容器大小变化时...但如果父容器是原生 html 元素, 则HT组件无法获知需要更新,因此最外层 HT 组件一般需要监听 window 窗口大小变化事件,调用最外层组件 invalidate 函数进行更新。...} 我在场景中添加了一些功能,包括前面提到过一些动画操作,HT 封装好 dataModel.addScheduleTask(task) 通过操作数据容器 dataModel 来控制加载动画动画部分在参数... 我动画一共三个,两个隧道中各有一个风扇、一个风向仪以及一个卷闸门。...data.r3(0, (data.r3()[1]+Math.PI/12), 0);//r3 为 3d 中旋转,这里 y 轴在原来基础上再旋转 Math.PI/12 角度 }else if(tag

    80020

    烧脑预警,useEffect 进阶思考

    (); }, [anime01, anime02]); 因为需求中方块有两次不同动画过程,因此我定义了两个布尔型状态来表达每段状态运行与否,当状态为 true 时,执行对应动画函数 针对这个案例...2. 当需求变动,白色方块存在三个甚至更多段动画,那么我们应该怎么办? 01 逻辑解耦 目标对象有两段动画,每段动画效果不一样。因此我们需要分别去定义每段动画执行。...} }) } 此处我们只关注动画执行与动画执行结束时刻,可以用不同方式来实现,本处案例并非唯一方案 当需求变动,需要执行 3 段动画,甚至更多,我们只需要相对应增加不同动画函数即可...,那么,在复杂逻辑之下,我们只需要控制开关,就能控制动画执行,因此 第一段动画执行完毕,下一段动画要开始执行,我们只需要关闭第一段动画开关,打开第二段动画开关 function animate01..., anime02]); 03 状态解耦 此时,所有的开关都被放在一个 useEffect 中聚合,从可读性角度来看并不可取。

    65460

    给单元素艺术添加动画

    对于工具学习,我很愿意尝试一些不同、有趣方法,否则你可能永远也学不会。因为单个 div 元素限制,它并不适合实际生产工作,但是可以作为锻炼技能一次练习或挑战。...风箱运动需要设置不同 scaleX 值而另外两个部分则设置跟随风箱运动 translateX 值。这样,一个简易手风琴就诞生了。...现在我们可以考虑修改 --button-key2 或者手风琴装饰线 --shine 来添加动画。解决这个问题方法有很多。...这个方法对于切换某个属性非常有用 (比如直接改变大小、位置或颜色)。手风琴右侧按钮部分用就是这一方法 (如果关键帧方法不被支持的话可以用这个方法替换)....最终使用 JS 修改它们值并创建开关动画。 var enabled = false; setInterval(function() { enabled = !

    1.4K50

    CSS3loading制作,让页面加载时不再单调

    2、主要涉及到知识点 此效果实现并不是很难,只需要借助之前CSS3文章系列中讲解过圆角、变形、动画,在配合上相应位置定位即可实现,具体我们来分析下需要用到知识点。...其主要使用方式如下: transform: rotate(30deg); 通过指定角度参数对元素指定一个旋转,其中angle是指旋转角度,如果设置值为正数表示顺时针旋转,如果设置值为负数,则表示逆时针旋转...3)CSS3动画 借助CSS3animation来实现圆环转动效果,配合关键帧keyframe,让圆环在不同旋转时期发生不一样变化。...3、基本实现思路 利用两个div来实现左右各半位置大小制作,然后借助圆角边框实现圆环样式控制,让原来是方形块变成圆形;之后控制不同方向上边框颜色,调整最佳视觉效果;最后利用CSS3动画,实现圆环转动...5、总结 此效果采用是两个div各占父级一半大小布局方式,然后借助定位实现两个半圆完美拼接,最后针对边框不同方向,给予不同颜色变化,配合上动画效果,实现最终圆环转动与相应颜色变换。

    2K90

    CSS3与页面布局学习总结(六)——CSS3新特性(阴影、动画、渐变、变形、伪元素等)

    3.2、after after也是一个与before类似的伪元素,不同是他位置是在内部尾部,示例如下: : 用长度值设置对象圆角半径长度。不允许负值 : 用百分比设置对象圆角半径长度。不允许负值 这里有两部分,第一个角度是水平角度,第二个角度是垂直角度。...2、支持百分比值,百分比值大小事相对于边框图片而言,假设边框图片大小为400px*300px,则20%实际效果就是剪裁了图片60px 80px 60px 80px四边大小。...x,y,z,第4个参数表示旋转角度,参数不允许省略 rotatex(): 指定对象在x轴上旋转角度 rotatey(): 指定对象在y轴上旋转角度 rotatez(): 指定对象在z轴上旋转角度...八、动画 前端可以使用javascript实现一些简单动画,但是有很大局限;jQuery解决了部分问题,对于一些小动画jQuery表示不错,但复杂过渡效果也无能为力;CSS3中引入了2动画效果表现不错

    3.1K50

    原 荐 基于 HTML5 Canvas

    false, 0.00001);//自适应大小,参数1为是否动画,参数2为gv与边框padding值 gv.setMovableFunc(function(){ return false;//...不同点在于鼠标移动到“换乘站点”时,“换乘站点”会旋转。...(e.data, false, 10);//将事件下节点自适应到拓扑图中央,参数1为自适应节点,参数2为是否动画,参数3为gv与边框padding } else if(e.kind...image.png “呼吸”部分是利用 ht setAnimation 函数来完成,在用这个函数之前要先打开数据容器动画开关,然后设置动画: dm.enableAnimation();//打开数据容器动画开关...node.setSize(1, 1);//设置节点大小 node.setLayer('firstTop');//设置节点显示在gv最上层 node.s('2d.visible

    99440

    CSS背景属性知多少?

    需要调整背景图片尺寸,一般来讲图片尺寸并非百分百就符合元素所在矩形框大小,此时如果想要在盒模型容器中全部展示图片或展示部分,就需要用到该属性去调整(拉伸)背景图尺寸 示例代码: <div class...,终点颜色),起点和终点角度值可以参考下面的图: 起终点角度计算 第一个参数角度计算以时钟⏰12点方向为0度(deg),顺时针方向旋转角度。...预览效果不佳,可移步:https://codepen.io/DYBOY/pen/poNMxbX 2.2 不规则几何变换背景(Magical Wallpaper) 上面是借助线性渐变,那么我们再增加径向渐变,不同角度...,不同变换中心点,不同size,那么就可以实现一个不规则几何渐变背景,随便截个图都是一张抽象派壁纸 效果如图: 预览效果 这里就不贴代码了,代码略长 代码&动态演示:https://codepen.io...基于background逐帧动画首先需要准备好包含动画关键帧雪碧图 例如素材: 雪碧图素材 代码这么写: *{ padding

    1K20

    01超精美渐变色动态背景完整示例【CSS动效实战(纯CSS与JS动效)】

    线性渐变 和 径向渐变不同在于渐变色方向不同,线性渐变渐变方向可以指定为 上下左右、角度以及对角渐变,径向渐变方向则是基于某个中心点。...,所以顶部颜色为橙色,第二个颜色给予颜色是红色,所以此时在 div颜色为红色。...1.6 渐变线(重点) 渐变线在渐变中是指渐变颜色停止线,渐变线可以指定位置,并且可以通过渐变线使渐变色居于某一个范围之内,渐变线使用一定是要在 2 种渐变色以上。...表示当前尺寸大小与中心点最近距离 farthest-side 表示当前尺寸大小与中心点最远距离 closest-corner 表示当前尺寸大小与中心点最近距离 farthest-corner...渐变色移动需要使用对应动画动画使用 animation 属性,并且还需要定义一个帧动画

    5.7K10

    如何实现一个圆弧倒计时进度条

    如果遮盖圆和左边亮色进度条设置一样边框大小,会出现金色边 ? 好吧,样式方面已经基本完成,其他点缀样式就不在这里列出了,可以看看下面的源码。...inittime; let animation; if (time > halfTime) { // 左半边还没转完 // 左半边:动画初始角度...=左半边进度条初始角度+已经转角度,最终角度=初始角度+120 度,动画持续时间=左半边还剩需要转时间 // 右半边:动画初始角度=右半边进度条初始角度,最终角度=初始角度...:起始帧和重点帧都=左半边进度条初始角度+120 度 // 右半边动画动画初始角度=右半边进度条初始角度+右半边已经角度,最终角度=初始角度+120 度,动画持续时间=剩余时间...,而倒计时因为未到 2 秒,定时器就清除了,下次还是会从 1 开始计时, // 这就会导致倒计时和动画不同步,之类稍微校正一下,如果结束时间和开始时间取余数大于 500,就把倒计时

    2.5K30

    【CSS】398- 原生JS实现DOM爆炸效果

    效果分析 * 点击作为动画开始起点,自动结束 * 每次效果产生多个抛物线粒子运动元素,方向随机,展示内容不一样,有空间上Z轴大小变化 * 需求上可以无间隔点击,即第一组动画未结束可播放第二组动画...,需要此粒子执行动画角度动画力度,以及延迟时间 animate({ deg, pow, delay } = {}){ // 后续补全 } // 动画结束回调存储...: deleteEl 方法 为了更好展示粒子内容,我们特意在constructor里创建了一个 Boom-Partical_con 元素用于模拟slot功能: insertChild方法,用于使用者展示不同内容进行爆炸...力分解图解 也就是说 我们可以知道一个方向上力在XY轴分量大小, 假设我们将 力 概念 转化为 视图中 位移概念, 我们将 力量1 记为 10vh大小 于是我们可以定义全局变量 const...对于Boom.js功能需求为 创建粒子 执行粒子动画,赋予动画力、角度、延时 设置粒子容器 可达到效果: 不关心业务,业务使用者传入每个粒子slot内容数组 粒子组件可复用 易于维护(可能是哈哈哈)

    3.4K70

    基于 HTML5 结合互联网+ 3D 隧道

    、SplitView 和 TabView 等容器中使用,而最外层 HT 组件则需要用户手工将 getView() 返回底层 div元素添加到页面的 DOM 元素中,这里需要注意是,当父容器大小变化时...但如果父容器是原生 html 元素, 则HT组件无法获知需要更新,因此最外层 HT 组件一般需要监听 window 窗口大小变化事件,调用最外层组件 invalidate 函数进行更新。...动画 我在场景中添加了一些功能,包括前面提到过一些动画操作,HT 封装好 dataModel.addScheduleTask(task) 通过操作数据容器 dataModel 来控制加载动画(https...: interval:间隔毫秒数,默认值为 10 enabled:是否启用开关,默认为 true action:间隔动作函数,该函数必须设置 我动画一共三个,两个隧道中各有一个风扇、一个风向仪以及一个卷闸门...data.r3(0, (data.r3()[1]+Math.PI/12), 0);// r3 为 3d 中旋转,这里 y 轴在原来基础上再旋转 Math.PI/12 角度 }else if(

    69810
    领券