用css3实现走马灯的效果

这篇文章主要介绍了纯css3实现走马灯效果,主要用到的css3技术有:keyframes、perspective、perspective-origin、transform(translate、rotate)、animation、transform-origin,有需要的小伙伴参考下

纯css3实现了一个正六边形的走马灯效果,记录一下css3动画的学习情况,效果如下:

用css3实现走马灯的效果

主要用到的css3技术有:keyframes、perspective、perspective-origin、transform(translate、rotate)、animation、transform-origin,另外加一点平面几何知识(计算间距、角度啥的),详细过程如下:

首先设计一下要显示的布局(俯视图),途中垂直的线为辅助线,计算偏移量时需要用的:

立即学习“前端免费学习笔记(深入)”;

用css3实现走马灯的效果

红色框框为旋转面(即走马灯效果的结构最终以该面的中点为旋转轴旋转的),六个面也都是基于这个面做的布局,先看红框下面的三个面,左侧的面原本在蓝色线处,通过旋转到达绿色线处,右边同理,中间的面只需要在Z轴方向移动二分之根号三个边长的距离即可,所有的面均通过偏移和旋转的方式达到上图的结构,需要注意的是要保证有图案的面(本例中使用的是文字,思路一致)要向外,比如上面中间的面,在Z轴向外偏移二分之根号三个边长的距离之后还要以中点为圆心旋转180°,所有的面同理易得。在此过程中需要牢记的一点技术是:三维坐标系中,从坐标原点出发,向着坐标轴的正方向看去,逆时针旋转时rotate(X/Y/Z)的值为正数,顺时针旋转时,rotate(X/Y/Z)值为负数。

设置结构:一个3D场景、一个走马灯的旋转面和走马灯的六个面:

1

2

3

4

5

6

设置3D场景:

.wapper{    -webkit-perspective:800;    /*观察距离800*/    -webkit-perspective-origin:50% -100%;    /*从正前方上方斜向下观察*/    width:400px;    height:300px;    margin:100px auto;}

设置旋转面:

@-webkit-keyframes rotation{      /*动画过程*/    0%{-webkit-transform:rotateY(0deg);}        100%{-webkit-transform:rotateY(-360deg);}}.rotate{    -webkit-transform-style:preserve-3d;     /*3D变换*/    -webkit-animation: rotation 6s infinite;  /*动画名称、时间、循环动画*/    -webkit-animation-timing-function: linear;  /*匀速动画*/    -webkit-transform-origin:center;      /*沿中间旋转*/    width:100%;    height:100%;    position:relative;   /*相对定位布局*/}

对六个面除了位置之外的通用样式做设置:

.item{   -webkit-transform-origin:center;  /*均沿中心旋转*/   width:198px;   height:300px;   position:absolute;   /*绝对定位在旋转面上*/   background:none;   text-align:center;   line-height:300px;}

分别设置六个面的位置,以一号为例(上面结构图中红框下面左边绿色线标注的面),所有的数值均需要经过几何计算得来:

