百科狗-知识改变命运!
--

perspective-origin - 指定观察者的位置 - css 变形(2D 3D 转化)

梵高12个月前 (11-21)阅读数 19#技术干货
文章标签简记

perspective-origin

perspective-origin - 指定观察者的位置 - css 变形(2D 3D 转化)

版本:CSS3

CSS 属性 perspective-origin 指定了观察者的位置,用作 perspective 属性的消失点。

示例

perspective-origin: center;
perspective-origin: top;
perspective-origin: bottom right;
perspective-origin: 500% 200%;
perspective-origin: -170%;

/* global values */
perspective-origin: inherit;
perspective-origin: initial;
perspective-origin: unset;

浏览器支持

IE10以上版本的浏览器都支持perspective-origin

语法

perspective-origin:x-position| y-position

取值

  • x-position:指定消失点的横坐标,其值有以下形式:
    • 长度值或相对于元素宽度的百分比值,可为负值。
    • left,关键字,0值的简记。
    • center,关键字,50%的简记。
    • right,关键字,100%的简记。
  • y-position:指定消失点的纵坐标,其值有以下形式:
    • 长度值或相对于元素高度的百分比值,可为负值。
    • top,关键字,0值的简记。
    • center,关键字,50%的简记。
    • bottom,关键字,100%的简记。
默认值50% 50%,效果等同于center center
适用于变换元素
继承性
动画性当值为数值时
计算值除了指定绝对值,否则都为百分比

说明:

指定透视点的位置。

  • 该属性提供2个参数值。
  • 如果提供两个,第一个用于横坐标,第二个用于纵坐标。
  • 如果只提供一个,该值将用于横坐标;纵坐标将默认为center。
  • 对应的脚本特性为perspactiveOrigin

CSS属性perspective-origin指定了观察者的位置,用作perspective属性的消失点。

实例

