简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

站内搜索

搜索

活动公告

11-27 10:00
11-02 12:46
10-23 09:32
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,将及时处理!
10-23 09:31
10-23 09:28

CSS3动画对提升用户体验的关键作用及其在现代网页交互设计中的实际应用与效果分析探讨

3万

主题

23

科技点

3万

积分

大区版主

碾压王

积分
31964

三倍冰淇淋无人之境【一阶】财Doro小樱(小丑装)立华奏以外的星空【二阶】

发表于 2025-10-5 12:20:09 | 显示全部楼层 |阅读模式 [标记阅至此楼]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 引言

随着互联网技术的不断发展,用户对网页体验的要求也越来越高。静态的网页已经无法满足现代用户的期望,动态、交互式的体验成为网站设计的重要趋势。在这一背景下,CSS3动画作为一项强大的前端技术,为网页设计师和开发者提供了创造丰富、流畅用户体验的可能性。CSS3动画不仅能够增强网站的视觉吸引力,还能在功能层面提升用户交互的直观性和愉悦感。本文将深入探讨CSS3动画在提升用户体验方面的关键作用,分析其在现代网页交互设计中的实际应用,并对动画效果进行详细的分析与讨论。

2. CSS3动画的基础知识

CSS3动画是通过层叠样式表(CSS)实现的动画效果,它允许开发者在不使用JavaScript或Flash的情况下,为网页元素添加平滑的过渡和动画效果。CSS3动画主要依赖于两个核心属性:transition和animation。

2.1 CSS3过渡(Transitions)

CSS过渡提供了一种在CSS属性变化时添加动画效果的方法。过渡动画通常由用户交互触发,如悬停、点击等。
  1. .element {
  2.   transition: property duration timing-function delay;
  3. }
  4. /* 示例:按钮悬停效果 */
  5. .button {
  6.   background-color: #3498db;
  7.   color: white;
  8.   padding: 10px 20px;
  9.   transition: background-color 0.3s ease, transform 0.2s ease;
  10. }
  11. .button:hover {
  12.   background-color: #2980b9;
  13.   transform: translateY(-2px);
  14. }
复制代码

2.2 CSS3关键帧动画(Keyframe Animations)

关键帧动画允许创建更复杂的动画序列,通过定义动画在不同时间点的状态来实现。
  1. @keyframes animationName {
  2.   0% { /* 初始状态 */ }
  3.   50% { /* 中间状态 */ }
  4.   100% { /* 结束状态 */ }
  5. }
  6. .element {
  7.   animation: animationName duration timing-function delay iteration-count direction fill-mode;
  8. }
  9. /* 示例:旋转动画 */
  10. .loading-spinner {
  11.   width: 40px;
  12.   height: 40px;
  13.   border: 4px solid rgba(0, 0, 0, 0.1);
  14.   border-radius: 50%;
  15.   border-top-color: #3498db;
  16.   animation: spin 1s ease-in-out infinite;
  17. }
  18. @keyframes spin {
  19.   to { transform: rotate(360deg); }
  20. }
复制代码

2.3 CSS3变换(Transforms)

变换是CSS3动画的重要组成部分,它允许对元素进行旋转、缩放、倾斜或平移等操作。
  1. .element {
  2.   transform: rotate(45deg) scale(1.5) translateX(20px);
  3. }
复制代码

3. CSS3动画对用户体验的关键作用

3.1 提供视觉反馈

视觉反馈是用户与界面交互时获得的重要信息。CSS3动画能够为用户操作提供即时的视觉反馈,增强用户对系统状态的感知。

例如,当用户点击一个按钮时,按钮可以有轻微的按下效果,告诉用户操作已被系统接收:
  1. .button {
  2.   transition: transform 0.1s ease;
  3. }
  4. .button:active {
  5.   transform: scale(0.95);
  6. }
复制代码

这种微小的动画效果虽然简单,但却能显著提升用户的操作体验,让用户感觉系统在”响应”他们的操作。

3.2 引导用户注意力

在信息爆炸的时代,引导用户注意到重要内容变得尤为重要。CSS3动画可以通过动态效果吸引用户的注意力,突出显示关键信息或操作。

