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

尝试在卡片之间添加向上/向下滑动动画(颤动)

要在卡片之间添加向上或向下滑动的动画效果,可以使用CSS动画和JavaScript来实现。以下是一个简单的示例,展示了如何实现这种颤动效果。

基础概念

  1. CSS动画:通过CSS的@keyframes规则定义动画序列,并使用animation属性将其应用到元素上。
  2. JavaScript:用于控制动画的触发和执行。

相关优势

  • 用户体验:动画效果可以增强用户的交互体验,使界面更加生动和吸引人。
  • 视觉反馈:动画可以提供即时的视觉反馈,帮助用户理解当前的操作状态。

类型

  • 向上滑动:元素从当前位置向上移动一段距离,然后返回。
  • 向下滑动:元素从当前位置向下移动一段距离,然后返回。

应用场景

  • 导航菜单:在切换不同菜单项时添加滑动效果。
  • 轮播图:在切换图片时添加滑动效果。
  • 表单验证:在提交表单前进行动画提示。

示例代码

HTML

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Card Shake Animation</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="card" id="card1">Card 1</div>
    <div class="card" id="card2">Card 2</div>
    <button onclick="shakeCard('card1')">Shake Card 1</button>
    <button onclick="shakeCard('card2')">Shake Card 2</button>
    <script src="script.js"></script>
</body>
</html>

CSS (styles.css)

代码语言:txt
复制
.card {
    width: 200px;
    height: 200px;
    background-color: #f0f0f0;
    margin: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    transition: transform 0.3s ease-in-out;
}

@keyframes shake-up {
    0%, 100% { transform: translateY(0); }
    25% { transform: translateY(-10px); }
    75% { transform: translateY(10px); }
}

@keyframes shake-down {
    0%, 100% { transform: translateY(0); }
    25% { transform: translateY(10px); }
    75% { transform: translateY(-10px); }
}

JavaScript (script.js)

代码语言:txt
复制
function shakeCard(cardId, direction = 'up') {
    const card = document.getElementById(cardId);
    let animationName;

    if (direction === 'up') {
        animationName = 'shake-up';
    } else if (direction === 'down') {
        animationName = 'shake-down';
    }

    card.style.animation = `${animationName} 0.5s`;
    setTimeout(() => {
        card.style.animation = '';
    }, 500);
}

解释

  1. HTML:定义了两个卡片和一个按钮,点击按钮会触发卡片的颤动效果。
  2. CSS:定义了卡片的样式和两个关键帧动画shake-upshake-down,分别用于向上和向下滑动。
  3. JavaScriptshakeCard函数接受卡片ID和方向参数,根据方向应用相应的动画,并在动画结束后清除动画效果。

遇到问题及解决方法

  • 动画不触发:确保CSS和JavaScript文件正确链接,并且没有拼写错误。
  • 动画效果不明显:调整@keyframes中的位移值或动画持续时间,以达到预期效果。
  • 动画重复触发问题:在动画结束后清除动画效果,避免连续触发导致的视觉混乱。

通过这种方式,可以在卡片之间添加流畅且吸引人的滑动动画效果。

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

相关·内容

提升用户体验的前端动画

