利用css3中的 transform-origin 属性设计div 从不同角度显示隐藏的方向

用法:transform-origin: x-axis y-axis z-axis;

transform-origin属性值可以是百分比、em、px等具体的值,也可以是top、right、bottom、left和center这样的关键词。

只对值x-axisy-axis 简单说明,如下:

  • x-axis:用来设置transform-origin水平方向X轴的偏移量,可以使用和值,同时也可以是正值(从中心点沿水平方向X轴向右偏移量),也可以是负值(从中心点沿水平方向X轴向左偏移量)。
  • y-axis :用来设置transform-origin属性在垂直方向Y轴的偏移量,可以使用和值,同时可以是正值(从中心点沿垂直方向Y轴向下的偏移量),也可以是负值(从中心点沿垂直方向Y轴向上的偏移量)。

 

  1. transform-origin取值为center(或center center或50% 或50% 50%或默认): 

 

  1. transform-origin取值为top(或top center或center top或50% 0):

  1. transform-origin取值为right(或right center 或center right 或 100% 或 100% 50%):

  1. transform-origin取值为bottom(或bottom center 或center bottom 或 50% 100%):

这里写图片描述

  1. transform-origin取值为left(或left center或center left或0或0 50%):

这里写图片描述

transform-origin取值为top left(或left top或0 0):

transform-origin取值为bottom right(或right bottom或100% 100%):

这里写图片描述

transform-origin取值为left bottom(或bottom left 或 0 100%):

这里写图片描述

 

围绕点 可以 点击CSS3变形之transform-origin属性;和CSS3新属性篇(二):transform-origin属性  具体 可看这两位博主的  

各个方向

 top = top center = center top = 50% 0

 right = right center = center right = 100%或(100% 50%)

 bottom = bottom center = center bottom = 50% 100%

 left = left center = center left = 0或(0 50%)

 center = center center = 50%或(50% 50%)

 top left = left top = 0 0

 right top = top right = 100% 0

 bottom right = right bottom = 100% 100%

 bottom left = left bottom = 0 100%

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
 
    <style>
        .main{
            height: 600px;
            width: 200px;
            color: #fff;
        }
        .down{
            height: 300px;
            transform: scale(0);
            transition: transform 0.5s;
            transform-origin: top left  ;
            background: #2c275b;
        }
        .active {
            height: 300px;
            transform: scale(1);
            transition: transform 0.5s;
            transform-origin:top left 
        }
        .btn{
            display: inline-block;
            margin-bottom: 20px;
            padding: 3px 10px;
            border-radius: 5px;
            background: #999;
        }
    </style>
</head>
<body>
 
<div class="main">
    <span class="btn" id="btn">测试</span>
    <div class="down">
        contentcontentcontentcontentcontentcontent
    </div>
</div>
<script>
    document.getElementById('btn').addEventListener('click',()=>{
        let element = document.getElementsByClassName('down')[0];
        addClass(element,'active');
    });
    function addClass (element,className) {
        element.className = element.className.indexOf(className)===-1 ? element.className+' '+className : element.className.replace(' active','') ;
    }
</script>
</body>
</html>

 

 

本文仅限自用记录transform-origin用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值