例如,新功能提示或重要通知可以使用轻微的动画效果来吸引用户注意:
  1. .notification {
  2.   animation: pulse 2s ease-in-out infinite;
  3. }
  4. @keyframes pulse {
  5.   0% { transform: scale(1); }
  6.   50% { transform: scale(1.05); }
  7.   100% { transform: scale(1); }
  8. }
复制代码

这种脉冲动画效果可以在不干扰用户的情况下,温和地引导用户注意到重要信息。

3.3 提升感知性能

感知性能是指用户对系统速度的主观感受,与系统的实际性能可能有所不同。CSS3动画可以通过平滑的过渡效果,掩盖页面加载或内容切换的延迟,从而提升用户的感知性能。

例如,在内容加载时显示一个优雅的加载动画,可以使用户感觉等待时间更短:
  1. .loader {
  2.   width: 50px;
  3.   height: 50px;
  4.   border: 5px solid #f3f3f3;
  5.   border-top: 5px solid #3498db;
  6.   border-radius: 50%;
  7.   animation: spin 1s linear infinite;
  8. }
  9. @keyframes spin {
  10.   0% { transform: rotate(0deg); }
  11.   100% { transform: rotate(360deg); }
  12. }
复制代码

研究表明,有加载动画的页面即使实际加载时间相同,用户也会感觉加载速度更快。

3.4 增强情感连接

精心设计的动画能够为网站注入个性和情感,增强用户与网站之间的情感连接。动画可以传达品牌的性格特征,如活力、专业、创新等,从而在用户心中建立独特的品牌形象。

例如,一个活泼的品牌可以使用弹跳动画效果:
  1. .bounce-element {
  2.   animation: bounce 1s ease;
  3. }
  4. @keyframes bounce {
  5.   0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
  6.   40% {transform: translateY(-20px);}
  7.   60% {transform: translateY(-10px);}
  8. }
复制代码

这种动画效果能够传达出品牌活泼、充满活力的特质,增强用户的情感共鸣。

3.5 提高交互直观性

CSS3动画能够使界面元素的交互更加直观,帮助用户理解界面的工作原理。通过动画展示元素之间的关系和状态变化,用户可以更容易地理解如何与界面进行交互。

例如,展开/折叠菜单的动画可以清楚地展示菜单的打开和关闭过程:
  1. .menu {
  2.   max-height: 0;
  3.   overflow: hidden;
  4.   transition: max-height 0.3s ease;
  5. }
  6. .menu.open {
  7.   max-height: 500px; /* 足够容纳菜单内容的高度 */
  8. }
复制代码

这种动画效果不仅美观,还能帮助用户理解界面的工作方式,提高交互的直观性。

4. CSS3动画在现代网页交互设计中的实际应用

4.1 导航菜单动画

导航菜单是网站的重要组成部分,良好的导航菜单动画能够提升用户的导航体验。现代网站中常见的导航菜单动画包括汉堡菜单转换、下拉菜单展开、侧边栏滑出等。

汉堡菜单是移动端和响应式设计中的常见元素,其转换为”X”的动画能够直观地表示菜单状态的切换:
  1. .hamburger {
  2.   width: 30px;
  3.   height: 20px;
  4.   position: relative;
  5.   cursor: pointer;
  6. }
  7. .hamburger span {
  8.   display: block;
  9.   width: 100%;
  10.   height: 3px;
  11.   background: #333;
  12.   position: absolute;
  13.   left: 0;
  14.   transition: all 0.3s ease;
  15. }
  16. .hamburger span:nth-child(1) {
  17.   top: 0;
  18. }
  19. .hamburger span:nth-child(2) {
  20.   top: 8px;
  21. }
  22. .hamburger span:nth-child(3) {
  23.   top: 16px;
  24. }
  25. .hamburger.active span:nth-child(1) {
  26.   top: 8px;
  27.   transform: rotate(45deg);
  28. }
  29. .hamburger.active span:nth-child(2) {
  30.   opacity: 0;
  31. }
  32. .hamburger.active span:nth-child(3) {
  33.   top: 8px;
  34.   transform: rotate(-45deg);
  35. }
复制代码

