搜索
您的当前位置:首页CSS如何实现卡片3D翻转效果

CSS如何实现卡片3D翻转效果

时间:2023-11-28 来源:乐玩宠
本文主要和大家介绍了CSS实现卡片3D翻转效果的示例代码,希望能帮助到大家。

效果:

代码:

html:

<p class="main"> <p class="box b1"></p> <p class="box b2"></p></p>

css:

.main { position: absolute; top: 50%; left: 50%; width: 300px; height: 300px; transform: translate(-50%,-50%); -webkit-perspective: 1500; -moz-perspective: 1500;}.box { position: absolute; top: 0; left: 0; width: 300px; height: 300px; transition: all 1s; backface-visibility: hidden; border-radius: 10px; cursor: pointer;}.b1{ background:skyblue;}.b2 { background:tomato; transform: rotateY(-180deg);}

javascript:

var b1 = document.querySelector(".b1");var b2 = document.querySelector(".b2");b1.onclick = function() { b1.style.transform = "rotateY(180deg)"; b2.style.transform = "rotateY(0deg)";}b2.onclick = function() { b2.style.transform = "rotateY(-180deg)"; b1.style.transform = "rotateY(0deg)";}

-webkit-perspective:透视效果

backface-visibility:隐藏被旋转的 p 元素的背面

小编还为您整理了以下内容,可能对您也有帮助:

怎样用CSS实现图片翻转

以实现一张图片双面翻转为例:

方法一:

1、实现CSS样式的方法代码如下。

2、实现前端布局的方法代码如下。

3、实现图片翻转CSS样式代码如下。

方法二:

1、实现正反面效果的HTML的方法代码如下。

2、实现CSS样式的方法代码。

3、然后实现竖向翻转的方法代码如下。

CSS3中如何实现图片翻转

今天将和大家分享如何利用CSS3中的知识来制作一个图片翻转的功能,CSS3中图片翻转效果主要通过设置transition过渡动画以及transform旋转动画来共同实现

【推荐课程:CSS3教程】

案例分析

图片翻转效果的思路:先利用position定位将两个图片重叠到一起同时还需要将背面的图片隐藏,这样给人的效果是页面上仅有一张图片,但是当鼠标触发时,后面的图片旋转显示出现在前面,而原先在前面的图片则旋转隐藏到后面。

(1)position:定位

relative:相对定位

absolute:绝对定位

(2) backface-visibility:隐藏被旋转的 div 元素的背面

visible :背面是可见的

hidden:背面是不可见的

(3)z-index 属性

设置元素的堆叠顺序,设置的值越大层级越高,在页面中越前

(4)transition-property:设置需要过渡效果的CSS属性名

none :没有属性会获得过渡效果

all:所有属性都将会获得过渡效果

property:定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。

(5)transition-ration:完成过渡效果需要多少秒或毫秒

(6)transition-timing-function:完成过渡效果的速度曲线

linear:匀速

ease:先慢后快然后再慢 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。

cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值,可能的值是 0 至 1 之间的数值。

(7)transition-delay:过渡效果是否延迟,从何时开始

(8)transform 属性:元素应用 2D 或 3D 转换

例:rotateX(180deg):沿X轴旋转180度

注意浏览器兼容问题

-moz- :Firefox

-webkit-:Safari 和 Chrome

-o- :Opera

完整代码:

本案例在chrome浏览器中运行

效果图

动态效果

总结:

css3 如何让一个图片不断翻转

/* css3 让一个图片不断翻转示例代码 */

#gavinPlay{

/* background:color url x y repeat 图片来自百度图片,按需要更换 */

background:red url("https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=2406548182,3889596045&fm=80") center no-repeat;

/* background-size:auto auto || cover 代表以宽或高填满元素背景 */

background-size:cover;

/* 随便设置宽高值,测试 */

width:200px;

height:200px;

/* 设置默认样式,开启3d硬件加速 */

-webkit-transform:translate3d(0,0,0);

-moz-transform:translate3d(0,0,0);

transform:translate3d(0,0,0);

/* 设置动画,animation:动画名称 动画播放时长单位秒或微秒 动画播放的速度曲线linear为匀速 动画播放次数infinite为循环播放; */

-webkit-animation:play 3s linear infinite;

-moz-animation:play 3s linear infinite;

animation:play 3s linear infinite;

}

@-webkit-keyframes play{

0%  {

/*

水平翻转

*/

-webkit-transform:rotateY(0deg);

/*

垂直翻转

-webkit-transform:rotateX(0deg);

顺时针旋转

-webkit-transform:rotate(0deg);

逆时针旋转

-webkit-transform:rotate(0deg);

*/

}

100% {

/* 水平翻转 */

-webkit-transform:rotateY(360deg);

/* 垂直翻转

-webkit-transform:rotateX(360deg);

顺时针旋转

-webkit-transform:rotate(360deg);

逆时针旋转

-webkit-transform:rotate(-360deg);

*/

}

}

