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

当我们向上滚动时,两个div缩小,另一个div gowing

当我们向上滚动时,两个div缩小,另一个div growing。

这个问题涉及到前端开发和CSS动画的知识。

首先,我们需要使用CSS来实现这个效果。可以通过CSS的transform属性来缩小和放大元素,以及transition属性来实现平滑的动画效果。

具体的实现步骤如下:

  1. 首先,在HTML中创建三个div元素,分别给它们添加不同的类名,例如"div1"、"div2"和"div3"。
代码语言:txt
复制
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
  1. 在CSS中,为这三个div元素设置样式,并使用transform属性将div1和div2缩小,div3放大。
代码语言:txt
复制
.div1 {
  transform: scale(0.5);
  transition: transform 0.5s ease;
}

.div2 {
  transform: scale(0.5);
  transition: transform 0.5s ease;
}

.div3 {
  transform: scale(1.5);
  transition: transform 0.5s ease;
}
  1. 接下来,我们需要使用JavaScript来监听滚动事件,并根据滚动方向来改变div元素的样式。
代码语言:txt
复制
window.addEventListener('scroll', function() {
  var scrollDirection = getScrollDirection();
  
  if (scrollDirection === 'up') {
    document.querySelector('.div1').style.transform = 'scale(0.5)';
    document.querySelector('.div2').style.transform = 'scale(0.5)';
    document.querySelector('.div3').style.transform = 'scale(1.5)';
  } else if (scrollDirection === 'down') {
    document.querySelector('.div1').style.transform = 'scale(1)';
    document.querySelector('.div2').style.transform = 'scale(1)';
    document.querySelector('.div3').style.transform = 'scale(1)';
  }
});

function getScrollDirection() {
  var lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
  
  window.addEventListener('scroll', function() {
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
    
    if (scrollTop > lastScrollTop) {
      lastScrollTop = scrollTop;
      return 'down';
    } else if (scrollTop < lastScrollTop) {
      lastScrollTop = scrollTop;
      return 'up';
    }
  });
}

以上代码中,我们使用了getScrollDirection函数来获取滚动方向,然后根据滚动方向来改变div元素的样式。

这样,当我们向上滚动时,div1和div2会缩小,div3会放大;当我们向下滚动时,所有的div元素都会恢复到原始大小。

这个效果可以应用在各种网页设计中,例如滚动时的动态效果展示、页面切换动画等。

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

  • 腾讯云前端开发服务:https://cloud.tencent.com/product/fe
  • 腾讯云CSS动画服务:https://cloud.tencent.com/product/css-animation
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入常用CSS声明(一) —— Background

背景图片设置为inherit,表示继承自父容器的背景图片。如果父容器没有设置背景图片,默认为none。...scroll 背景图片相对于图片容器滚动,不随内容滚动 local 如果容器内容有滚动情况,背景图片相对于内容滚动,而与包含它的容器无关 这其中要理解的可能就是scroll和local的区别。...简单来说就是包含它的容器有没有设置固定尺寸,如果没有固定尺寸,那么内容区域和容器区域其实是相同的,这样scroll和local的表现其实相同;如果容器设置了一定的高度,此时内容出现了滚动条,然后我们在底部设置了一张背景图...而当我把容器尺寸改为:238 x 224,会发现水平方向出现了9个星星, 图片被缩小;而改为237 x 224的时候,依然是8个星星,但是图片被放大。 ?...,那么另一个值为图片容器尺寸 若值为百分比,那么会根据图片容器尺寸先折算成具体尺寸,然后再根据比例计算另一边的尺寸 如果backgound-attachment为fixed,图片容器尺寸为当前视图窗口

