优化UI:播放按钮等
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m54s
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m54s
This commit is contained in:
parent
efbced3a63
commit
d293077833
@ -188,11 +188,21 @@
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
/* 确保移动端也保持同一行 */
|
||||
@media (max-width: 768px) {
|
||||
.controls {
|
||||
flex-direction: row !important;
|
||||
gap: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
#startButton {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
@ -291,10 +301,32 @@
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
#stopButton {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 50%;
|
||||
background: rgba(220, 53, 69, 0.9);
|
||||
backdrop-filter: blur(10px);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3);
|
||||
padding: 0; /* 确保没有内边距影响居中 */
|
||||
}
|
||||
|
||||
#stopButton:hover:not(:disabled) {
|
||||
background: rgba(200, 35, 51, 0.95);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
#stopButton svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: white;
|
||||
display: block; /* 确保SVG作为块级元素 */
|
||||
margin: auto; /* 额外的居中保证 */
|
||||
}
|
||||
|
||||
#stopButton:disabled {
|
||||
@ -312,8 +344,8 @@
|
||||
</header>
|
||||
|
||||
<div class="main-content">
|
||||
<!-- 音频状态显示 - 显示状态文本 -->
|
||||
<div class="audio-status">
|
||||
<!-- 音频状态显示 - 完全隐藏 -->
|
||||
<div class="audio-status" style="display: none;">
|
||||
<div class="status-indicator">
|
||||
<span id="audioStatus" style="display: none;">未连接</span>
|
||||
</div>
|
||||
@ -353,18 +385,8 @@
|
||||
<svg id="callIcon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" fill="white"/>
|
||||
</svg>
|
||||
<!-- 通话中图标(初始隐藏) -->
|
||||
<svg id="callingIcon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||||
<circle cx="12" cy="12" r="3" fill="white">
|
||||
<animate attributeName="r" values="3;5;3" dur="1.5s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0.5;1" dur="1.5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="12" cy="12" r="8" stroke="white" stroke-width="2" fill="none" opacity="0.6">
|
||||
<animate attributeName="r" values="8;12;8" dur="2s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.6;0.2;0.6" dur="2s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" fill="white" opacity="0.8"/>
|
||||
</svg>
|
||||
<!-- 通话中文字显示(初始隐藏) -->
|
||||
<span id="callingText" style="display: none; color: white; font-size: 14px;">正在通话中</span>
|
||||
</button>
|
||||
<button id="stopButton" class="btn btn-danger" disabled title="结束通话" style="display: none;">
|
||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
|
||||
14
src/index.js
14
src/index.js
@ -832,7 +832,7 @@ class WebRTCChat {
|
||||
this.startButton.disabled = true;
|
||||
this.stopButton.disabled = false;
|
||||
|
||||
// 显示结束通话按钮
|
||||
// 显示停止按钮,确保在同一行
|
||||
this.stopButton.style.display = 'block';
|
||||
|
||||
this.updateAudioStatus('正在通话中', 'connected');
|
||||
@ -1231,12 +1231,12 @@ class WebRTCChat {
|
||||
// 添加图标切换方法
|
||||
switchToCallingIcon() {
|
||||
const callIcon = document.getElementById('callIcon');
|
||||
const callingIcon = document.getElementById('callingIcon');
|
||||
const callingText = document.getElementById('callingText');
|
||||
const startButton = this.startButton;
|
||||
|
||||
if (callIcon && callingIcon && startButton) {
|
||||
if (callIcon && callingText && startButton) {
|
||||
callIcon.style.display = 'none';
|
||||
callingIcon.style.display = 'block';
|
||||
callingText.style.display = 'block';
|
||||
startButton.classList.add('calling');
|
||||
startButton.title = '通话中...';
|
||||
}
|
||||
@ -1244,12 +1244,12 @@ class WebRTCChat {
|
||||
|
||||
switchToDefaultIcon() {
|
||||
const callIcon = document.getElementById('callIcon');
|
||||
const callingIcon = document.getElementById('callingIcon');
|
||||
const callingText = document.getElementById('callingText');
|
||||
const startButton = this.startButton;
|
||||
|
||||
if (callIcon && callingIcon && startButton) {
|
||||
if (callIcon && callingText && startButton) {
|
||||
callIcon.style.display = 'block';
|
||||
callingIcon.style.display = 'none';
|
||||
callingText.style.display = 'none';
|
||||
startButton.classList.remove('calling');
|
||||
startButton.title = '开始通话';
|
||||
startButton.disabled = false;
|
||||
|
||||
@ -423,8 +423,10 @@ header p {
|
||||
}
|
||||
|
||||
.controls {
|
||||
flex-direction: column;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 15px;
|
||||
}
|
||||
|
||||
.text-input-group {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user