下拉菜单的平滑展开和收起动画能够提升用户的导航体验:
  1. .dropdown {
  2.   position: relative;
  3. }
  4. .dropdown-content {
  5.   display: none;
  6.   position: absolute;
  7.   background-color: #f9f9f9;
  8.   min-width: 160px;
  9.   box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  10.   z-index: 1;
  11.   opacity: 0;
  12.   transform: translateY(-10px);
  13.   transition: opacity 0.3s ease, transform 0.3s ease;
  14. }
  15. .dropdown:hover .dropdown-content {
  16.   display: block;
  17.   opacity: 1;
  18.   transform: translateY(0);
  19. }
复制代码

4.2 页面过渡效果

页面过渡效果能够提升用户在浏览不同页面或内容时的体验,使整个过程更加流畅和连贯。

淡入淡出是最简单但有效的页面过渡效果:
  1. .page {
  2.   opacity: 0;
  3.   animation: fadeIn 0.5s ease forwards;
  4. }
  5. @keyframes fadeIn {
  6.   from { opacity: 0; }
  7.   to { opacity: 1; }
  8. }
复制代码

滑动效果可以模拟页面之间的物理转换:
  1. .page-enter {
  2.   transform: translateX(100%);
  3.   opacity: 0;
  4. }
  5. .page-enter-active {
  6.   transform: translateX(0);
  7.   opacity: 1;
  8.   transition: all 0.3s ease;
  9. }
  10. .page-exit {
  11.   transform: translateX(0);
  12.   opacity: 1;
  13. }
  14. .page-exit-active {
  15.   transform: translateX(-100%);
  16.   opacity: 0;
  17.   transition: all 0.3s ease;
  18. }
复制代码

4.3 加载动画

加载动画是提升用户等待体验的重要元素,它能够减轻用户在等待过程中的焦虑感。

旋转加载器是最常见的加载动画之一:
  1. .spinner {
  2.   width: 50px;
  3.   height: 50px;
  4.   border: 5px solid #f3f3f3;
  5.   border-top: 5px solid #3498db;
  6.   border-radius: 50%;
  7.   animation: spin 1s linear infinite;
  8. }
  9. @keyframes spin {
  10.   0% { transform: rotate(0deg); }
  11.   100% { transform: rotate(360deg); }
  12. }
复制代码

脉冲加载器通过元素的大小变化表示加载状态:
  1. .pulse-loader {
  2.   display: inline-block;
  3.   width: 20px;
  4.   height: 20px;
  5.   border-radius: 50%;
  6.   background-color: #3498db;
  7.   animation: pulse 1.5s ease-in-out infinite;
  8. }
  9. @keyframes pulse {
  10.   0% {
  11.     transform: scale(0);
  12.     opacity: 1;
  13.   }
  14.   100% {
  15.     transform: scale(1);
  16.     opacity: 0;
  17.   }
  18. }
复制代码

4.4 滚动触发动画

滚动触发动画能够根据用户的滚动位置触发动画效果,增强页面的交互性和趣味性。

当用户滚动到特定位置时,元素淡入显示:
  1. .fade-in {
  2.   opacity: 0;
  3.   transform: translateY(20px);
  4.   transition: opacity 0.6s ease, transform 0.6s ease;
  5. }
  6. .fade-in.visible {
  7.   opacity: 1;
  8.   transform: translateY(0);
  9. }
复制代码

配合JavaScript检测元素是否进入视口:
  1. document.addEventListener('DOMContentLoaded', function() {
  2.   const fadeElements = document.querySelectorAll('.fade-in');
  3.   
  4.   function checkFade() {
  5.     fadeElements.forEach(element => {
  6.       const elementTop = element.getBoundingClientRect().top;
  7.       const elementBottom = element.getBoundingClientRect().bottom;
  8.       
  9.       if (elementTop < window.innerHeight && elementBottom > 0) {
  10.         element.classList.add('visible');
  11.       }
  12.     });
  13.   }
  14.   
  15.   window.addEventListener('scroll', checkFade);
  16.   checkFade(); // 初始检查
  17. });
复制代码