.itemOne{    left:-50px;    -webkit-transform:translateZ(87px) rotateY(-60deg);  /*z轴向外移动87px,沿Y轴方向旋转-60°*/    background:#f00;}

在鼠标悬浮在该结构上时动画停止:

.rotate:hover{    -webkit-animation-play-state:paused;  /*设置动画状态*/}

本例子只有在webkit内核的浏览器中可以查看效果,如需兼容其他现代浏览器,需添加 -moz- 等前缀,完整代码如下:

        Animation Test        *{margin:0;padding:0;}    @-webkit-keyframes rotation{            0%{-webkit-transform:rotateY(0deg);}            100%{-webkit-transform:rotateY(-360deg);}    }    .wapper{        -webkit-perspective:800;        -webkit-perspective-origin:50% -100%;        width:400px;        height:300px;        margin:100px auto;    }    .rotate{        -webkit-transform-style:preserve-3d;        -webkit-animation: rotation 6s infinite;        -webkit-animation-timing-function: linear;        -webkit-transform-origin:center;        width:100%;        height:100%;        position:relative;    }    .item{        -webkit-transform-origin:center;        width:198px;        height:300px;        position:absolute;        background:none;        text-align:center;        line-height:300px;    }    .itemOne{        left:-50px;        -webkit-transform:translateZ(87px) rotateY(-60deg);        background:#f00;    }    .itemTwo{        left:100px;        -webkit-transform:translateZ(173px);        background:#ff0;    }    .itemThree{        left:250px;        -webkit-transform:translateZ(87px) rotateY(60deg);        background:#0ff;            }    .itemFour{        left:250px;        -webkit-transform:translateZ(-87px) rotateY(120deg);            background:#0f0;    }    .itemFive{        left:100px;        -webkit-transform:translateZ(-173px) rotateY(180deg);        background:#0ff;    }    .itemSix{        left:-50px;        -webkit-transform:translateZ(-87px) rotateY(-120deg);        background:#00f;    }    .rotate:hover{        -webkit-animation-play-state:paused;    }        

1

2

3

4

5

6

是不是很炫酷的效果呢,小伙伴们,CSS3真是个好东西,你值得拥有。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何使用CSS3制作炫酷带方向感应的鼠标滑过图片3D动画

以上就是用css3实现走马灯的效果的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:31:04
下一篇 2025年12月24日 01:31:22

相关推荐

  • 利用Css3和Js制作时钟的代码

    这篇文章主要介绍了关于利用Css3和Js制作时钟的代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Css3+Js实现漂亮时钟,浏览器支持IE9/GoogleChrome/FireFox/Safari等等,感兴趣的朋友可以下载测试,希望对你学习css3有所帮助 Css3+Js 漂亮…

    2025年12月24日
    000
  • CSS3中线性颜色渐变的实现

    这篇文章主要介绍了css3中线性颜色渐变的一些实现方法,包括分safari和chrome的webkit内核与firefox的gecko内核两种情况,需要的朋友可以参考下 为了显示一个渐变而专门制作一个图片的做法是不灵活的,而且很快会成为一种不好的做法。但是遗憾的是,截至写这篇文章,可能还必须这样做,…

    2025年12月24日
    000
  • 利用CSS3实现的文字定时向上滚动

    大家以前基本是用javascript来实现文字定时向上滚动的效果,那么今天给大家分享下利用css3来实现这一效果,有需要的可以参考学习。 话不多说,直接上实例代码 moveUp ul,li{ margin:0; padding:0; } li{ list-style:none; } .contain…

    好文分享 2025年12月24日
    000
  • 利用css3仿造window7的开始菜单

    相当逼真,css3果然强悍。要留意的点依旧是哪几项,难点在于细节的微调,尤其是渐变背景的制作,css3中非常灵活,下次有机会,发篇css3渐变背景的详细教程。   相当逼真,css3果然强悍。友情提示:请勿在IE下浏览。来看下原作者的设计草图: 简明创建过程  第一步 :创建如下菜单结构 @@##@…

    2025年12月24日
    000
  • IE下模拟css3中box-shadow的效果

    这篇文章主要介绍了关于ie下模拟css3中box-shadow的效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在ie下模拟css3中的box-shadow(阴影)可以使用ie的Shadow(阴影)滤镜来实现,需要注意的是该滤镜必须配合background属性一起使用,否则该滤镜…

    好文分享 2025年12月24日
    000
  • 关于CSS3网格的的解析

    在这篇文章中,我们将来看一些css3新属性,从而用html和css处理网格的时候更容易。但首先让我们讨论一点html和css网格的历史,了解清楚为什么以前很困难 一、网格简史 曾几何时,我们的布局是一团糟。表格和框架是用于创建多列布局的主要工具。虽然他们能完成工作(但其实非常糟糕)。 把目光投向今天…

    2025年12月24日
    000
  • 如何使用css3实现input输入框颜色渐变发光的效果

    这篇文章主要介绍了关于如何使用css3实现input输入框颜色渐变发光的效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css3都推出好久了,虽然各大主流浏览器对其兼容性还不是很好,特别是IE…但通过添加-moz- -webkit-这样的前缀可以在chrome和Firefox下获…

    好文分享 2025年12月24日
    000
  • 如何实现用css3显示隐藏一个div特效

    这篇文章主要介绍了关于如何实现用css3显示隐藏一个div特效,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 显示隐藏一个p特效的方法有很多,下为大家介绍下使用纯css3是如何实现的,感兴趣的朋友可以参考下 #showp { background-color:red; width:3…

    好文分享 2025年12月24日
    000
  • 如何用css3实现当鼠标移进去时当前亮其他变灰的效果

    这篇文章主要介绍了用css3实现当鼠标移进去时当前亮其他变灰效果,需要的朋友可以参考下 用css3实现鼠标移进去当前亮其他变灰 *{margin: 0;padding: 0;font-size:12px;} .wrapper{border: 1px #708090 solid;width: 900p…

    好文分享 2025年12月24日
    000
  • 如何使用CSS3中的calc()属性来表达尺寸

    这篇文章主要介绍了关于如何使用css3中的calc()属性来表达尺寸,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 calc()的用法十分巧妙,可以像我们在学校做数学应用题那样列式子来计算长度宽度等值,从而一定程度上实现自适应布局,下面我们就来介绍如何使用CSS3中的calc()属性…

    好文分享 2025年12月24日
    000
  • 如何使用HTML和CSS3绘制基本卡通图案

    这篇文章主要介绍了使用css3绘制基本卡通图案的示例分享,不过必须承认,这样做的代码量并不是很少…well,需要的朋友可以参考下 纯HTML+CSS实现阿童木头像先上最终效果图: 在里面主要用的了CSS中的几个属性:position—定位;border-radius—圆角;box-sha…

    2025年12月24日 好文分享
    000
  • 关于CSS3中常见transformation图形变化的用法

    这篇文章主要介绍了css3的常见transformation图形变化用法小结,共整理了旋转、缩放、平移、倾斜以及矩阵的使用方法,需要的朋友可以参考下 1.rotate旋转旋转图片,单位deg,为“度”的意思 -moz-transform: rotate(20deg); -webkit-transfo…

    2025年12月24日 好文分享
    000
  • 使用CSS3实现扇形动画菜单

    这篇文章主要给大家介绍了利用纯css3实现扇形动画菜单(简化版)实例源码,文中给出了完整的示例源码,实现后的效果非常动感漂亮时尚,需要的朋友可以参考借鉴,下面来一起看看吧。 之前的一篇文章介绍这种效果的实现,但实现代码太过繁琐,所以在这里分享以下简化版的实现方法,有需要的可以参考学习。 原文章请点击…

    2025年12月24日
    000
  • 关于CSS3中currentColor关键字的使用方法

    这篇文章主要介绍了CSS3中currentColor关键字的妙用,合理地使用currentColor往往会让CSS代码更加简洁,同时也能与SVG图标很好地结合使用,需要的朋友可以参考下 初识 它是何物?具有怎样的功效?它从哪里来?带着这些疑问我们继续。 下面是来自MDN的解释: currentCol…

    2025年12月24日 好文分享
    000
  • 关于CSS3定位和浮动的解析

    这篇文章主要为大家详细介绍了css3定位和浮动的概念,以及实例代码讲解css3定位和浮动的使用方法,感兴趣的小伙伴们可以参考一下 本文为大家分享CSS3定位和浮动的基础概念,与使用方法,供大家参考,具体内容如下 一、定位 1、 css定位: 改变元素在页面上的位置 立即学习“前端免费学习笔记(深入)…

    好文分享 2025年12月24日
    000
  • 如何使用CSS3中appearance属性改变元素的外观

    这篇文章主要介绍了关于如何使用css3中appearance属性改变元素的外观,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 大家都知道每个浏览器对HTML元素渲染都不一样,比如说button,在chrome和ff中,渲染出来的效果都是不尽相同的。这样一来就有了今天这个思路,利用浏览…

    2025年12月24日
    000
  • 关于CSS3的@font face规则的解析

    这篇文章主要介绍了真正了解css3背景下的@font face规则,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 很多人只要一提到 @font face 规则,心中就会不由自主“哦~~”的一声:“这个我知道,可以用来生成自定义字符小图标!”话是没错,问题在于很多人就以为生成字符小图标就是 @fo…

    2025年12月24日 好文分享
    000
  • 如何使用CSS3制作彩色进度条样式

    这篇文章主要介绍了关于如何使用css3制作彩色进度条样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 用CSS3的border-radius、box-shadow、transition、-moz-linear-gradient、-webkit-gradient等样式就可以完成一个时…

    2025年12月24日
    000
  • CSS3的animation实现简易幻灯片轮播特效

    这篇文章主要为大家详细介绍了css3 animation实现简易幻灯片轮播特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 CSS3有个别特性,可以触发硬件GPU来加速渲染,而不是调用默认浏览器引擎渲染; 但是很多属性,默认都是不开启硬件加速的;需要触发条件,一个最简单的触发条件就是使用3D属…

    2025年12月24日
    000
  • 如何使用CSS3实现千变万化的文字阴影text-shadow的效果

    这篇文章主要介绍了css3实现千变万化的文字阴影text-shadow效果设计的相关资料,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了CSS3千变万化的文本阴影text-shadow效果实例,供大家参考,具体内容如下 语法: none||none|[,]*或none||[,]* 取值简单说明:…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信