css 翻转-CSS图片翻转动漫技术解读

2023-08-21 0 2,170 百度已收录

CSS图片翻转动漫技术解读

由于我经常被问到,我要补充一点,IE支持这些技术!虽然会很麻烦。需要做的是旋转前后元素,而不是整个容器元素。如果您使用的是最新版本的 IE,则可以忽略此部分。支持IE10+,IE9完全不支持CSS动漫

CSS动漫特别有趣;这种技术的美妙之处在于,通过使用如此多的简单属性,您可以创建甚至皮克斯动画制作公司都会称赞的漂亮消隐效果。其中一个代表是CSS图像翻转效果,它允许您查看卡片正面和背面的内容。本文将向您展示如何以最简单的方式创建这些效果

简而言之:这不是我介绍这些技术的第一篇文章,但我发现它们过于复杂。网上还有很多其他的教科书,但里面加了很多多余的代码模式,读者区分什么是必要的是没有用的;本文回避了这个问题,只列出了必要的CSS代码,您可以在这些代码上添加自己喜欢的样式来美化这些卡片

  1. (鼠标移到图片上看翻转效果)
  2. webHek

Crooked Neck Hacker

@ Crooked Neck Hacker MozillaWebDeveloper, MooTools & jQueryConsultant, MooToolsCoreDeveloper, JavaScriptFanatic, CSSTinkerer, PHPHacker, and Weblover

网页代码

实现正面和背面效果的 HTML 代码可能是这样的:

css 翻转-CSS图片翻转动漫技术解读

  1. <div class="flip-container" ontouchstart="this.classList.toggle('hover');">
  2. <div class="flipper">
  3. <div class="front">
  • <div class="back">
  • 可以想象,应该有两个容器来存储卡片的“顶部”和“反向”,通过 CSS,我们将指定这两个容器元素的角色。同样值得注意的是ontouchstart JS,它允许您使用触摸屏来触发翻转操作。实际上,您应该单独提取此代码并将JavaScript代码放在一起

    CSS代码

    我敢打赌,你会对这么少的代码感到震惊(如果你不考虑每个浏览器的CSS前缀):

    1. /* entire container, keeps perspective */
    2. .flip-container {
    3. perspective: 1000;
    4. }
    5. /* flip the pane when hovered */
    6. .flip-container:hover .flipper, .flip-container.hover .flipper {
    7. transform: rotateY(180deg);
    8. }
    9. .flip-container, .front, .back {
    10. width: 320px;
    11. height: 480px;
    12. }
    13. /* flip speed goes here */
    14. .flipper {
    15. transition: 0.6s;
    16. transform-style: preserve-3d;
    17. position: relative;
    18. }
    19. /* hide back of pane during swap */
    20. .front, .back {
    21. backface-visibility: hidden;
    22. position: absolute;
    23. top: 0;
    24. left: 0;
    25. }
    26. /* front pane, placed above back */
    27. .front {
    28. z-index: 2;
    29. }
    30. /* back, initially hidden pane */
    31. .back {
    32. transform: rotateY(180deg);
    33. }

    以下是关于整个过程的原理:

    在最里面的容器元素上设置整个动漫区域的透视属性

    css 翻转-CSS图片翻转动漫技术解读

    当内部容器元素遇到键盘悬停风暴时,卡内的容器将旋转 180 度。这也是控制转速的地方。如果旋转值设置为 -180deg,则为相反的旋转

    代表卡正面和背面的元素应绝对定位,以便它们可以在同一位置相互阻挡。它们的背面可见性属性设置为隐藏,以便在翻转时每张卡的反面不可见

    设置存储卡的正面

    到比反面更高的z指数值css 翻转,使卡的正面首先将

    反转牌旋转 180 度,使其扮演相反的角色

    这就是所有这些代码的作用!你把这个代码放在你的网页上,然后修饰卡片的样式!

    来自CSS动漫专家AnaTudor的提示

    在卡片元素的各个属性上设置某些值(例如 likeoverflow:hidden)将导致其子元素失去其 3D 转换功能。我同意他的观点,因为在本文中,我碰巧遇到了溢出:隐藏的问题,这导致 3D 变换子元素都出现在同一个平面上,其中几个被旋转了 180 度

    css 翻转-CSS图片翻转动漫技术解读

    触发 CSS 翻转

    1. (鼠标移到图片上看翻转效果)
    2. WebHek

    Crooked Neck Hacker

    @ Crooked Neck Hacker MozillaWebDeveloper, MooTools & jQueryConsultant, MooToolsCoreDeveloper, JavaScriptFanatic, CSSTinkerer, PHPHacker, and Weblover

    触发翻转

    如果你喜欢使用 JavaScript 来触发翻转操作,以下简单的 CSS 变体类可以帮助你做到这一点:

    1. .flip-container:hover .flipper, .flip-container.hover .flipper, .flip-container.flip .flipper {
    2. transform: rotateY(180deg);
    3. }

    使用 JavaScript 将此 cssflip 类添加到容器元素可以触发卡片翻转 - 而无需用户将鼠标悬停在键盘上。使用 document.querySelector(“#myCard”).classList.toggle(“flip”)实现它!

    CSS 垂直翻转

    css 翻转-CSS图片翻转动漫技术解读

    1. (鼠标移到图片上看翻转效果)
    2. WebHek

    Crooked Neck Hacker

    @ Crooked Neck Hacker MozillaWebDeveloper,MooTools & jQueryConsultantcss 翻转, MooToolsCoreDeveloper, JavaScriptFanatic, CSSTinkerer, PHPHacker, and Weblover

    执行垂直翻转

    也很简单,就像垂直翻转一样,只需更改变换原点的值,然后在X轴上旋转即可

    1. .vertical.flip-container {
    2. position: relative;
    3. }
    4. .vertical .back {
    5. transform: rotateX(180deg);
    6. }
    7. .vertical.flip-container .flipper {
    8. transform-origin: 100% 213.5px; /* 高的一半 */
    9. }
    10. .vertical.flip-container:hover .flipper {
    11. transform: rotateX(-180deg);
    12. }

    请注意,这里使用的是 rotateX,而不是之前的 rotateY

    让IE支持这些动漫技术

    特殊IE

    css 翻转-CSS图片翻转动漫技术解读

    需要更改此标准卡片翻转代码,因为 IE 尚未在现代浏览器中实现转换功能。基本方法是同时翻转正反两张牌:

    1. /* entire container, keeps perspective */
    2. .flip-container {
    3. perspective: 1000;
    4. transform-style: preserve-3d;
    5. }
    6. /* UPDATED! flip the pane when hovered */
    7. .flip-container:hover .back {
    8. transform: rotateY(0deg);
    9. }
    10. .flip-container:hover .front {
    11. transform: rotateY(180deg);
    12. }
    13. .flip-container, .front, .back {
    14. width: 320px;
    15. height: 480px;
    16. }
    17. /* flip speed goes here */
    18. .flipper {
    19. transition: 0.6s;
    20. transform-style: preserve-3d;
    21. position: relative;
    22. }
    23. /* hide back of pane during swap */
    24. .front, .back {
    25. backface-visibility: hidden;
    26. transition: 0.6s;
    27. transform-style: preserve-3d;
    28. position: absolute;
    29. top: 0;
    30. left: 0;
    31. }
    32. /* UPDATED! front pane, placed above back */
    33. .front {
    34. z-index: 2;
    35. transform: rotateY(0deg);
    36. }
    37. /* back, initially hidden pane */
    38. .back {
    39. transform: rotateY(-180deg);
    40. }
    41. /*
    42. Some vertical flip updates
    43. */
    44. .vertical.flip-container {
    45. position: relative;
    46. }
    47. .vertical .back {
    48. transform: rotateX(180deg);
    49. }
    50. .vertical.flip-container:hover .back {
    51. transform: rotateX(0deg);
    52. }
    53. .vertical.flip-container:hover .front {
    54. transform: rotateX(180deg);
    55. }

    使用前面的代码,IE10也可以正确翻卡!

    基本功效

    之前和之后这种CSS

    翻卡动画技术至今仍是经典案例,代表了CSS动画所能达到的功效,甚至是3DCSS动画所能达到的强大效果。优点是使用的代码非常简单。这些效果对于HTML5动漫的制作来说特别实用,可以说是完美的。你能想到其他地方使用这种效果吗?

    CreateaCSSFlipping Animation

    ###解答1:如果想实现网页自适应全屏背景图片,可以使用CSS中的background-size属性。 该属性可以控制背景图片的大小,使其适合网页的大小。 具体实现方法如下: 1、在CSS样式表中设置背景图片,可以使用background-image属性。 2. 将背景图的重复属性设置为不重复,避免背景图重复显示。 3. 要设置背景图片的位置css全屏,可以使用background-position属性。 4. 将背景图像的长度和高度设置为100%。 5. 使用background-size 属性拉伸或缩放背景图像以适合浏览器的大小。 您可以使用 cover 属性来保持纵横比并覆盖整个区域,或者使用 contains 属性来适应区域并保持纵横比。 例如,如果要设置长度为 100%、高度为 100% 的背景图片,但保持宽高比,则可以使用以下 CSS 代码: body{background-image:url('yourimage.jpg ');background -repeat:no-repeat;background-position:centercenter;background-attachment:fixed;background-size:cover;} 其中background-attachment属性可以使背景图片固定在页面中,并保持滚动页面时背景不变,同时还可以使用background-size:cover属性来实现自适应全屏的效果。

    css 翻转-CSS图片翻转动漫技术解读

    以上就是CSS实现网页背景图自适应全屏的技巧。 通过简单的CSS样式设置,可以使网站背景图片适应不同的设备和比特率,以达到更好的用户体验。 ###答案2:开发网页时,网页的背景图片是网页设计的重要组成部分,它对网站的视觉效果和用户体验起着重要的作用。 但是,页面背景图像的大小与设备屏幕的帧速率之间的不匹配可能会导致个别设备上的显示效果不佳。 为此css全屏,这里介绍一下如何利用CSS实现网页背景图片自适应全屏的方法。 1.使用CSS3的background-size属性手动调整图像的大小以适合元素的大小。 我们可以在CSS文件上将background-size属性设置为“cover”。 这意味着图像将被拉伸并调整大小以适合整个元素的大小。 使用这种方法,图像在任何比特率下仍然保持其纵横比。 ```cssbody{background-image:url('bg.jpg');background-size:cover;background-repeat:no-repeat;}``` 其中,background-repeat 属性设置为“no-repeat” ,以确保图像不会在屏幕上重复出现。

    2、将背景图片设置为页面固定位置 通过将背景图片设置为固定位置,可以使图片固定在网页图层中,而不是随着页面内容滚动。 该方法可以通过以下代码实现: ```cssbody{background-image:url('bg.jpg');background-attachment:fixed;background-position:center;background-repeat:no-repeat;background- size: cover;}```其中background-position属性设置图片居中位置,这样任何尺寸的屏幕都可以让图片居中。 其实以上两种方法就可以很好的实现网页的自适应全屏背景图片,让网站在任何设备上依然能够拥有良好的视觉效果和用户体验。 同时,在开发网站时,我们还需要注意图片的质量和大小,以免影响网站的加载速度和性能。 ###答案3:CSS实现网页自适应全屏背景图的方式是通过设置背景图的属性和样式,使其适应不同尺寸的屏幕。 首先,我们需要将背景图片的属性background-size设置为cover,这样图片就会被手动缩放以填充整个屏幕并保持比例。

    css 翻转-CSS图片翻转动漫技术解读

    其次,我们需要将背景图片的position属性background-position设置为centercenter,这样图片就可以始终保持在屏幕的中央,而不会被拉伸或压缩。 之后我们还可以设置背景色、重复表格等其他样式,最后通过在HTML文档中引入这个CSS文件,就可以实现网页的自适应全屏背景图片了。 以下是 CSS 代码示例: body{background-image:url('bg.jpg');background-size:cover;background-position:centercenter;background-repeat:no-repeat;background-color:#f5f5f5 ;/ *可选背景颜色*/} 其实,通过使用CSS使网页的背景图片自适应全屏,可以改善网站的视觉效果和用户体验,使网页更具吸引力。

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悟空资源网 css css 翻转-CSS图片翻转动漫技术解读 https://www.wkzy.net/game/129452.html

    常见问题

    相关文章

    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务