1.7K50
  • CSS | 视差滚动 | 笔记

    scroll 背景相对于元素本身固定,而不是随着它的内容滚动(对元素边框是有效的)。 对父元素 css_demo 设置 overflow: scroll, 元素内容超出页面滚动。...另一个物理效应是规模。 如果我们把一些东西移得更远,它就会显得更小。如果它更近,它会显得更大。 如果你想抵消这种调整,你需要自己扩大或缩小它。...perspective属性用在容器上,容器内每个元素的表现形式会不一样。 perspective属性用在容器内每个元素身上,会根据各自的设置值进行表现。...在视差滚动中,"向内移动"和"向外移动"是相对于观察者(即浏览器窗口)的视角来说的。 一个层的 translateZ 值为负,它会向内移动,也就是朝向观察者的方向。...CSS: background background-position 参考: background-position - CSS:层叠样式表 | MDN 注意: 两个, 依次为 background-position

    68221

    聊聊苹果营销页中几个有趣的交互动画

    两个效果 翻盖效果 一个是屏幕慢慢打开的效果,在屏幕打开的过程中,「电脑图片」 是在屏幕中固定不动的,直到打开完毕或者关闭完毕的时候再让 「电脑图片」 随着滚动滚动。 ?...缩放图片 开始是一张全屏的图片,在滚动过程中慢慢变成另一张图片,接着这张图片以屏幕正中间为基准点慢慢缩小,在缩小的过程中,这张图是定在屏幕中央的,缩小到一定值的时候,图片随着滚动滚动。 ?...整个蓝色区域在红色区域中的时候,sticky 元素是没有粘性效果的(如图一); 慢慢的向上滑的时候,蓝色的盒子超过了红色的滚动元素,那么 sticky 元素就会在蓝色的框中向下滑,实现粘性效果(如图二...❞ 缩放图片 缩放图片到屏幕这个动画我们可以用两个方式实现,一个是 「滚动视差」 实现,一个是 canvas 在滚动过程中实时渲染图片。 开始之前我们来看一下没有放大的之前图,如下: ?...图片缩小 这里我们不使用 transform: matrix 来做这个放大缩小我们使用 background-position 和 background-size 来进行图片的 「缩小/放大和偏移」

    1.9K60

    transform、transition方法详解及scale、zoom差异性说明

    /*水平方向、垂直方向缩小一半*/ transform: scale(0.5); /*水平方向缩小一半、垂直方向放大一倍*/ transform: scale(0.5, 2); 倾斜 使用skew方法来实现文字或图像的倾斜处理...,在参数中分布指定水平方向上的倾斜角度与垂直方向上的倾斜角度。...50px); /*只在水平方向移动50px*/ transform: translate(50px); CSS3动画过渡 Transitions 将元素的某个属性从一个属性值在指定的时间内平滑过渡到另一个属性值来实现动画功能...0.75,<=1920缩放0.5。...changeScale(); // 改变页面大小时,进行动态判断控制 window.onresize = changeScale; 如在分辨率下1920 * 1080会缩放0.5,截图效果如下(注意,竖向滚动

    3.8K21

    div水平垂直居中的几种方法

    下面我们看一下使对象垂直集中的几种不同方法,以及它们各自的优缺点。 表格布局 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align 属性。... wrapper 里没有足够空间, content 不会被截断. 缺点: Internet Explorer(甚至 IE8 beta)中无效,许多嵌套标签(其实没那么糟糕,另一个专题)....> 优点: 适用于所有浏览器 不需要嵌套标签 缺点: 没有足够空间,content 会消失(类似div 在 body 内,当用户缩小浏览器窗口,滚动条不出现的情况) 追加元素 这种方法,在 content.../div> 优点: 适用于所有浏览器 没有足够空间(例如:窗口缩小) content 不会被截断,滚动条出现 缺点: 唯一我能想到的就是需要额外的空元素了,可能对于某些强迫症患者来说是不愿意的...缺点: IE(IE8 beta)中无效 无足够空间,content 被截断,但是不会有滚动条出现 如何让文本水平垂直居中 css居中属性

    2.1K20

    随心所欲的滚动条,远离产品汪(二)

    首先,我们需要明白我们的滚轮是作用在谁的身上,根据实际需求来进行事件绑定,当我们鼠标移入可视区,会触发滚轮事件,在移出可视区则清除滚轮事件,接下来进行具体代码操作。...较之上篇的实现代码,本篇中增加了两个变量。 1.通过设置变量Judge来判断滚轮的滚动方向,Judge为ture,滚轮向上滚动Judge为false,滚轮向下滚动。...var c = $('#cn').height() - $('#bx').height(); if (Judge) { // 滚动向上滚动,.../判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) { //滑轮向上滚动 Judge = true;...if (e.detail) { //Firefox滑轮事件 if (e.detail> 0) { //滑轮向上滚动 Judge = false;

    2K80

    导航栏滚动吸顶并自动高亮和点击跳转锚点

    2021-01-16 07:37:33 在阿里云的云市场页面上有一个效果,就是api导航栏滚动滚动到其所在位置,自动吸顶,滚动到下方所在导航栏指定的介绍,自动高亮其导航栏。...那么需要我们自己手动来实现以下,具体实现思路就是增加滚动条监听事件,滚动到导航栏指定内容区域,给其导航栏增加高亮样式,点击导航栏,计算好滚动条的滚动距离,让其滚动过去即可。...的地址,因为导航栏吸顶,此处会因为空出位置,下面内容上移,而产生不和谐的效果,我们需要在其吸顶的同时增加一个div来占位,以增加平滑的效果。...active":""} onClick={()=>navClick(item.id)} >{item.name} 下面来看具体的实现逻辑 //先定义两个变量 /*上一次滚动条距顶部位置...isToTop = false;//点击锚点滚动条是向上还是向下 //导航栏点击事件 function navClick(id){ let groupList =

    10.4K50

    CSS3转换(transform)基本用法介绍

    其属性值有: left —— 0% center —— 50% right —— 100% top —— 0% bottom —— 100% 前两个值同只有两个的用法相同。...(听起来好绕hhh,但其实不复杂,意思就是两个值对于x,y的顺序没有规定死,可以自定义,一个表示x轴,那另一个值必须得用y轴的。...值的大小在[-1,1],元素为缩放;大小在[-1,1]范围外,为放大元素;等于1,什么都不做;为负值,执行点反射和大小修改。...效果:分别在x方向和在y方向放大or缩小一定的倍数,不同方向上的放大/缩小倍数可以不同。 参数: 三维:scale3d(sx, sy, sz) 参数:分别表示在横轴、纵轴、z轴的缩放大小。 5....skewX(a) 效果:水平拉伸,将元素每个点在水平方向上扭曲一定程度。 参数:是一个角度,表示用于沿着横坐标扭曲元素的角度。

    1.4K20

    JS简易整页滚动

    向下滚动, currentPosition 比 -整体分页高度 大的时候(绝对值相比小的时候), 向下滚动;向上滚动, currentPosition 大于 0 的时候, 向上滚动. /...= currentPosition - viewHeight container.style.top = currentPosition + 'px' } } // 向上滚动页面 function...currentPosition + viewHeight container.style.top = currentPosition + 'px' } } 3.节流函数 即在规定时间内只会触发一次指定方法, 用于滚动防止多次触发...滚动事件firefox与其他浏览器的事件不同, 所以需要进行判断. deltaY大于0的时候, 想下滚动; 反之, 向上滚动. var handlerWheel = throttle(scrollMove...touch 的最终位置大于起始位置, 则页面向上滚动; 反之, 向下滚动. var touchStartY = 0 document.addEventListener('touchstart', event

    15.6K31

    (转载非原创)CSS3转换(transform)基本用法介绍

    (听起来好绕hhh,但其实不复杂,意思就是两个值对于x,y的顺序没有规定死,可以自定义,一个表示x轴,那另一个值必须得用y轴的。...但如果俩都是值的话,那第一个是x,第二个是y) 三个值: 前两个值同只有两个的用法相同。 第三个值必须得是。表示Z轴偏移量。...缩放 (1) 语法 二维: scale(sx) 或 scale(sx, sy) 效果:分别在x方向和在y方向放大or缩小一定的倍数,不同方向上的放大/缩小倍数可以不同。...值的大小在[-1,1],元素为缩放;大小在[-1,1]范围外,为放大元素;等于1,什么都不做;为负值,执行点反射和大小修改。...skewX(a) 效果:水平拉伸,将元素每个点在水平方向上扭曲一定程度。 参数:是一个角度,表示用于沿着横坐标扭曲元素的角度。

    48210

    javascript如何实现类似西瓜视频的视频队列自动播放?

    这里有一个很常见的例子,平时喜欢看短视频的朋友可能会注意到,我们在浏览某视频头条滚动视频列表,某一个视频滚动到手机的一定位置(一般可以看成是屏幕中心),该视频会自动播放,移出指定区域后视频会自动关闭并播放移入指定区域的下一个视频...因为我们使用的是Dplayer,所以我们只要将其配置属性中的mutex属性设置为true(为true时会阻止多个播放器同时播放,当前播放器播放暂停其他播放器)。...(%),为正值时代表扩大更元素的边距范围,负值代表缩小根元素的边距范围,这里我们应该缩小范围,所以rootMargin我们可以这么设置"-180px 0px -180px 0px",这样上下的边距就会缩小...> } export default VideoList 以上代码中VideoItem组件我们后面会介绍,现在有个问题是我们已经监听到了需要自动播放的视频元素,但是我们如何通知VideoItem...这里笔者实现思路是给VideoItem添加一个自定义属性,该属性的值就是当前video的src,我们在监听到某个视频元素需要播放我们可以获取到之前设置的自定义属性,然后作为prop传给VideoItem

    2.5K20

    使用Intersection Observer API实现视频队列自动播放

    这里有一个很常见的例子,平时喜欢看短视频的朋友可能会注意到,我们在浏览某视频头条滚动视频列表,某一个视频滚动到手机的一定位置(一般可以看成是屏幕中心),该视频会自动播放,移出指定区域后视频会自动关闭并播放移入指定区域的下一个视频...因为我们使用的是Dplayer,所以我们只要将其配置属性中的mutex属性设置为true(为true时会阻止多个播放器同时播放,当前播放器播放暂停其他播放器)。...为正值时代表扩大更元素的边距范围,负值代表缩小根元素的边距范围,这里我们应该缩小范围,所以rootMargin我们可以这么设置"-180px 0px -180px 0px",这样上下的边距就会缩小,当然大家也可以根据需求设置不同的值...> } export default VideoList 以上代码中VideoItem组件我们后面会介绍,现在有个问题是我们已经监听到了需要自动播放的视频元素,但是我们如何通知VideoItem...这里笔者实现思路是给VideoItem添加一个自定义属性,该属性的值就是当前video的src,我们在监听到某个视频元素需要播放我们可以获取到之前设置的自定义属性,然后作为prop传给VideoItem

    1.4K20

    初学前端用代码实现一个网页老虎机游戏

    没错,少了滚动动画。我们只需要在游戏开始给列表加上过渡效果即可。可能有人会问为什么要在游戏开始再加而不是一开始写样式先写上transtion过渡。...我们接下来就是来实现一下“从头开始”,“无限滚动”的效果。 “无限滚动”是怎么实现的? 效果图中我们可以看到数字6滚动结束之后应该会重数字1开始重新滚动,话不多说我们直接揭开谜底。 ?...小编给这台老虎机做了个设定,游戏手柄点击第一下,游戏开始。游戏手柄点击第二下,游戏要结束并重置游戏。游戏手柄点击第三下,游戏又再度重新开始。... 这里小编给start写了个flag,这个flag为true,会执行开始游戏的方法,flag为false,会执行重置游戏的方法,每次点击将flag的值重新赋为flag的反向值即可。...这里我们实现在老虎机游戏结束之后,将游戏结果给打印出来。由于我们的结果是通过radom1,radom2,radom3随机结果得出,radom1为0结果为6,random1为1结果为5,依次类推。

    5.2K10

    《从案例中学习JavaScript》之实现网页版阅读器

    Paste_Image.png 当我滚动条往上滚动的时候,屏幕右下角会出现一个向上的箭头: ? Paste_Image.png 而往下滚动的时候,又自动消失。...Paste_Image.png 我们先把顶部图片引入进来,在引入图片之前,先画两个div来盛放图片。...引入向上的箭头图标 我们准备了一张半透明的箭头图标,现在将其引入。...实现思路也很简单,就是判断当前滚动条到底是向上滚动呢,还是向下滚动?...然后设置按钮的透明度就行了,这时候,我们需要对滚动条进行监听,如果向上滚动就显示按钮,否则隐藏按钮,实现代码如下: var justScrollTop = 0; //记录上一次滚动条距离顶部的位置 /

    1.3K60
    领券