모바일 인터넷의 급속한 발전과 함께 WeChat 미니 프로그램은 기업과 개인이 비즈니스를 수행하는 중요한 채널 중 하나가 되었습니다. 사용자의 관심을 끌고 미니 프로그램의 사용자 경험을 향상시키기 위해 많은 개발자는 CSS3 애니메이션 기술을 사용하여 정교한 미니 프로그램 인터페이스를 디자인합니다. 이 기사에서는 개발자가 미니 프로그램을 더 잘 디자인할 수 있도록 돕기 위해 PHP의 WeChat 미니 프로그램에서 CSS3 애니메이션을 구현하는 기술을 공유할 것입니다.
1. CSS3 애니메이션 개요
CSS3 애니메이션은 CSS3 속성을 사용하여 요소의 스타일을 변경하여 애니메이션 효과를 만들어내는 기술입니다. 간단한 페이드 인 및 페이드 아웃, 회전, 크기 조절부터 복잡한 경로 애니메이션, 중력 효과 등에 이르기까지 다양한 애니메이션 효과를 얻을 수 있습니다. 기존 JavaScript 애니메이션 효과에 비해 CSS3 애니메이션은 코드가 더 간단할 뿐만 아니라 지연 없이 더 원활하게 실행됩니다.
2. CSS3 애니메이션의 기본 지식
WeChat 애플릿에서 CSS3 애니메이션을 구현하기 전에 먼저 CSS3 애니메이션의 몇 가지 기본 개념과 속성을 이해하겠습니다.
@keyframes는 아래와 같이 애니메이션 효과의 키 프레임을 정의하는 데 사용되는 CSS3 애니메이션의 기본 구문입니다.
@keyframes slideInLeft { from { transform: translateX(-100%); } to { transform: translateX(0); } }
animation은 CSS3 애니메이션 속성의 약어입니다. , 애니메이션 구현 세부 사항 및 애니메이션 이름을 정의하는 기능. 구문은 다음과 같습니다.
animation: 动画名称 持续时间 运动曲线 延迟时间 重复次数 动画播放状态;
예:
.animation { animation: slideInLeft 1s ease 0s 1 normal; }
그중 SlideInLeft는 키 프레임의 이름, 1s는 애니메이션 지속 시간, Ease는 모션 곡선, 0s는 지연 시간, 1은 프레임 수입니다. 반복이고 일반은 애니메이션 재생 상태입니다.
CSS3 애니메이션은 주로 변형 속성을 사용하여 회전, 크기 조절, 평행 이동, 기울기 등과 같은 요소 변형 효과를 얻습니다. 구문은 다음과 같습니다:
transform: 转换函数1(参数1, 参数2, ...) 转换函数2(参数1, 参数2, ...);
예:
.transform { transform: translateX(100px) scale(0.8); }
그 중 TranslateX와 scale은 요소의 수평 이동을 달성하는 데 사용되는 반면 scale은 요소의 크기 조정 효과를 달성하는 데 사용됩니다.
3. PHP는 CSS3 애니메이션을 구현합니다
이제 PHP를 사용하여 WeChat 미니 프로그램에 CSS3 애니메이션 효과를 구현하는 방법을 알아 보겠습니다.
먼저 애니메이션 효과의 관련 속성과 메서드를 캡슐화하는 애니메이션 클래스를 만들어야 합니다. 코드는 다음과 같습니다.
class Animation { public $name; // 动画名称 public $duration; // 动画持续时间 public $timingFunction; // 运动曲线 public $delay; // 延迟时间 public $iterationCount; // 重复次数 public $direction; // 动画播放方向 public $fillMode; // 动画填充模式 public $keyFrames; // 关键帧 public function __construct($name) { $this->name = $name; } public function setDuration($duration) { $this->duration = $duration; } public function setTimingFunction($timingFunction) { $this->timingFunction = $timingFunction; } public function setDelay($delay) { $this->delay = $delay; } public function setIterationCount($iterationCount) { $this->iterationCount = $iterationCount; } public function setDirection($direction) { $this->direction = $direction; } public function setFillMode($fillMode) { $this->fillMode = $fillMode; } public function setKeyFrames($keyFrames) { $this->keyFrames = $keyFrames; } public function __toString() { return $this->serialize(); } private function serialize() { $str = $this->name." { "; $str .= " animation-duration: ".$this->duration."; "; $str .= " animation-timing-function: ".$this->timingFunction."; "; $str .= " animation-delay: ".$this->delay."; "; $str .= " animation-iteration-count: ".$this->iterationCount."; "; $str .= " animation-direction: ".$this->direction."; "; $str .= " animation-fill-mode: ".$this->fillMode."; "; $str .= " animation-name: ".$this->name."; "; $str .= "} "; $str .= "@keyframes ".$this->name." { "; foreach($this->keyFrames as $percent => $properties) { $str .= " ".$percent."% { "; foreach($properties as $property => $value) { $str .= " ".$property.": ".$value."; "; } $str .= " } "; } $str .= "} "; return $str; } }
다음으로, 여러 애니메이션 효과 세트를 캡슐화하기 위해 AnimationSet 클래스를 생성해야 합니다. 코드는 다음과 같습니다.
class AnimationSet { public $animations = array(); // 动画集合 public function addAnimation($animation) { array_push($this->animations, $animation); return $animation; } public function __toString() { $str = ""; foreach($this->animations as $animation) { $str .= $animation->__toString(); } return $str; } }
마지막으로 애니메이션 효과를 위한 CSS 스타일 시트를 생성하고 이를 WeChat 애플릿에 적용해야 합니다. 코드는 다음과 같습니다.
$animation1 = new Animation("slideInLeft"); $animation1->setDuration("1s"); $animation1->setTimingFunction("ease"); $animation1->setDelay("0s"); $animation1->setIterationCount("1"); $animation1->setDirection("normal"); $animation1->setFillMode("both"); $keyFrames1 = array( "0" => array( "transform" => "translateX(-100%)" ), "100" => array( "transform" => "translateX(0)" ) ); $animation1->setKeyFrames($keyFrames1); $animation2 = new Animation("fadeIn"); $animation2->setDuration("1s"); $animation2->setTimingFunction("ease"); $animation2->setDelay("0s"); $animation2->setIterationCount("1"); $animation2->setDirection("normal"); $animation2->setFillMode("both"); $keyFrames2 = array( "0" => array( "opacity" => "0" ), "100" => array( "opacity" => "1" ) ); $animation2->setKeyFrames($keyFrames2); $animationSet = new AnimationSet(); $animationSet->addAnimation($animation1); $animationSet->addAnimation($animation2); echo "<style>".$animationSet->__toString()."</style>";
4. 애니메이션 효과 적용
이제 CSS 스타일 시트를 성공적으로 생성했으므로 다음으로 WeChat 애플릿에 적용해야 합니다. wxml 파일에서는 요소에 애니메이션 속성을 추가하여 애니메이션 효과를 얻을 수 있습니다. 예:
<view class="slideInLeft" animation="{{animation1}}">这是一个左滑进入的动画效果</view> <view class="fadeIn" animation="{{animation2}}">这是一个淡入效果</view>
해당 js 파일에서 애니메이션 효과를 설정하려면 페이지에 onLoad 콜백 함수를 추가해야 합니다.
Page({ data: { animation1: "", animation2: "" }, onLoad: function() { var animation1 = wx.createAnimation({duration: 1000}); animation1.translateX(0).step(); var animation2 = wx.createAnimation({duration: 1000}); animation2.opacity(1).step(); this.setData({ animation1: animation1.export(), animation2: animation2.export() }); } });
onLoad 함수에서 wx.createAnimation 함수를 사용하여 애니메이션을 생성하고 이를 변수로 내보낸 후 wxml 파일의 animation 속성에 할당하여 애니메이션 효과를 적용합니다.
요약
이 글에서는 PHP를 사용하여 WeChat 애플릿에서 CSS3 애니메이션을 구현합니다. CSS3 애니메이션의 기본 속성과 사용법을 자세히 소개하고, 예제 코드를 통해 WeChat 애플릿에서 애니메이션 효과를 적용하는 방법을 보여줍니다. 이 글이 모든 개발자에게 도움이 되어 위챗 미니 프로그램이 더욱 절묘한 애니메이션 효과를 선사할 수 있기를 바랍니다.
위 내용은 PHP는 WeChat 미니 프로그램을 위한 CSS3 애니메이션 기술을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!