//html 
perspective-origin: top left; perspective-origin: top; perspective-origin: top right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
perspective-origin: left; perspective-origin: 50% 50%; perspective-origin: right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
perspective-origin: bottom left; perspective-origin: bottom; perspective-origin: bottom right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
//CSS /* shorthand classes for perspective-origin values */ .potl { perspective-origin: top left; -webkit-perspective-origin: top left; } .potm { perspective-origin: top; -webkit-perspective-origin: top; } .potr { perspective-origin: top right; -webkit-perspective-origin: top right; } .poml { perspective-origin: left; -webkit-perspective-origin: left; } .pomm { perspective-origin: 50% 50%; -webkit-perspective-origin: 50% 50%; } .pomr { perspective-origin: right; -webkit-perspective-origin: right; } .pobl { perspective-origin: bottom left; -webkit-perspective-origin: bottom left; } .pobm { perspective-origin: bottom; -webkit-perspective-origin: bottom; } .pobr { perspective-origin: bottom right; -webkit-perspective-origin: bottom right; } /* define the container div, the cube div, and a generic face */ .container { width: 100px; height: 100px; margin: 24px; border: none; } .cube { width: 100%; height: 100%; backface-visibility: visible; perspective: 300px; transform-style: preserve-3d; -webkit-backface-visibility: visible; -webkit-perspective: 300px; -webkit-transform-style: preserve-3d; } .face { display: block; position: absolute; width: 100px; height: 100px; border: none; line-height: 100px; font-family: sans-serif; font-size: 60px; color: white; text-align: center; } /* define each face based on direction */ .front { background: rgba(0, 0, 0, 0.3); transform: translatez(50px); -webkit-transform: translatez(50px); } .back { background: rgba(0, 255, 0, 1); color: black; transform: rotatey(180deg) translatez(50px); -webkit-transform: rotatey(180deg) translatez(50px); } .right { background: rgba(196, 0, 0, 0.7); transform: rotatey(90deg) translatez(50px); -webkit-transform: rotatey(90deg) translatez(50px); } .left { background: rgba(0, 0, 196, 0.7); transform: rotatey(-90deg) translatez(50px); -webkit-transform: rotatey(-90deg) translatez(50px); } .top { background: rgba(196, 196, 0, 0.7); transform: rotatex(90deg) translatez(50px); -webkit-transform: rotatex(90deg) translatez(50px) } .bottom { background: rgba(196, 0, 196, 0.7); transform: rotatex(-90deg) translatez(50px); -webkit-transform: rotatex(-90deg) translatez(50px); } /* make the table a little nicer */ th, p, td { background-color: #eeeeee; padding: 10px; font-family: sans-serif; text-align: left; }
perspective-origin: top left;perspective-origin: top;perspective-origin: top right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
perspective-origin: left;perspective-origin: 50% 50%;perspective-origin: right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
perspective-origin: bottom left;perspective-origin: bottom;perspective-origin: bottom right;
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
.demo1 .potl{perspective-origin: top left;-webkit-perspective-origin: top left;}.demo1 .potm{perspective-origin: top;-webkit-perspective-origin: top;}.demo1 .potr{perspective-origin: top right;-webkit-perspective-origin: top right;}.demo1 .poml{perspective-origin: left;-webkit-perspective-origin: left;}.demo1 .pomm{perspective-origin: 50% 50%;-webkit-perspective-origin: 50% 50%;}.demo1 .pomr{perspective-origin: right;-webkit-perspective-origin: right;}.demo1 .pobl{perspective-origin: bottom left;-webkit-perspective-origin: bottom left;}.demo1 .pobm{perspective-origin: bottom;-webkit-perspective-origin: bottom;}.demo1 .pobr{perspective-origin: bottom right;-webkit-perspective-origin: bottom right;}.demo1 .container{width: 100px; height: 100px; margin: 24px; border: none;}.demo1 .cube{width: 100%; height: 100%; backface-visibility: visible; perspective: 300px; transform-style: preserve-3d;-webkit-backface-visibility: visible;-webkit-perspective: 300px;-webkit-transform-style: preserve-3d;}.demo1 .face{display: block; position: absolute; width: 100px; height: 100px; border: none; line-height: 100px; font-family: sans-serif; font-size: 60px; color: white; text-align: center;}.demo1 .front{background: rgba(0, 0, 0, 0.3); transform: translatez(50px);-webkit-transform: translatez(50px);}.demo1 .back{background: rgba(0, 255, 0, 1); color: black; transform: rotatey(180deg)translatez(50px);-webkit-transform: rotatey(180deg)translatez(50px);}.demo1 .right{background: rgba(196, 0, 0, 0.7); transform: rotatey(90deg)translatez(50px);-webkit-transform: rotatey(90deg)translatez(50px);}.demo1 .left{background: rgba(0, 0, 196, 0.7); transform: rotatey(-90deg)translatez(50px);-webkit-transform: rotatey(-90deg)translatez(50px);}.demo1 .top{background: rgba(196, 196, 0, 0.7); transform: rotatex(90deg)translatez(50px);-webkit-transform: rotatex(90deg)translatez(50px)}.demo1 .bottom{background: rgba(196, 0, 196, 0.7); transform: rotatex(-90deg)translatez(50px);-webkit-transform: rotatex(-90deg)translatez(50px);}.demo1 th,.demo1 p,.demo1 td{background-color:#eeeeee; padding: 10px; font-family: sans-serif; text-align: left;}

实例

#div1
{
position:relative;
height:200px;
width:200px;
margin:50px;
padding:10px;
border:1pxsolidblack;
}

#div2
{
padding:50px;
position:absolute;
border:1pxsolidblack;
background-color:red;
transform:rotatex(45deg);
-webkit-transform:rotatex(45deg);/*safari and chrome*/
}


functionchangepersp(value)
{
document.getelementbyid('div1').style.webkitperspective=value;
document.getelementbyid('persp').innerhtml=value;
}

functionchangeorgpersp()
{
varx=document.getelementbyid('operspx').value;
vary=document.getelementbyid('operspy').value;
document.getelementbyid('div1').style.webkitperspectiveorigin=x+'%'+y+'%';
document.getelementbyid('opersp').innerhtml=x+"%"+y+"%";
} 
hello
changeperspective:

webkit-perspective:;

changetheorigins:
x-axis:
y-axis:
webkit-perspective-origin:50%50%;

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)