唱片旋转播放效果

博客简介

本篇博客介绍一种较为方便的唱片旋转播放效果,我们用audio插入音频,并且在设计一个插入照片的div,当点击播放时,唱片旋转,点击暂停唱片回到原始位置,停止旋转。

效果展示

旋转唱片设计

要点如下

  • 用audio插入音频
  • 设置div插入照片,设置边框为圆形
  • 设置CSS动画
  • 设置监听,当点击播放时,设置div的class为animation2,点击暂停设置div的class为animation2

用audio插入音频

插入视频非常简单,使用audio标签即可,并且设置控件:

<audio src="Music/welcome to new work.mp3" controls="controls">Sorry your brower does not support audio</audio>

在这里插入图片描述

设置div插入照片,设置边框为圆形

.box1 img{
	width: 200px;
	height: 200px;
}
.box2{
	height: 200px;
	width: 500px;
	float: right;
}
.box2 h2{
	font-family: "幼圆";
}

插入图片后,整个布局就做好了:
在这里插入图片描述

设置CSS动画

设置CSS动画,从0~100%设置线性的变化关键帧,整个旋转唱片的设计中,关键的一步是,设置两个class属性,当播放点击时,设置div区域的class属性即可。这里我们设置animation1和animation2两个类,一个状态是infinite永动,另一个是paused停止:

.animation1{	
	width: 200px;
	height: 200px;
	border:1px solid white;
	border-radius: 100px;
	overflow: hidden;
	float: left;
	animation:frame 6s  linear paused;
}
.animation2{	
	width: 200px;
	height: 200px;
	border:1px solid white;
	border-radius: 100px;
	overflow: hidden;
	float: left;
	animation:frame 6s  linear infinite;
}

设置监听

当点击播放时,设置div的class为animation2,点击暂停设置div的class为animation2,如何判断用户是否点击了播放/暂停呢?audio给我们提供了这些事件:

方法属性事件
play()currentSrcplay
pause()currentTimepause
load()videoWidthprogress
canPlayTypevideoHeighterror
 durationtimeupdate
 endedended
 errorabort
 pausedempty
 mutedemptied
 seekingwaiting
 volumeloadedmetadata
 height 
 width 

我们这里根据play和pause事件来判断audio的播放状态,当用户点击暂停,pause返回为1,点击播放play返回为1:

(1)控制唱片的旋转

function player(audio,pic)
{
	if(audio.paused)//当前状态
	{
		pic.setAttribute("class","animation1");
	}
	else
	{
		pic.setAttribute("class","animation2");
	}
}

(2)设置监听:

function playe_Pause()
{
	if(!document.getElementsByTagName) return false;
	var audioes=document.getElementsByTagName("audio");
	var pictures=document.getElementsByTagName('article')[0].getElementsByTagName("img");
	if(!audioes||!pictures) return false;
	audioes[0].addEventListener("pause",function(){
		player(audioes[0],pictures[0].parentNode);
	});
		audioes[0].addEventListener("play",function(){
		player(audioes[0],pictures[0].parentNode);
	});	
}

这里我们为了增强函数的重用性,对函数设置了几个参数,分成了两段,完全可以写在一个函数里。

最后的效果

在这里插入图片描述

### 实现Axure中的唱片旋转动画效果 在 Axure 中创建动态交互和视觉效果可以通过组合使用矩形部件、图像部件以及动态面板来达成。对于模拟唱片旋转效果,主要依赖于动态面板的旋转功能。 #### 使用动态面板制作旋转效果 为了实现这一目标,在页面上放置一个圆形或椭圆形状作为唱片轮廓,并在其内部嵌入一张代表唱片封面的艺术图片[^1]。接着按照如下方式操作: - 创建一个新的 **Dynamic Panel (动态面板)** 并命名为 `Record`。 - 将准备好的唱片图案放入该动态面板内;确保其尺寸适合所定义的空间大小。 - 设置此动态面板的位置属性使其位于画布中心位置以便观察到完整的转动过程[^2]。 #### 添加旋转动作设置 通过配置动态面板的动作可以控制它按指定角度持续自转从而形成连续不断的循环运动模式: - 进入选项卡下的 "Interactions" (互动)部分找到并点击要编辑的对象即之前建立的那个名为 `Record` 的动态面板。 - 对于 OnPageLoad 或者其他触发条件设定 Add Action -> Move/Resize/Rotate 动作选项。 - 在弹出窗口里选择 Rotate To ,输入具体数值比如 360 度表示完成一次全圈回转周期[^3]。 ```javascript // JavaScript 示例代码用于说明概念而非实际应用于 Axure RP 中 var rotationAngle = 360; // 定义每次加载时增加的角度量度数 ``` - 同样在此处还可以调整速度参数以改变播放速率,通常情况下建议保持默认值除非有特殊需求想要加快或者减慢节奏感[^4]。 最后保存所做的更改并将原型预览查看最终成果。如果一切正常的话应该能够看到逼真的黑胶唱片正在平稳而优雅地缓缓运转着[^5]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值