码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CSS3技巧37:JS+CSS3 制作旋转图片墙


    开学了就好忙啊,Three.js 学习的进度很慢。。。

    备课备课才是王道。

    更一篇 JS + CSS3 的内容,做一个图片墙。

     其核心要点是把图片摆成这个样子:

    看上去这个布局很复杂,其实很简单。其思路是:

    1. 所有图片放在一个 div.box 里,并且绝对定位,方便调整位置。
    2. 每个图片旋转一个度数。这里有5张图,每个图旋转的度数就是 index*72。为啥 72?因为 360 / 5 = 72 。
    3. 然后,每张图移动 z 轴 -500px。我这里是移动 -500px,具体值大家可以自行设定。

    这其实好比一群人,专向对应度数后,往前或者往后移动相同的距离,就可以刚好围城一个圈。

    理解这个思路后,剩下的好办了。

    HTML:

    1. <div class="box" id="box">
    2. <img src="../images/pic1.jpg" alt="">
    3. <img src="../images/pic2.jpg" alt="">
    4. <img src="../images/pic3.jpg" alt="">
    5. <img src="../images/pic4.jpg" alt="">
    6. <img src="../images/pic5.jpg" alt="">
    7. div>

    CSS:

    1. *{
    2. margin: 0;
    3. padding: 0;
    4. }
    5. .box{
    6. width: 600px;
    7. height: 399px;
    8. }
    9. body{
    10. perspective: 2500px; /* 透视 */
    11. height: 100vh;
    12. overflow: hidden;
    13. }
    14. .box{
    15. transform-style: preserve-3d; /* 3D 空间 */
    16. margin-left: auto;
    17. margin-right:auto;
    18. margin-top: 400px;
    19. position: relative;
    20. animation: ani 20s linear infinite; /* 自动旋转 */
    21. }
    22. .box img{
    23. position: absolute;
    24. backface-visibility: hidden;
    25. opacity: 0.5;
    26. transition:all 0.2s;
    27. }
    28. .box img:hover{ /* 加上交互 */
    29. opacity: 1;
    30. }
    31. @keyframes ani {
    32. 0%{
    33. transform: rotateY(0);
    34. }
    35. 100%{
    36. transform: rotateY(360deg);
    37. }
    38. }

    JS:

    1. let box = document.getElementById("box");
    2. let imgs = box.querySelectorAll("img");
    3. // 遍历每张图片,设置每个图片的旋转 和 z轴位移。注意顺序!
    4. imgs.forEach(function(value,index){
    5. value.style.cssText = `
    6. transform:rotateY( ${72*index}deg ) translateZ(-500px);
    7. `;
    8. });

    完工~是不是超级简单~?

    啊~有用的知识又增加了。

  • 相关阅读:
    计算机操作系统第四版第八章磁盘存储器的管理—课后习题答案
    jquery---动画
    LeetCode01
    系统测试UI测试总结与问题(面试)
    Bankless:Maker DAO的生存危机
    2022世界杯结果预测,简单AI模型最有效?附代码!
    成都瀚网科技有限公司:抖音怎么绑定抖音小店才好?
    LeetCode每日一题——1619. 删除某些元素后的数组均值
    云原生之旅 - 3)Terraform - Create and Maintain Infrastructure as Code
    Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
  • 原文地址:https://blog.csdn.net/weixin_42703239/article/details/136333565
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号