下面简单的拆分一下动画细节: 页面载入,卡片向上滑入 增加 pan 的手势,卡片跟随手指滑动 随着手指滑动,增加遮罩透明度与卡片阴影变化 增加向上和向下的边界条件的处理 动画与手势的运用 这些动画利用...在监听 pandown panup 时,根据手指移动的差值控制卡片位置、背景遮罩透明度、卡片阴影的样式。...用户在向下滑动松手时的距离,如果大于某个值,让卡片滑出,关闭 poplayer,小于某个值,则回弹到原位。...这个卡片本身是无法再向上滑动的,但是如果用户想继续滑呢?...效果如下: 在向上滑动事件中加入如下代码: const panDownUp = (ev) => { if (ev.deltaY < 0) { console.log(ev.deltaY)

91320

仿【每天】首页动画

结果突然就忙了起来,“山寨”计划胎死腹中,到今天也只来得及写了一个卡片动画。代码在这里,大家有兴趣的话可以看看。 大致介绍一下思路吧,这个动画主要是分为卡片的飞上飞下和日期小圈圈中的数字滚动两部分。...再说到卡片动画,这个稍微复杂一点,主要是手势的处理,要分多种情况(第一张时,最后一张时,向上,向下,边界条件处理),由于我是用的 pan手势(拖动),而不是swip手势(快速滑动),是没有direction...(方向)属性的,所以方向只能自己判断,譬如这样: //滑动过程中取滑动位移的y值,大于0则表示向下滑动 case .Changed: let touchPointY = sender.translationInView...(self).y if touchPointY > 0 { 还有这样: //滑动停止时取停止点的y值与起始点y值比较,若停止点y大于起始点y则为向下滑动 case .Ended...哦对了,卡片的3D效果是用等比缩放+阴影做的,整个小项目我都没有用Layer层的东西,动画都是用View层的动画接口写的,所以说也不要小看了View层的动画接口,《iOS Animations by Tutorials

91520
  • Flutter 卡片选择器

    卡片的边角和阴影有些调整。卡片是用于表示某些关联数据,例如集合,地理区域,膳食,联系方式等。卡片包含有关单个对象的内容和动作。 在本文中,我们将探讨Flutter中 的**Card Selector。...选择器是完全可配置的,动画时间,卡之间的间隙,堆叠卡的尺寸因子。用户可以从左向右或从右向左滑动卡。特定卡上的信息将有所不同。 该演示视频展示了如何在颤动中创建卡选择器。...它显示了堆叠的卡片,动画,从左到右或从右到左刷卡。内容将根据卡而改变。一个小部件,用于选择向左或向右滑动的堆叠小部件。它会显示在您的设备上。...**onChanged:**此属性用于在卡更改后执行的回调。 **mainCardPadding:**此属性用于左填充列表中的第一个元素。 实现 将依赖项添加到pubspec-yaml文件。...此类将添加到主页。我们将返回ListView.builder(),**在其中添加itemCount和itemBuilder。在itemBuilder中,如果索引等于零,则返回列小部件。

    7.4K20

    【Flutter】堆叠式卡轮播

    作为移动应用程序开发人员,我们有时需要制作滑动的,动画的背景图像轮播。但是,有时候,我们需要制作一张滑动卡片传送带,其中包含一些具有各种背景颜色,图像或渐变的信息。...它显示了在您的flutter应用程序中如何使用「stacked_card_carousel」软件包来使用堆叠式卡轮播。它显示了垂直圆盘传送带滑动卡的列表,所有卡向上滑动并堆叠,称为堆叠式卡传送带。...在列小部件中,我们将为图像添加一个容器,添加标题和描述。然后在stacked_card_demo页面上调用该卡。...「initialOffset」表示卡片的初始垂直顶部偏移量,「spaceBetweenItems」表示项目之间的垂直间隔。...当用户仅以垂直轮播格式向上滑动时,所有卡都将重叠并堆叠到另一个称为堆叠卡轮播中;当用户以垂直格式向下滑动所有向上的卡时,所有卡都将回到原始位置。

    4.1K30

    Android 手表应用开发设计规范 【译】

    向上滑动提示卡片会展示建议的语音需求列表,也可以点击卡片来展开列表。   每一条推荐语音命令能够触发一类特定的内容。开发者可以将你的应用与这些语音命令配对,这样用户就可以用这些语音需求来完成任务。...卡片信息也会相应地自动进行优化,以便更好展示。用户可通过轻触屏幕、向内侧转动手腕,或按下设备实体按键来退出省电模式。 •在主屏幕向下滑动,可以显示日期及电量信息。...尝试一下: 列出用户可能需要使用该应用的所有可能场景。看看这些使用场景之间有什么共同点?比如相同的地点?每天相同的时间?相同的躯体运动?相同的生理指标?...用户也可以向下滑动第一张卡片来退出,或者从左向右横滑处每个层级最左侧的卡片来退出。 打破卡片布局 自主定制界面   某些情况下卡片的形式不能够满足需求比如拖动底图或者控制游戏方向摇杆的需求。...表盘可以指定一种卡片尺寸作为首选项,但用户也可以自行设置偏好,同时,用户也能够向下滑动来暂时隐藏卡片。   提示卡(peek card)是卡片信息流中的首张卡片,它会部分显示在主屏幕的底部。

    4.1K70

    一个独立开发者总结的App 迭代设计思路

    2.将所有功能置于打开状态:添加了可视的控制、功能可见性更好。之前很难找到隐藏在手势背后的功能,例如,单元表格首先需要点击“edit”按钮,才能进行滑动操作。...卡片式的播放页面 我修改了播放页和App其余页面的之间的结构关系,使用了新的卡片式的结构,用从底部向上滑动代替从右边推入: 当下最热门的音乐以及播客App已经完全接受了从底部上滑出播放页面的方式(包括iOS...播放页面从一个mini播放条平滑的被拉起(或者只是点击),并且可以在播放页面的任何位置向下滑动平滑的收起(或者点击”向下“的小箭头)。...以前的播放页是在一个隐藏的滚动区域中显示剧集注释,用户需要向上滑动封面才能显示注释,相对而言,不太容易被用户发现。...现在的剧集信息卡更像是Overcast 3的其它卡片:快速向上滑动打开,然后按住卡片的任何地方轻松向下关闭(或从左边缘向内)。它也支持3D Touch预览和向上滑动快速操作。

    1.4K90

    鸿蒙开发实战案例:视频卡片和列表区域的联动滚动思路

    效果图预览使用说明向上滑动列表,页面向上滚动到末尾后隐藏视频,继续向上滑动,卡片吸顶,列表开始滚动,列表滚动到底触发回弹效果。...向下滑动列表,列表先滚动到头部后,页面向下滚动,视频显示,继续向下滑动到页面头部,页面上方触发回弹效果。点击视频卡片中的播放按钮切换视频播放状态。...0 : Constants.VIDEO_HEIGHT)在状态变量isHideVideo的监听回调中,根据视频的显隐状态修改视频卡片的上边距保持Scroll内容高度不变,避免滚动混乱。...} else { // 视频隐藏,视频卡片上边距加上视频高度 this.videoMarginTop += Constants.VIDEO_HEIGHT; } }在视频卡片中上一条...() { // 选中的列表项下标大于3时,列表向上滚动,滚动到与列表显示区域内上方间隔3个列表项或列表尾部时停止。

    10210

    滑动卡组件

    在在本博客中,我们将探讨「Flutter中」 的**滑动卡。**我们还将实现一个演示程序,并学习在flutter应用程序中使用「slide_card」包创建具有滑动动画效果的滑动卡。...它显示了如何在flutter应用程序中使用「slide_card」软件包来使用滑动卡。它显示了一张纸牌的弹跳动画,该动画分成两个打开的不同纸牌。它会显示在您的设备上。...在小部件内,我们将添加列小部件并添加「InterviewCard()「类。在此类中,我们将添加」onTapped」函数;如果控制器的isCardSeparated为true,则折叠卡片,否则展开卡片。...「在SlidingCard内,我们将添加」slimeCardElevation」,bounceInOut曲线是「slideAnimationReverseCurve」,「cardsGap」是两张卡之间的空间...我们将在此卡上添加标题,图像,名称,姓氏,两个按钮和一个信息图标。当用户点击图标时,卡片被展开,再次点击然后折叠卡片。

    3K60

    JQuery笔记

    fadeIn() 与 fadeOut() 方法之间进行切换 fadeTo(speed,opacity,callback) 方法允许渐变为给定的不透明度(值介于 0 与 1 之间) 必需的 speed...滑动 slideDown() 方法用于向下滑动元素 slideUp() 方法用于向上滑动元素 slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换...stop(stopAll,goToEnd) 方法用于停止动画或效果,在它们完成之前 可选的 stopAll 参数规定是否应该清除动画队列。...默认是 false,即仅停止活动的动画, 允许任何排入队列的动画向后执行。 可选的 goToEnd 参数规定是否立即完成当前动画。...() parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素 后代 children() 方法返回被选元素的所有直接子元素 find() 方法返回被选元素的后代元素,一路向下直到最后一个后代

    6.1K20

    最新iOS设计规范二|7大应用架构

    为了在你的应用中呈现自定义的模态内容,iOS 13和更高版本支持以下两种表现风格: (一) 工作表(卡片弹窗) 工作表演示样式显示为一张卡片,并覆盖在页面上。未被覆盖的区域变暗显示,无法进行交互。...人们通过以下方式关闭卡片: 从屏幕顶部向下滑动 卡内容滚动到顶部时,可以从屏幕任意位置向下滑动 轻按一个按钮 工作表常用在无法实现复杂任务的、非沉浸式的模式和内容。...使用与APP风格统一的过渡动画,增强用户对内容转变的认知。iOS默认的过渡方式是:模式视图从屏幕底部向上滑入,被关闭时向下滑出。注意在整个APP中使用统一的模态转换样式。...为你的APP设计一个信息架构,在这个架构中,只需要最少的点击、最少的滑动和最少的页面数量便可以访问相应内容。 使用手势操作让页面切换更流畅。让用户以最小的阻力在页面之间跳转。...标签栏可让人们快速轻松地在不同类别之间切换。 在iPad上,使用拆分视图而不是标签栏。拆分视图提供与选项卡栏相同的快速导航,同时更好地利用了大屏幕。 当您具有内容类型相同的多个页面时,请使用页面控件。

    2.6K20

    自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

    child, View dependency) { return dependency instanceof AppBarLayout; } 而之所以 RadioGroup 在向上滑动的时候会隐藏...,向下滑动的时候会显示,是因为我们在 onDependentViewChanged 方法的时候 动态地根据 dependency 的 top 值改变 RadioGroup 的 translationY...= 0; } 在 onNestedPreScroll() 方法里面,我们根据我们的逻辑来决定是否显示 target , 在这里我们是向上上滑动的时候,如果我们滑动的距离超过 target 的高度...并且 当前是可见的状态下,我们执行动画,隐藏 target,当我们向下滑动的时候,并且 View 是不可见的情况下,我们执行动画 ,显示target //2.根据滑动的距离显示和隐藏footer...向上向下隐藏的 ? 布局代码 <?xml version="1.0" encoding="utf-8"?

    1.1K11

    怎样在Android上实现一个iOS多任务列表效果

    | 导语 苹果在iOS 7的时候就引入了卡片列表进行多任务切换,往上滑动就可以移除掉某个app,到了最新的iOS 13,其多任务列表也是在这种卡片列表样式的基础上进行了优化;Android阵营的华为,小米等厂商也是陆续地引入这种多任务列表样式...实现方案 实现这样一个iOS多任务列表,需要具备以下几个基本能力:        1)横向列表        2)卡片堆叠效果        3)滑动移除动画        4)支持大量数据绑定,每个卡片都有独立的容器管理...卡片叠加效果 我们要实现的卡片叠加效果大概分两步,第1步是让item的宽高缩放到一个卡片的大小,第2步是卡片之间有重叠,而且重叠部分会随着滑动过程在变化(如果是华为那种多任务列表,这一步就省略了)。...3.1. item上下滑动动画 这一步实现原理比较简单,就是在ViewPager的onTouchEvent里对move事件做上下滑动检测,满足条件时对当前的item view做上下移动即可,当up事件到达时...,再根据速度和偏移条件,判断是否真要滑动移除,要的话再触发相应的动画。

    3.7K60

    listview滑动删除

    ListView的其他item会出现向上或者向下滚动的效果,感觉效果很棒,所以在GitHub上面搜索了下,发现很多开源库都有这个效果,比如ListViewAnimations, android-swipelistview...产生向上挤压或者向下挤压的效果 大致的思路这是这四步,其中的一些细节接下来我会一一为大家解答的,接下来我们就用代码来实现这种效果吧 首先我们新建一个工程,叫Swipedismisslistview,我们需要将...null;           }           mSwiping = false;       }   /**      * 在此方法中执行item删除之后,其他的item向上或者向下滚动的动画...item的效果啦,但是还有一个效果,item删除之后,ListView的其他item向上或者向下缓缓滑动的效果,实现这个也很容易,就是动态设置item的高度,item高度逐渐变小,这样其他的item就会出现向上或者向下挤压的效果啦...,我们使用ValueAnimator将item的高度变成0,设置ValueAnimator变化的监听,我们在回调函数onAnimationUpdate()中动态的设置item的高度, 然后添加AnimatorListener

    1.8K70
    领券