最近在刷视频的时候看到有意思的案例 跟着码了一下  持续学习 进步

来源:后盾人 向老师  B站 抖音 可以搜索

波点上升:

  • 使用document.createElement("div") 在页面上创建100个div 并且给每个div 加上一个随机数  --duration(自定义样式名)用来生成动画的执行实现 实现参差感 内部还可写上文字
  •       for (let i = 0; i < 100; i++) {const el = document.createElement("div");el.style.cssText = `--duration:` + (Math.random() * 50 + 10);if (i % 2 === 0) {el.innerText = "虎";} else {el.innerText = "兔";}document.body.appendChild(el);}
  • div 设置相应的样式 有背景颜色的圆、外阴影、...  使用选择器 div:nth-of-type(even) 为偶数的div改变颜色样式  添加动画 大小从0-1 位置从底部到顶部  然后重新设置 动画的持续时间animation-duration: calc(300s / var(--duration));
  • <style>body {background-color: #161616;height: 100vh;width: 100vw;margin: 0;padding: 0;overflow: hidden;}div {width: 80px;height: 80px;position: relative;border-radius: 40px;margin: 0 5px;display: inline-block;background-color: #4da6e5;box-shadow: 0 0 50px 5px #79bcec, 0 0 150px 5px #a6d2f2;animation: hd 5s linear infinite;animation-duration: calc(300s / var(--duration));color: white;text-align: center;line-height: 80px;font-size: 24px;}/* 让偶数的div 有不一样的颜色 和阴影效果 */div:nth-of-type(even) {background-color: #df208f;box-shadow: 0 0 50px 5px #df208c, 0 0 150px 5px #df208f;}/* 定义动画 */@keyframes hd {from {transform: translateY(100vh) scale(0);}to {transform: translateY(-100vh) scale(1);}}
    </style>

效果预览:

演示地址:15.散点波光 (wsg3096.com)http://www.wsg3096.com/chestnut/glistening.html

动态的tabbar

  •  和一般的tabber 区别就是 加入了 过渡效果 一般的tabbar切换 是 排他思想 去掉兄弟元素的 .active 样式 给自己增加选中样式

  •       const secs = document.querySelectorAll("section");const qiu = document.querySelector(".qiu");for (let i = 0; i < secs.length; i++) {// for循环给每个 选项都添加点击事件secs[i].addEventListener("click", () => {// 内部再循环 排除所有的 activefor (let i = 0; i < secs.length; i++) {secs[i].classList.remove("active");}
    // 然后 给自己加上secs[i].classList.add("active");
    // 移动底部小球的偏移量  小球有过渡效果qiu.style.left = `${i * 138 + 36}px`;});}

HTML结构

    <main><section class="active"><div class="icons"></div><span>美工</span></section><section><div class="icons"></div><span>前端</span></section><section><div class="icons"></div><span>后端</span></section><section><div class="icons"></div><span>测试</span></section><section><div class="icons"></div><span>运维</span></section><!-- 同级的div 就代表小球 --><div class="qiu"></div></main>

CSS样式  设置有过度 加上active 时 改变内部的 transform: translateY 实现动画效果

<style>body {background-color: #161616;height: 100vh;width: 100vw;margin: 0;padding: 0;overflow: hidden;}main {background-color: #ffffff;width: 640px;height: 80px;padding: 0 36px;border-radius: 16px;margin: 120px auto;text-align: center;display: flex;justify-content: space-between;padding-top: 20px;position: relative;}/* 图标和文字 运动时间 */.icons {width: 50px;height: 50px;background-color: blanchedalmond;transition: all 0.3s linear;pointer-events: none;border-radius: 50%;margin: 0 auto;}span {font-size: 16px;transition: all 0.3s linear;opacity: 0;display: block;transform: translateY(20px);}section {cursor: pointer;position: relative;z-index: 8;width: 88px;}.active .icons {background-color: black;transform: translateY(-80%);}.active span {opacity: 1;transform: translateY(-10px);}.qiu {width: 72px;height: 72px;background-color: #f35;position: absolute;border-radius: 50%;top: -50%;border: 8px solid #161616;transition: 0.31s linear;box-shadow: inset 0 0 6px 0 rgba(0, 0, 0, 0.4);left: 36px;}
</style>

细节:背景球球前后加上 伪类 定位 使得与tabs 融合更加圆润

.qiu::after {

content: "";

width: 30px;

height: 10px;

position: absolute;

top: 42px;

right: -7px;

transform: translateX(100%);

background: #fff;

border-radius: 15px;

box-shadow: -5px -5px 0 0 #161616;

}

.qiu::before {

content: "";

width: 30px;

height: 10px;

position: absolute;

top: 42px;

left: -7px;

transform: translateX(-100%);

background: #fff;

border-radius: 15px;

box-shadow: 5px -5px 0 0 #161616;

}

效果图 icon 用的是纯色块 有精力可以替换成 SVG 或者 iconfont

演示地址:16.带点花的tabbar (wsg3096.com)http://www.wsg3096.com/chestnut/tabbar.html

CSS动画+简单JS 实现波点上升 和 动态tabbar案例相关推荐

  1. css动画和js动画_CSS与JS动画:哪个更快?

    css动画和js动画 How is it possible that JavaScript-based animation has secretly always been as fast - or ...

  2. 【JavaScript、CSS】css动画、js动画

    动画 js动画 css动画 Web动画的本质是元素状态改变造成的样式变更,CSS动画和JS动画的区别并不是由语言来决定的,而是由两者的特点和适用场景来判断的. CSS动画简洁高效,提升交互体验而编写的 ...

  3. js写css字体,js如何写出css动画 ?js写css动画的方法(代码)

    本篇文章给大家带来的内容是关于js如何写出css动画 ?js写css动画的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用setTimeout()或者setInter ...

  4. css动画 和 js动画_CSS大师的动画建议

    css动画 和 js动画 Just over a week ago we were lucky enough to have Tiffany Brown join us on the SitePoin ...

  5. 【译】CSS动画 vs JS动画

    原文地址 目前有两个主流的方法在web上创建动画:使用CSS或JS.到底选择哪种方法来实现动画,完全取决于你的项目以及你想要达到的效果. tips: 对于简单的只出现一次的过渡效果,可以采用CSS动画 ...

  6. css动画与js动画的区别

    CSS动画 优点: (1)浏览器可以对动画进行优化. 1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout,s ...

  7. css动画和js动画比较!

    原文地址:http://css-tricks.com/myth-busting-css-animations-vs-javascript/ 译文地址:https://github.com/classi ...

  8. 分别实现:css动画、js动画、vue动画

    一.使用css3实现动画 css3动画的核心是定义transition或 keyframes 两种. keyframes:设置多个关键帧来控控制不懂时间下动画对象属性的值,(可循环的) transit ...

  9. JS动画和CSS动画之间的区别和特点?

    一.写在前面 之前我们讲了requestAnimationFrame用来解决js的相关动画出现卡顿的问题.现在我们来详细了解一下CSS和JS动画之间的区别和特点. 二.CSS动画 优点: 1.浏览器可 ...

最新文章

  1. 刘知远、赵鑫、施柏鑫:AI青年科研人员成长之路
  2. CIIS 2020专题论坛丨突破自然语言理解,找到人工智能出口
  3. Oracle存储过程中异常Exception的捕捉和处理
  4. python就业方向及工资-Python的就业方向有哪些?
  5. 题解 UVA1555 【Garland】(二分)
  6. 第一行代码学习笔记第七章——探究内容提供器
  7. 深度学习入门之线性模型和梯度下降
  8. 支付宝支付-常用支付API详解(查询、退款、提现等)-转
  9. JS中的异步任务有哪些
  10. python字符串是否包含某元素_Python实现判断一个字符串是否包含子串的方法总结...
  11. 怎么创建python django项目_创建Django项目图文实例详解
  12. wps文字表格制作拼音田字格模板_宝宝拼音汉字田字格doc模板下载
  13. Java从入门到精通章节练习题——第三章
  14. 电脑桌面提醒事项软件哪些可以定时弹出窗口提醒
  15. Adobe Illustrator自制苏大计科院院徽
  16. “艺工交叉”--达芬奇的人生密码
  17. Resharper使用入门
  18. Java可以应用到哪些领域?
  19. 软件构造 Lab4 Lab5 实验日记
  20. NC WebService开发参考

热门文章

  1. CGCTF maze
  2. 『津津乐道播客』#131. 日本异闻录·我曾经去了一个假的日本
  3. Linux中结束kettle挂起进程,linux停使用crond定时执行kettle的job
  4. 全面分析反应釜的防腐问题和清洗
  5. 微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸
  6. 推特 我们目前不能注册此邮箱地址_试玩手游版LOL,媲美端游的质量,这份注册攻略须收藏...
  7. ie11弹出层后,滚动条消失,页面固定不能动
  8. 类似创客贴 开源_创客社区如何与开源保持一致
  9. Echarts雷达图自定义样式
  10. 。求推荐一个usb集线器的购买网址