我如何收集4个小三角形的形状来制作一个大三角形?

hghayour

我想制作一个通过收集4个小三角形组成的图像背景三角形,就像这张图像

在此处输入图片说明

我该如何收集三角形图像背景形状?

.block {
    width: 0;
    height: 0;
    border: solid 20px;    
    float: left;
}
.clear {
    clear: both;
}
.top {
    margin-left: 38px;
}
.top .left {    
    border-color: transparent green green transparent;
}
.top .right {    
    border-color: transparent transparent green green;
}
.bottom .left1 {    
    border-color: transparent red red transparent;
}
.bottom .mid1 {    
    border-color: blue blue red red;
}
.bottom .mid2 {    
    border-color: blue purple purple blue;
}
.bottom .right1 {    
    border-color: transparent transparent purple purple;
}
<div class="top">
    <div class="block left"></div>
    <div class="block right"></div>
    <div class="clear"></div>
</div>
<div class="bottom">
    <div class="block left1"></div>
    <div class="block mid1"></div>
    <div class="block mid2"></div>
    <div class="block right1"></div>
</div>

在此处输入链接说明

阿尔瓦罗·蒙托罗

正如我在评论中提到的那样,在这种情况下,SVG /画布可能是更好的解决方案。我不是他们的专家,但是创建像您想要的那样的简单模式很简单(我使用了这个问题的背景解决方案):

<svg width="300" height="300">
    <defs>
        <pattern id="img1" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/people/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img2" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/animals/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img3" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/abstract/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img4" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/sports/" x="0" y="0" width="200" height="200"/>
        </pattern>
    </defs>
    <path d="M150,0 225,150 75,150" fill="url(#img1)" />
    <path d="M0,300 75,150 150,300" fill="url(#img2)" />
    <path d="M75,150 225,150 150,300" fill="url(#img3)" />
    <path d="M150,300 300,300 225,150" fill="url(#img4)" />
</svg>


编辑:按照下面的注释中的要求,添加了一些代码来显示如何操作元素(单击两个三角形,它们的图像将交换):

var step = 0;
var $prev;

$("path").on("click", function() {
    switch (step) {
        // if it's the first step: save the current element for later
        case 0:
            step = 1;
            $prev = $(this);
            break;
        // if it's the second step: swap images and start again
        case 1:
            step = 0;
            var aux = $prev.attr("fill");
            $prev.attr("fill", $(this).attr("fill"));
            $(this).attr("fill", aux);
            break;
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<svg width="300" height="300">
    <defs>
        <pattern id="img1" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/people/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img2" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/animals/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img3" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/abstract/" x="0" y="0" width="200" height="200" />
        </pattern>
        <pattern id="img4" width="100%" height="100%">
            <image xlink:href="http://lorempixel.com/200/200/sports/" x="0" y="0" width="200" height="200"/>
        </pattern>
    </defs>
    <path id="path1" stroke="black" d="M150,0 225,150 75,150 150,0" fill="url(#img1)" />
    <path id="path2" stroke="black" d="M0,300 75,150 150,300 0,300" fill="url(#img2)" />
    <path id="path3" stroke="black" d="M75,150 225,150 150,300 75,150" fill="url(#img3)" />
    <path id="path4" stroke="black" d="M150,300 300,300 225,150 150,300" fill="url(#img4)" />
</svg>

您也可以在此JSFiddle上看到它:http : //jsfiddle.net/4x7sh6bj/1/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在表格单元的右下角添加一个绿色的小三角形?

来自分类Dev

如何在表格单元的右下角添加一个绿色的小三角形?

来自分类Dev

在垂直制表符效果上获得一个小三角形

来自分类Dev

如何制作一个三角形的星星并计算星星的数量?

来自分类Dev

如何在微调器中添加小三角形?

来自分类Dev

在一个绘制的图上,我想知道最大三角形交点的面积

来自分类Dev

Excel工作表角上的那个小三角形是什么?

来自分类Dev

在Android中制作一个三角形按钮

来自分类Dev

在Android中更改微调器上的小三角形的颜色

来自分类Dev

在角落有小三角形的TextBox

来自分类Dev

底部没有小三角形的地图标记信息窗口

来自分类Dev

我需要做一个倒三角形

来自分类Dev

我想放置一个 css 三角形作为背景

来自分类Dev

如何绘制一个三角形的UIButton

来自分类Dev

如何画一个三角形?

来自分类Dev

如何获得一个虚构的三角形内的mouselistener通知点击?

来自分类Dev

如何仅使用 css 创建一个三角形的 div?

来自分类Dev

我需要制作一个Triforce,每个三角形包含3条数字

来自分类Dev

我想制作一个带有三角形图标的按钮

来自分类Dev

如何制作一个始终面对同一点的三角形?

来自分类Dev

如何创建具有附加另一个div的三角形形状的div

来自分类Dev

如何在xml drawable android中绘制一个矩形内端三角形形状?

来自分类Dev

我正在尝试编写一个递归Java程序来创建Serpinski三角形

来自分类Dev

如何制作一个内部有空格的等腰三角形

来自分类Dev

如何制作三角形投影?

来自分类Dev

如何制作重叠的三角形

来自分类Dev

如何制作三角形JAVA

来自分类Dev

如何制作三角形div?

来自分类Dev

android: 如何制作三角形布局

Related 相关文章

  1. 1

    如何在表格单元的右下角添加一个绿色的小三角形?

  2. 2

    如何在表格单元的右下角添加一个绿色的小三角形?

  3. 3

    在垂直制表符效果上获得一个小三角形

  4. 4

    如何制作一个三角形的星星并计算星星的数量?

  5. 5

    如何在微调器中添加小三角形?

  6. 6

    在一个绘制的图上,我想知道最大三角形交点的面积

  7. 7

    Excel工作表角上的那个小三角形是什么?

  8. 8

    在Android中制作一个三角形按钮

  9. 9

    在Android中更改微调器上的小三角形的颜色

  10. 10

    在角落有小三角形的TextBox

  11. 11

    底部没有小三角形的地图标记信息窗口

  12. 12

    我需要做一个倒三角形

  13. 13

    我想放置一个 css 三角形作为背景

  14. 14

    如何绘制一个三角形的UIButton

  15. 15

    如何画一个三角形?

  16. 16

    如何获得一个虚构的三角形内的mouselistener通知点击?

  17. 17

    如何仅使用 css 创建一个三角形的 div?

  18. 18

    我需要制作一个Triforce,每个三角形包含3条数字

  19. 19

    我想制作一个带有三角形图标的按钮

  20. 20

    如何制作一个始终面对同一点的三角形?

  21. 21

    如何创建具有附加另一个div的三角形形状的div

  22. 22

    如何在xml drawable android中绘制一个矩形内端三角形形状?

  23. 23

    我正在尝试编写一个递归Java程序来创建Serpinski三角形

  24. 24

    如何制作一个内部有空格的等腰三角形

  25. 25

    如何制作三角形投影?

  26. 26

    如何制作重叠的三角形

  27. 27

    如何制作三角形JAVA

  28. 28

    如何制作三角形div?

  29. 29

    android: 如何制作三角形布局

热门标签

归档