视差滚动效果通过不同速度的滚动创造深度感:
  1. .parallax-container {
  2.   height: 100vh;
  3.   overflow-x: hidden;
  4.   overflow-y: auto;
  5.   perspective: 1px;
  6. }
  7. .parallax-element {
  8.   position: absolute;
  9.   top: 0;
  10.   right: 0;
  11.   bottom: 0;
  12.   left: 0;
  13.   transform: translateZ(-1px) scale(2);
  14. }
复制代码

4.5 悬停效果

悬停效果是提升用户交互体验的重要手段,它能够为用户提供视觉反馈,增强界面的交互性。

图片悬停时的缩放效果能够增强视觉吸引力:
  1. .image-container {
  2.   overflow: hidden;
  3.   width: 300px;
  4.   height: 200px;
  5. }
  6. .image-container img {
  7.   width: 100%;
  8.   height: 100%;
  9.   object-fit: cover;
  10.   transition: transform 0.3s ease;
  11. }
  12. .image-container:hover img {
  13.   transform: scale(1.1);
  14. }
复制代码

卡片悬停时的提升效果能够增强界面的层次感:
  1. .card {
  2.   background: #fff;
  3.   border-radius: 8px;
  4.   box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  5.   transition: transform 0.3s ease, box-shadow 0.3s ease;
  6. }
  7. .card:hover {
  8.   transform: translateY(-5px);
  9.   box-shadow: 0 10px 20px rgba(0,0,0,0.15);
  10. }
复制代码

4.6 微交互

微交互是指小型的、有目的的动画效果,它们能够增强用户体验,提供即时反馈,并使界面更加生动。

自定义复选框的动画效果能够增强表单的交互体验:
  1. .checkbox-container {
  2.   display: inline-block;
  3.   position: relative;
  4.   padding-left: 30px;
  5.   cursor: pointer;
  6. }
  7. .checkbox-container input {
  8.   position: absolute;
  9.   opacity: 0;
  10.   cursor: pointer;
  11. }
  12. .checkmark {
  13.   position: absolute;
  14.   top: 0;
  15.   left: 0;
  16.   height: 20px;
  17.   width: 20px;
  18.   background-color: #eee;
  19.   border-radius: 4px;
  20.   transition: background-color 0.3s ease;
  21. }
  22. .checkbox-container:hover input ~ .checkmark {
  23.   background-color: #ccc;
  24. }
  25. .checkbox-container input:checked ~ .checkmark {
  26.   background-color: #3498db;
  27. }
  28. .checkmark:after {
  29.   content: "";
  30.   position: absolute;
  31.   display: none;
  32.   left: 7px;
  33.   top: 3px;
  34.   width: 5px;
  35.   height: 10px;
  36.   border: solid white;
  37.   border-width: 0 2px 2px 0;
  38.   transform: rotate(45deg);
  39.   transition: opacity 0.3s ease;
  40. }
  41. .checkbox-container input:checked ~ .checkmark:after {
  42.   display: block;
  43.   animation: checkmark 0.3s ease;
  44. }
  45. @keyframes checkmark {
  46.   0% {
  47.     opacity: 0;
  48.     transform: rotate(45deg) scale(0);
  49.   }
  50.   100% {
  51.     opacity: 1;
  52.     transform: rotate(45deg) scale(1);
  53.   }
  54. }
复制代码

按钮点击时的涟漪效果能够增强用户的操作反馈:
  1. .button {
  2.   position: relative;
  3.   overflow: hidden;
  4.   background-color: #3498db;
  5.   color: white;
  6.   border: none;
  7.   padding: 12px 24px;
  8.   border-radius: 4px;
  9.   cursor: pointer;
  10.   transition: background-color 0.3s ease;
  11. }
  12. .ripple {
  13.   position: absolute;
  14.   border-radius: 50%;
  15.   background-color: rgba(255, 255, 255, 0.6);
  16.   transform: scale(0);
  17.   animation: ripple 0.6s linear;
  18. }
  19. @keyframes ripple {
  20.   to {
  21.     transform: scale(4);
  22.     opacity: 0;
  23.   }
  24. }
复制代码

