主要使用 CSS 实现的动画效果,其中 CSS 需要使用 Less 编译完成。效果如下图:

Html 代码:

<!DOCTYPE html>
<html><head><title>Hypnotic Ring</title><meta charset="utf-8"><link rel="stylesheet" href="./Hyp.css"></head><body><div class="frame"></div><script src="./Hyp.js"></script></body>
</html>

Less 代码:

 .frame{position: absolute;top: 50%;left: 50%;width: 400px;height: 400px;margin-top: -200px;margin-left: -200px;border-radius: 2px;box-shadow: 1px 2px 10px 0px rgba(0, 0, 0, 0.3);overflow: hidden;/*background-color: #27ae60;*/background-color: skyblue;color: #fff;
}
.circle{position: absolute;width: 200px;height: 200px;top: 100px;left: 100px;border-radius: 50%;border: 2px dotted #fff;transform-origin: 50% 50%;/*transform: scale(2) translate(0, 0);*/
}/* less 用递归实现循环 */
.circleFunction(@index) when (@index <= 50) {.circle-@{index}{animation: circle 10s ease-in-out @index/5s infinite backwards;// z-index: @index;}// 递归调用
.circleFunction(@index+1);
}
// 从参数 1 开始调用
.circleFunction(1);/* 动画 */
@keyframes circle{0%{transform: scale(0) translate(-100px, -200px);opacity: 0.4;}100%{transform: scale(3.5) translate(0, 0);opacity: 1;}
}

在使用 less 前需要完成两个步骤:

1、全局安装 less:npm install -g less(注:没有 npm 工具包的需要先去官网下载自带 npm 的 node 。网址:https://nodejs.org/en/)

2、编译 less: lessc  要编译的文件名.less  编译后的文件名.css

如:lessc Hyp.less Hyp.css,编译成 css 文件后,导入就行了。

Js 代码:

var frame = document.querySelector('.frame');
for(var i = 0; i < 50; i++){var div = document.createElement('div');div.className = 'circle';div.classList.add('circle-' + (i + 1));frame.appendChild(div);
}

该动画效果来自一个专门练习 CSS 的网址:https://100dayscss.com/?dayIndex=62

关于 Less的介绍,和更多 css 动画可以去博主的 github :https://github.com/cao-lianhui/CSS100day

CSS实现催眠动画效相关推荐

  1. css过渡和动画的区别

    css过渡和动画的区别 css过渡和动画(animation)都能让元素动起来,区别在于: 1.css过渡需要有一个事件触发(像 :hover等),才会起作用,而animation不需要. 2.动画( ...

  2. css 加载动画如何生效,CSS 加载动画

    CSS加载动画 实现加载动画效果,需要的两个关键步骤: 1.做出环形外观 border:16px solid #f3f3f3; border-radius:50%; border-top:16px s ...

  3. html 动画div右侧消失,使用animate.css时,动画一开始不隐藏,如何解决呢?

    animate.css 的入场动画,一开始(初始态)怎么隐藏呢?(否则会闪一下.) 动画结束后要保持显示. 补充.. 使用了官网推荐的jquery 扩展代码,运动完后自动删除 class. 这是一个坑 ...

  4. 如何使用纯 CSS 创建翻牌动画

    下面的示例向您展示了如何使用纯 CSS 创建翻牌动画. 作者:坚果 公众号:"大前端之旅" 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GV ...

  5. html怎么让图标动起来,让ICON生动起来 纯CSS实现带动画的天气图标

    让ICON生动起来 纯CSS实现带动画的天气图标 1月 20, 2016 评论 (1) Sponsor CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都 ...

  6. 为网格布局图片打造的超炫 CSS 加载动画

    今天,我想与大家分享一些专门为网格布局的图像制作的很酷的 CSS 加载动画效果.您可以把这些效果用在你的作品集,博客或任何你想要的网页中.设置很简单.我们使用了下面这些工具库来实现这个效果: Norm ...

  7. [css] 手动写动画最小时间间隔是多少,为什么?

    [css] 手动写动画最小时间间隔是多少,为什么? 一般浏览器的刷新频率为每秒60次,所以最小事件间隔为 1/60*1000 约 16.7ms 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很 ...

  8. [css] 过渡和动画的区别是什么?

    [css] 过渡和动画的区别是什么? 相同:都会让你的页面元素动起来 区别: 过渡 transition1.需要事件触发,比如hover,focus,checked , js改, @media que ...

  9. [css] 使用纯CSS代码实现动画的暂停与播放

    [css] 使用纯CSS代码实现动画的暂停与播放 一个属性:animation-play-state 取值:paused(暂停)|running(播放) hover取代点击 .stop:hover~. ...

最新文章

  1. 重磅直播|GDR-Net:基于几何信息指导的单目6D物体姿态估计算法(CVPR2021作者开讲啦)...
  2. 编程前在Pycharm中自动添加时间日期作者等信息
  3. JS 简单实现公告消息自动逐条切换
  4. 移动应用开发——实验五
  5. I/O(输入/输出)---序列化与反序列化
  6. hdu1161 欧拉路
  7. PTA-基础编程题目集-函数题 ……
  8. iOS searchbar拼音和汉字搜索全国城市
  9. 高通平台printk输出log到串口
  10. python3.8安装pygame_Python3.8安装Pygame教程
  11. cdr添加节点快捷键_cdr快捷键大全_cdr教程【图文】
  12. idea社区版本生成类图
  13. mysql查询本月第一周_mysql获取当前日期所在周(原则:每年1月1号所在周为第一周,最少1天,12月31日为最后一周)...
  14. 鸡蛋不要放在一个篮子里
  15. 撤销前进快捷键_「撤销快捷键」excel表格撤销快捷键是什么_ctrl+z是吗 - seo实验室...
  16. 利用原生写js满天星星
  17. 什么是UUID 以及UUID的版本
  18. 火狐浏览器图形验证码刷新不生效的问题(图片src重新赋值不生效的问题)
  19. 【Try to Hack】Cobalt Strike(一)
  20. 衡水中学2021高考成绩查询,清华公布2021“丘班”学生名单,多所重点高中入选,唯独没有衡中...

热门文章

  1. 免费的PPT模板下载地址
  2. 《Linux命令行与Shell脚本编程大全第2版》读书笔记
  3. Methodpark ASPICE培训
  4. 嗯啊啊 七夕啊,程序员也要浪漫
  5. 一年半前端跳槽面试经验(头条、微信、shopee)
  6. Java - 设计模式学习总结
  7. 优优加速cdn带宽_CDN加速网站SEO优化,这就是CDN
  8. 一语道破天机 三国中十句最精辟的话
  9. recommend.php sql注入漏洞,Espcms通杀SQL注入漏洞分析(附EXP)
  10. 学习笔记:SemanticStyleGAN 面向可控图像合成和编辑的组合生成先验学习