transform
Posted yuyujuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了transform相关的知识,希望对你有一定的参考价值。
transform分为旋转(rotate),移动(translate),缩放(scale),扭曲(skew),矩阵(matrix)五种:
-
rotate:旋转角度为负数的时候为逆时针旋转,为正数的时候为顺时针旋转。
-
scale:缩放基数为1,大于1为放大,小于1为缩小。
-
所有的改变基点默认都是元素的中心点,可以通过设置transform-origin来改变元素基点。
-
transform-origin(x,y);其中x和y既可以是百分值、em、px,也可以是left、right、top、bottom、center。
-
transform和transform-origin在不同浏览器内核中写法不一样,需要在不同浏览器中加入相应的前缀,下面例子中为了简便而省略了前缀。
.menu ul{
border-top:15px solid black;
padding:0 10px;
}
.menu ul li{
text-decoration:none;
list-style: none;
outline: none;
}
.menu ul li a{
color:#fff;
float:left;
margin:0 5px;
font-size:14px;
height:50px;
line-height:50px;
text-align:center;
width:65px;
padding:10px 5px;
background:#151515;
border-radius:0 0 5px 5px;
box-shadow:0 0 1px #ccc,inset 0 0 2px #fff;
text-decoration:none;
list-style: none;
outline: none;
}
<div class="menu"> <ul class="clearfix"> <li class="item translate"><a href="#">Translate</a></li> <li class="item translate-x"><a href="#">Translatex</a></li> <li class="item translate-y"><a href="#">Translatey</a></li> <li class="item rotate"><a href="#">Rotate</a></li> <li class="item scale"><a href="#">Scale</a></li> <li class="item scale-x"><a href="#">Scalex</a></li> <li class="item scale-y"><a href="#">Scaley</a></li> <li class="item skew"><a href="#">Skew</a></li> <li class="item skew-x"><a href="#">Skewx</a></li> <li class="item skew-y"><a href="#">Skewy</a></li> <li class="item matrix"><a href="#">matrix</a></li> </ul> </div>
.menu ul li.translate a{ background:#2ec7d2; } .menu ul li.translate a:hover{ transform:translate(-10px,-10px); } .menu ul li.translate-x a{ background:#8fdd21; } .menu ul li.translate-x a:hover{ transform:translateX(-10px); } .menu ul li.translate-y a{ background:#f45917; } .menu ul li.translate-y a:hover{ transform:translateY(-10px); } .menu ul li.rotate a{ background:#d50e19; } .menu ul li.rotate a:hover{ transform:rotate(45deg); } .menu ul li.scale a{ background:#cdddf2; } .menu ul li.scale a:hover{ transform:scale(0.8,0.8); } .menu ul li.scale-x a{ background:#0fdd21; } .menu ul li.scale-x a:hover{ transform:scaleX(0.8); } .menu ul li.scale-y a{ background:#cd5917; } .menu ul li.scale-y a:hover{ transform:scaleY(1.2); } .menu ul li.skew a{ background:#519; } .menu ul li.skew a:hover{ transform: skew(45deg,15deg); } .menu ul li.skew-x a{ background:#aa0; } .menu ul li.skew-x a:hover{ transform:skewX(-30deg); } .menu ul li.skew-y a{ background:#e19; } .menu ul li.skew-y a:hover{ transform:skewY(30deg); } .menu ul li.matrix a{ background:#919; } .menu ul li.matrix a:hover{ transform:matrix(1,1,-1,0,0,0); }
上面列出的所有变化都是在以元素中心点为基点的基础上实现的,现在改变元素的基点来达到不同的效果。
当对一个transform运用多个属性值时,多个属性之间用空格间隔:
以上是关于transform的主要内容,如果未能解决你的问题,请参考以下文章
SVG.js,从使用“use”导入的元素中删除/读取属性“transform”
自注意力 self attention Transformer 多头注意力代码 Transformer 代码 动手学深度学习v2
Transformer专题Vision Transformer(ViT)原理 + 代码
自注意力 self attention Transformer 多头注意力代码 Transformer 代码 动手学深度学习v2
PT之Transformer:基于PyTorch框架利用Transformer算法针对IMDB数据集实现情感分类的应用案例代码解析