Atropos 兼容支持以下功能的浏览器
我们可以从 NPM 安装 Atropos
npm i atropos
要为 Atropos 组件设置样式,您可以使用 part 属性定位和自定义组件的各个部分。以下部分可用于设置样式
以下是如何编写 CSS 规则来设置 atropos-component 内部部分样式的示例
atropos-component::part(inner) {/* Your styles for the inner part */}
<script>// import Atropos componentimport AtroposComponent from 'atropos/element';// register Atropos componentcustomElements.define('atropos-component', AtroposComponent);</script><atropos-component class="my-atropos"><!-- ... --></atropos-component>
除了 Atropos 的主要 CSS 样式外,我们可能还需要添加一些自定义样式,例如设置 Atropos 的大小
.my-atropos {width: 320px;height: 160px;}
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
active-offset | 数字 | 50 | 激活(悬停)时主容器的偏移量,基本上表示 translateZ 值 |
always-active | 布尔值 | false | 启用 Atropos 始终处于活动状态 |
duration | 数字 | 300 | 激活、离开和旋转期间的过渡持续时间(以毫秒为单位) |
rotate | 布尔值 | true | 定义是否在指针移动时旋转容器(激活时) |
rotate-touch | 布尔值 | 字符串 | true | 定义是否在触摸移动时旋转容器(激活时),必须启用 rotate 。还接受特殊值
|
rotate-x-max | 数字 | 15 | 沿 X 轴的最大旋转角度(以度为单位) |
rotate-y-max | 数字 | 15 | 沿 Y 轴的最大旋转角度(以度为单位) |
rotate-x-invert | 布尔值 | false | 反转沿 X 轴的旋转角度(以度为单位) |
rotate-y-invert | 布尔值 | false | 反转沿 Y 轴的旋转角度(以度为单位) |
stretch-x | 数字 | 0 | 沿 X 轴移动(平移)atropos 容器到此值(以百分比表示)。例如,值 50 会将容器移动其宽度的 +-50%。仅适用于多个 Atropos,当多个 Atropos 使用相同的父级 eventsEl 容器时 |
stretch-y | 数字 | 0 | 沿 Y 轴移动(平移)atropos 容器到此值(以百分比表示)。例如,值 50 会将容器移动其高度的 +-50%。仅适用于多个 Atropos,当多个 Atropos 使用相同的父级 eventsEl 容器时 |
stretch-z | 数字 | 0 | 沿 Z 轴移动(平移)atropos 容器到此值(以百分比表示)。例如,值 50 会将容器移动其高度的 +-50%。仅适用于多个 Atropos,当多个 Atropos 使用相同的父级 eventsEl 容器时 |
common-origin | 布尔值 | true | 将为所有具有相同父级的 Atropos 组件动态设置 transform-origin 到相同点(通常是指针位置)。仅适用于多个 Atropos,当多个 Atropos 使用相同的父级 eventsEl 容器时 |
shadow | 布尔值 | true | 启用阴影 |
shadow-offset | 数字 | 50 | 阴影偏移量,基本上是阴影元素的 translateZ 值 |
shadow-scale | 数字 | 1 | 阴影缩放因子 |
highlight | 布尔值 | true | 启用高亮 |
事件 | |||
enter | 函数 | 事件当 Atropos 激活(悬停)时触发 | |
leave | 函数 | 事件当 Atropos 失效(指针移出)时触发 | |
rotate | function(event) | 事件在旋转时触发。 | |
插槽 | |||
root | 此处传递的元素将添加到 atropos 根元素 | ||
scale | 此处传递的元素将添加到 atropos-scale 元素 | ||
rotate | 此处传递的元素将添加到 atropos-rotate 根元素 |
例如
<script>import AtroposComponent from 'atropos/element';customElements.define('atropos-component', AtroposComponent);</script><atropos-component class="my-atropos"active-offset="40"shadow-scale="1.05"></atropos-component><script>const atroposComponent = document.querySelector('.my-atropos');atroposComponent.addEventListener('enter', function() {console.log('Enter');});atroposComponent.addEventListener('leave', function() {console.log('Leave');});atroposComponent.addEventListener('rotate', function(event) {console.log('Rotate', event.detail);</script>
我们可以访问 Atropos 实例,如下所示
const atroposComponent = document.querySelector('atropos-component');const atroposInstance = atroposComponent.atroposRef;
Atropos 使用特殊的 data-
属性来控制元素偏移量(视差效果)
data-atropos-offset
- 以百分比控制元素偏移量/平移。
data-atropos-offset="5"
表示元素将在最大旋转角度上移动其大小的 5%
。data-atropos-offset="-5"
表示元素将在最大旋转角度上移动其大小的 -5%
。基本上,如果您希望元素显得更近(位于场景前面),则此值应为正数。如果您希望元素显得更远(位于场景后面),则此值应为负数。
data-atropos-opacity
- 控制元素的不透明度。data-atropos-opacity="0;1"
- 表示元素的不透明度将从 0
(初始状态)更改到 1
(最大旋转角度)。data-atropos-opacity="0.1;0.8"
- 表示元素的不透明度将从 0.1
(初始状态)更改到 0.8
(最大旋转角度)。data-atropos-opacity="1;0"
- 表示元素的不透明度将从 1
(初始状态)更改到 0
(最大旋转角度)。例如
<atropos-component><!--Element with negative offset will move in reverse direction,making it appear behind the scene--><img src="image-bg.png" data-atropos-offset="-5" /><!--Element with no offset will not move--><img src="image-middle.png" data-atropos-offset="0" /><!--Element with positive offset will move in same direction,making it appear in front of the scene--><img src="image-front.png" data-atropos-offset="5" /></atropos-component>
如您所见,将 Atropos 集成到您的网站或应用程序中非常容易。以下是一些后续步骤