原网址:https://codepen.io/jellynina/...
我拿来改了一点点。
应用了CSS的动画:
<template><div> <div class="boat">  </div>  </div></template><script> export default { name:'boat' }</script><style lang="less" scoped>/*** animation 封装*/// keyframes 封装 @prefix浏览器前缀 @name动画名称 @content动画内容执行函数.keyframes (@prefix,@name,@content) when (@prefix=def) { @keyframes @name { @content(); }}.keyframes (@prefix,@name,@content) { @prefix+'-keyframes' @name { @content(); }}.keyframes (@prefix,@name,@content) when (@prefix=all) { .keyframes(moz,@name,@content); .keyframes(o,@name,@content); .keyframes(webkit,@name,@content); .keyframes(def,@name,@content);}// animation 自定义动画// 1.背景挪动.keyframes(all,bg-move,{ 0% { background-position: 100% -560px; } 100% { background-position: -350% -460px; }});// 2.青蛙挪动.keyframes(all,mike-move,{ 100% { left: 12%; }});// 3.青蛙浮起来.keyframes(all,mike-float,{ 50% { transform: rotateZ(5deg) translateY(-5px); -moz-transform: rotateZ(5deg) translateY(-5px); -o-transform: rotateZ(5deg) translateY(-5px); -webkit-transform: rotateZ(5deg) translateY(-5px); }});// 4.小船挪动.keyframes(all,rock-boat,{ 50% { transform: rotate(-5deg) translateY(-10px); -moz-transform: rotate(-5deg) translateY(-10px); -o-transform: rotate(-5deg) translateY(-10px); -webkit-transform: rotate(-5deg) translateY(-10px); }});// 5.小船蒸汽.keyframes(all,steam-boat,{ 40%, 60% { opacity: .8; } 100% { transform: translate(-15%, -35%) rotateZ(20deg); -moz-transform: translate(-15%, -35%) rotateZ(20deg); -o-transform: translate(-15%, -35%) rotateZ(20deg); -webkit-transform: translate(-15%, -35%) rotateZ(20deg); }});/* Animations 调用------------------------------------------ */// 挪动背景body { background: #F0FCFF url('https://treehouse-code-samples.s3.amazonaws.com/CSS-DD/codepen/stage-12/island.png') repeat-x 100% -460px; background-size: auto; background-size: 780px; animation: bg-move 8s ease-out forwards; -moz-animation:bg-move 8s ease-out forwards; -o-animation:bg-move 8s ease-out forwards; -webkit-animation: bg-move 8s ease-out forwards;}// 船.boat { animation: rock-boat 3s ease-in-out infinite; -moz-animation: rock-boat 3s ease-in-out infinite; -o-animation: rock-boat 3s ease-in-out infinite; -webkit-animation: rock-boat 3s ease-in-out infinite;}// 船的烟,伪元素生成.boat::after { content: ""; animation: steam-boat 4s 2s infinite; -moz-animation: steam-boat 4s 2s infinite; -o-animation: steam-boat 4s 2s infinite; -webkit-animation: steam-boat 4s 2s infinite; display: block; width: 120px; height: 120px; background: url('https://treehouse-code-samples.s3.amazonaws.com/CSS-DD/codepen/stage-12/steam.png') no-repeat; background-size: auto; background-size: 120px; position: absolute; top: -25%; left: 5%; opacity: 0;}.mike { animation: mike-move 6s 6s ease-out forwards, mike-float 3.2s infinite; -moz-animation:mike-move 6s 6s ease-out forwards, mike-float 3.2s infinite; -o-animation:mike-move 6s 6s ease-out forwards, mike-float 3.2s infinite; -webkit-animation: mike-move 6s 6s ease-out forwards, mike-float 3.2s infinite;}</style>