@-moz-keyframes play{

0%  {

-moz-transform:rotateY(0deg);

/*

-moz-transform:rotateX(0deg);

-moz-transform:rotate(0deg);

-moz-transform:rotate(0deg);

*/

}

100% {

-moz-transform:rotateY(360deg);

/*

-moz-transform:rotateX(360deg);

-moz-transform:rotate(360deg);

-moz-transform:rotate(-360deg);

*/

}

}

@keyframes play{

0%  {

transform:rotateY(0deg);

/*

transform:rotateX(0deg);

transform:rotate(0deg);

transform:rotate(0deg);

*/

}

100% {

transform:rotateY(360deg);

/*

transform:rotateX(360deg);

transform:rotate(360deg);

transform:rotate(-360deg);

*/

}

}

<!-- html 布局代码 -->

<div id="gavinPlay"></div>

如何使用纯CSS3实现一个3D商品标签

[html] view plain copy
<div class="fancy">
<h2>
<span class="ribbon-center">50% OFF!</span>
</h2>
<p>
<img src="/uploads/160501/glass.jpg">
Check out these killer deals from Oakley!
Get an additional 50% off sale items for a limited time.
</p>
</div>
接下来给卡片和商品描述添加样式,来限定高宽和间距:
[css] view plain copy
.fancy {
width: 340px;
margin: 20px auto 20px auto;
background: #E7E7E7;
padding: 15px;
}
.fancy p {
padding-top: 10px;
margin: 5px 0;
line-height: 1.5;
}
.fancy img {
width: 340px
}
blob.png
现在页面看起来像上面这样,接下来就是要给标签(h2元素)添加样式,一个是背景色,一个是左边的3D折纸效果。
折边效果其实就是给h2的左下角拼接一个三角形的元素,我们使用伪元素来实现,代码如下:
[css] view plain copy
.fancy h2 {
font-style: italyc;
line-height: 1;
padding: 5px 0;
color: #FFF;
margin: 0;
width: 205px;
left: -35px;// 相对卡片向左偏移35px
background-color: #e54439;
position: relative;
z-index: 6;
}
.fancy h2:after {// 定义一个斜三角形
content: "";
width: 0;
height: 0;
position: absolute;
font-size: 0;
line-height: 0;
z-index: 5;
border-top: 0 solid transparent;
border-bottom: 15px solid transparent;
bottom: -15px;
}
.fancy h2:after {
border-right: 20px solid rgb(230, 107, 97);
left: 0;
}
.fancy h2 .ribbon-center {
display: block;
padding: 10px 0;
background-color: #e54439;
}

如何使用纯CSS3实现一个3D商品标签

[html] view plain copy
<div class="fancy">
<h2>
<span class="ribbon-center">50% OFF!</span>
</h2>
<p>
<img src="/uploads/160501/glass.jpg">
Check out these killer deals from Oakley!
Get an additional 50% off sale items for a limited time.
</p>
</div>
接下来给卡片和商品描述添加样式,来限定高宽和间距:
[css] view plain copy
.fancy {
width: 340px;
margin: 20px auto 20px auto;
background: #E7E7E7;
padding: 15px;
}
.fancy p {
padding-top: 10px;
margin: 5px 0;
line-height: 1.5;
}
.fancy img {
width: 340px
}
blob.png
现在页面看起来像上面这样,接下来就是要给标签(h2元素)添加样式,一个是背景色,一个是左边的3D折纸效果。
折边效果其实就是给h2的左下角拼接一个三角形的元素,我们使用伪元素来实现,代码如下:
[css] view plain copy
.fancy h2 {
font-style: italyc;
line-height: 1;
padding: 5px 0;
color: #FFF;
margin: 0;
width: 205px;
left: -35px;// 相对卡片向左偏移35px
background-color: #e54439;
position: relative;
z-index: 6;
}
.fancy h2:after {// 定义一个斜三角形
content: "";
width: 0;
height: 0;
position: absolute;
font-size: 0;
line-height: 0;
z-index: 5;
border-top: 0 solid transparent;
border-bottom: 15px solid transparent;
bottom: -15px;
}
.fancy h2:after {
border-right: 20px solid rgb(230, 107, 97);
left: 0;
}
.fancy h2 .ribbon-center {
display: block;
padding: 10px 0;
background-color: #e54439;
}

html5如何让图片3d旋转

1、首先打开html文件编辑器,这里使用vscode新建一个html文档,文档中写入基本的html结构,然后插入img标签并插入一张图片,给img一个class属性:

2、然后在上方的head标签中的style标签设置样式,这里设置图片的宽度和高度并设置相对定位,然后设置图片的鼠标悬浮样式,其中设置动画的形式为3d以及设置图片3d旋转偏移的角度,添加一个动画,设置好延时即可:

3、最后打开浏览器,就会看到一个图片:

4、当鼠标移动上去,图片就会自动3d旋转了:

css动画效果的各种实现方法与区分,使用transition实现一个简单的翻牌效果

感觉自己总是混淆css各种动画效果,所以再这里总结一下

1. transition ,所在元素块样式变动时启动,可用于样式变动时 产生过渡动画效果

| transition-property | 规定设置过渡效果的 CSS 属性的名称。 |

| transition-ration | 规定完成过渡效果需要多少秒或毫秒。 |

| transition-timing-function | 规定速度效果的速度曲线。 |

| transition-delay | 定义过渡效果何时开始。 |

2. tranform :用于平移,旋转,缩放,透视

语法

animation-name 规定需要绑定到选择器的 keyframe 名称。

animation-ration 规定完成动画所花费的时间,以秒或毫秒计。

animation-timing-function 规定动画的速度曲线。

animation-delay 规定在动画开始之前的延迟。

animation-iteration-count 规定动画应该播放的次数。

animation-direction 规定是否应该轮流反向播放动画。

animationname 必需。定义动画的名称。

keyframes-selector 必需。动画时长的百分比。值:0-100%,from(与 0% 相同),to(与 100% 相同)

css-styles 必需。一个或多个合法的 CSS 样式属性。

4.@media :可以根据屏幕大小响应式改变样式

接下来利用transition和transfrom实现一个简单的翻牌效果,先看效果

乐玩宠还为您提供以下相关内容希望对您有帮助:

如何使用纯CSS3实现一个3D商品标签

现在页面看起来像上面这样,接下来就是要给标签(h2元素)添加样式,一个是背景色,一个是左边的3D折纸效果。折边效果其实就是给h2的左下角拼接一个三角形的元素,我们使用伪元素来实现,代码如下:[css] view plain copy...

怎样用CSS实现图片翻转

方法一:1、实现CSS样式的方法代码如下。2、实现前端布局的方法代码如下。3、实现图片翻转CSS样式代码如下。方法二:1、实现正反面效果的HTML的方法代码如下。2、实现CSS样式的方法代码。3、然后实现竖向翻转的方法代码如下。

css3 如何让一个图片不断翻转

/* css3 让一个图片不断翻转示例代码 */#gavinPlay{/* background:color url x y repeat 图片来自百度图片,按需要更换 */background:red url("https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=2406548182,3889...

CSS3中如何实现图片翻转

今天将和大家分享如何利用CSS3中的知识来制作一个图片翻转的功能,CSS3中图片翻转效果主要通过设置transition过渡动画以及transform旋转动画来共同实现【推荐课程:CSS3教程】案例分析图片翻转效果的思路:先利用position定位将两个...

html5如何让图片3d旋转

1、首先打开html文件编辑器,这里使用vscode新建一个html文档,文档中写入基本的html结构,然后插入img标签并插入一张图片,给img一个class属性:2、然后在上方的head标签中的style标签设置样式,这里设置图片的宽度和高度并设置...

css动画效果的各种实现方法与区分,使用transition实现一个简单的翻牌...

1. transition ,所在元素块样式变动时启动,可用于样式变动时 产生过渡动画效果 | transition-property | 规定设置过渡效果的 CSS 属性的名称。 | | transition-duration | 规定完成过渡效果需要多少秒或毫秒。 | ...

css3 中怎样实现div的2d,3d旋转?

新建一个HTML文件粘过去:2D 旋转 3D 旋转 p { margin: 12px 0 0 0;line-height: 150%;} rotate1, #rotatey1 { border: 1px solid #000000;background: red;margin: 10px;opacity: 0....

怎样在网页上实现3D效果?

1.CSS3除了为开发者提供二维变形之外,还将动画从二维平面推动到了三维立体状态,能够实现真正的三维特效。 三维变形和二维变形一样,均使用的是transform属性。想要触发三维变形有两种方式:一种方式是通过语法告知浏览器“...2....

css如何实现图片的旋转展示效果(代码示例)

1、构建图像轮播框架首先是HTML。它有点难以阅读,因为我们删除了元素之间的任何空格或回车。这样我们就可以使用JavaScript更轻松地引用不同的图像 - 空格或行在某些浏览器中创建新节点。

如何css制作3d旋转立方体效果?

二、立方体的每一个面都有它自己的元素。我们稍后会使用CSS来将立方体的6个面放置到正确的位置上。三、在立方体的CSS样式中,首先要关注的是立方体的wrapper div。为了制作3D效果,我们需要为它提供一个 CSS perspective。四...

Top
6.928987s