A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

葬天尘

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

本帖最后由 葬天尘 于 2019-10-17 22:21 编辑

我的开发环境            我使用 Angular8 + ng-zorro-antd 开发微信服务号的推送消息详情页面,用来显示一个表格。

我的目标
    公司服务号会给用户推送消息,点击详情后跳转到WEB页面,这里使用 ng-zorro-antd 的表格显示明细数据,
    行数是会变变动,最少会有一行数据,多时会达到10行左右,那么就导致表格的高度是变动的,这个表格要显示
    总共要显示10列( 列数是固定的 ),并且将表格组件放在 div 中,所以想要用户点击了“详情”进入页面就通过
    transform:rotate(90deg); 旋转 div 90°,然后用户横屏看手机。
我的做法
    表格所在的 div 指定类名:rotateDiv,下面是 css 中的代码
   
[CSS] 纯文本查看 复制代码
.rotateDiv{ 
    transform: rotate(90deg);
    padding: .5em;
    width: 700px;

    /* 
    随着DIV高度的增加导致旋转的中心变动,最终旋转后上边距会越来越大,
    要恢复则将下面的最小、最大高度取消,使用固定高度*/
    height: 300px; 
    
    /* min-height: 300px;
    max-height: 600px;
    background-color: sandybrown; */

    transition: .3s all;  /* rotate gradually instead of instantly */
    margin-top: 200px;
    position: relative;
    right: 100px;
}



效果解释:

    为了展示真实的手机上的效果,下面来看看手机全屏截图的图片。第一张是只有2行数据时的效果,边距和整体效果都很好
    旋转后顶格到上边和右边
   
    然后看看超过4行的表格,效果就不行了,第四行之后的行就看不到了,并且最要命的是左右不能拖动
    那就是超出的数据完全看不到了( 这个好像是由于上面 css 代码中指定了 div 的高度 300px 有关 )
   
    那么再来看看把 300px 去掉,转而设置最小、大高度让 div 高度可变的代码是:
   
[CSS] 纯文本查看 复制代码
.rotateDiv{ 
    transform: rotate(90deg);
    padding: .5em;
    width: 700px;

    /* 
    随着DIV高度的增加导致旋转的中心变动,最终旋转后上边距会越来越大,
    要恢复则将下面的最小、最大高度取消,使用固定高度*/
    /* height: 300px;  */
    
    min-height: 300px;
    max-height: 600px;
    background-color: sandybrown;

    transition: .3s all;  /* rotate gradually instead of instantly */
    margin-top: 200px;
    position: relative;
    right: 100px;
}
    效果如下图(div 给了背景色),可以看到 div 整体距离上边有距离了
   
我的疑问:
    在设置表格所在的 div 最小高度和最大高度后,div 的高度可变了,那么旋转90°时参照的中心点会变
    高度越高,中心点越是向下,导致旋转之后整体到顶边有距离了,那么要怎么消除这个距离?
    或者我的旋转思路整个是错的,有其他方法来旋转?有必要的话:QQ = 409223171
    或者发这个QQ号码邮件也可以,非常感谢你的帮助!
源码和在线案例
源码:https://github.com/chanchaw/rotate
在线演示案例:https://stackblitz.com/github/chanchaw/rotate
要点击右边安装依赖





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马