配合JavaScript创建涟漪效果:
  1. document.querySelectorAll('.button').forEach(button => {
  2.   button.addEventListener('click', function(e) {
  3.     const ripple = document.createElement('span');
  4.     ripple.classList.add('ripple');
  5.    
  6.     const rect = this.getBoundingClientRect();
  7.     const size = Math.max(rect.width, rect.height);
  8.     const x = e.clientX - rect.left - size / 2;
  9.     const y = e.clientY - rect.top - size / 2;
  10.    
  11.     ripple.style.width = ripple.style.height = size + 'px';
  12.     ripple.style.left = x + 'px';
  13.     ripple.style.top = y + 'px';
  14.    
  15.     this.appendChild(ripple);
  16.    
  17.     setTimeout(() => {
  18.       ripple.remove();
  19.     }, 600);
  20.   });
  21. });
复制代码

5. CSS3动画效果分析与最佳实践

5.1 性能优化

虽然CSS3动画能够显著提升用户体验,但不当的实现可能会导致性能问题。以下是一些优化CSS3动画性能的最佳实践:

在可能的情况下,优先使用transform和opacity属性来实现动画效果,因为这些属性不会触发重排(reflow),只会触发重绘(repaint)或合成(composite),性能更好。
  1. /* 好的做法:使用transform */
  2. .element {
  3.   transform: translateX(100px);
  4.   transition: transform 0.3s ease;
  5. }
  6. /* 避免的做法:使用left属性 */
  7. .element {
  8.   left: 100px;
  9.   transition: left 0.3s ease;
  10. }
复制代码

will-change属性可以提前告知浏览器元素将要发生变化,让浏览器提前做好准备,从而提高动画性能。
  1. .element {
  2.   will-change: transform, opacity;
  3. }
复制代码

但需要注意的是,will-change属性不应过度使用,只在确实需要性能优化的动画元素上使用。

过多的动画元素可能会导致性能下降,特别是在移动设备上。在设计动画时,应尽量减少同时进行动画的元素数量。

通过启用硬件加速,可以将动画渲染工作交给GPU处理,从而提高性能。
  1. .element {
  2.   transform: translateZ(0);
  3.   /* 或者 */
  4.   transform: translate3d(0, 0, 0);
  5.   /* 或者 */
  6.   will-change: transform;
  7. }
复制代码

5.2 可访问性考虑

在设计CSS3动画时,需要考虑到所有用户,包括那些可能对动画敏感的用户。以下是一些提高动画可访问性的最佳实践:

通过媒体查询prefers-reduced-motion,可以检测用户是否减少了动画的偏好,并相应地调整动画效果。
  1. /* 默认动画 */
  2. .element {
  3.   animation: slideIn 0.5s ease;
  4. }
  5. /* 如果用户偏好减少动画,则禁用动画 */
  6. @media (prefers-reduced-motion: reduce) {
  7.   .element {
  8.     animation: none;
  9.   }
  10. }
复制代码

对于重要的信息传递,不应仅依赖动画效果,而应提供替代方案,确保所有用户都能获取相同的信息。

5.3 动画时长与缓动函数

动画的时长和缓动函数对用户体验有着重要影响。以下是一些选择动画时长和缓动函数的最佳实践:

动画时长应根据动画的复杂性和目的来选择:

• 微交互:100-300ms
• 简单过渡:300-500ms
• 复杂动画:500-1000ms
  1. /* 微交互 */
  2. .button {
  3.   transition: transform 0.2s ease;
  4. }
  5. /* 简单过渡 */
  6. .modal {
  7.   transition: opacity 0.3s ease, transform 0.3s ease;
  8. }
  9. /* 复杂动画 */
  10. .complex-animation {
  11.   animation: complexMove 0.8s ease;
  12. }
复制代码

缓动函数决定了动画的速度变化,不同的缓动函数可以传达不同的感觉:

• ease:默认值,缓慢开始,然后加速,然后减速
• ease-in:缓慢开始,然后加速
• ease-out:快速开始,然后减速
• ease-in-out:缓慢开始,加速,然后减速
• cubic-bezier():自定义缓动函数
  1. /* 自然感觉 */
  2. .natural-animation {
  3.   transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  4. }
  5. /* 弹性效果 */
  6. .bouncy-animation {
  7.   transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  8. }
复制代码

5.4 响应式设计中的动画

在响应式设计中,动画效果需要适应不同的屏幕尺寸和设备性能。以下是一些在响应式设计中处理动画的最佳实践:
  1. /* 小屏幕上简化动画 */
  2. @media (max-width: 768px) {
  3.   .element {
  4.     animation: simpleMove 0.3s ease;
  5.   }
  6. }
  7. /* 大屏幕上使用复杂动画 */
  8. @media (min-width: 769px) {
  9.   .element {
  10.     animation: complexMove 0.8s ease;
  11.   }
  12. }
复制代码
  1. /* 假设我们可以通过JavaScript检测设备性能并添加类名 */
  2. .low-performance-device .element {
  3.   animation: none;
  4.   transition: none;
  5. }
  6. .high-performance-device .element {
  7.   animation: complexMove 0.8s ease;
  8. }
复制代码

6. 案例分析:成功的CSS3动画应用实例

6.1 Apple官网

Apple官网是CSS3动画应用的典范,其产品页面通过精心设计的动画效果,展示了产品的特性和美感。例如,在MacBook Pro页面中,滚动时的视差效果和产品展示动画,不仅增强了视觉吸引力,还帮助用户更好地理解产品的特性。

6.2 Stripe

Stripe的支付表单通过微妙的动画效果,提供了流畅的用户体验。例如,当用户输入信用卡信息时,输入框的平滑过渡和实时验证反馈,不仅美观,还增强了用户对表单填写过程的信心。

6.3 Airbnb

Airbnb的搜索结果页面通过卡片悬停效果和筛选动画,提供了直观的交互体验。这些动画效果不仅美观,还帮助用户更好地理解界面的工作方式,提高了用户的操作效率。

7. 未来趋势与展望

随着Web技术的不断发展,CSS3动画也在不断演进。以下是一些未来可能的趋势:

7.1 更强大的动画控制

未来的CSS可能会提供更强大的动画控制能力,如更复杂的关键帧控制、动画序列管理、条件动画等。

7.2 与Web Animations API的深度整合

CSS动画与Web Animations API的深度整合将使开发者能够更灵活地控制动画,同时保持CSS动画的性能优势。

7.3 基于物理的动画

基于物理的动画模型可能会成为未来的趋势,使动画效果更加自然和真实。

7.4 AI驱动的动画

人工智能可能会被用于自动生成和优化动画效果,根据用户行为和偏好自动调整动画参数。

8. 结论

CSS3动画作为现代网页设计的重要组成部分,对提升用户体验具有关键作用。通过提供视觉反馈、引导用户注意力、提升感知性能、增强情感连接和提高交互直观性,CSS3动画能够显著改善用户与网站的交互体验。

在实际应用中,CSS3动画被广泛用于导航菜单、页面过渡、加载动画、滚动触发动画、悬停效果和微交互等方面,为用户创造流畅、直观、愉悦的交互体验。

然而,要充分发挥CSS3动画的优势,开发者需要关注性能优化、可访问性、动画时长与缓动函数的选择,以及在响应式设计中的动画处理。通过遵循最佳实践,开发者可以创建既美观又高效的动画效果。

随着Web技术的不断发展,CSS3动画将继续演进,为用户提供更加丰富、自然的交互体验。作为网页设计师和开发者,我们需要不断学习和探索新的动画技术,以创造更好的用户体验。

总之,CSS3动画不仅是一种视觉装饰,更是一种提升用户体验的强大工具。通过合理、有目的地应用CSS3动画,我们可以创造更加吸引人、直观、高效的网页交互体验,满足现代用户对高质量网页体验的期望。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

0

主题

763

科技点

497

积分

候风辨气

积分
497
发表于 2025-10-5 12:27:13 | 显示全部楼层 [标记阅至此楼]
感謝分享
温馨提示:看帖回帖是一种美德,您的每一次发帖、回帖都是对论坛最大的支持,谢谢! [这是默认签名,点我更换签名]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入频道

加入频道

加入社群

加入社群

联系我们|小黑屋|TG频道|RSS

Powered by Pixtech

© 2025 Pixtech Team.