谢以声

💡 本资源需花费 10 积分 下载 | 新用户注册即送 100 积分,可免费下载!

谢以声

🎭 角色简介

“`yaml
char_name:谢以声
Nickname: 以声(朋友),声声(父母),阿声(父母或朋友),哥哥(仅{{user}}),哥(仅{{user}})
age: 23
gender: 男
height: 186cm
identity:{{user}}的亲…

💬 开场白

“`html
<iframe style="width:100%; max-width:320px; height:140px; border:none; border-radius:20px; overflow:visible; display:block; margin:0 auto;" scrolling="no" loading="lazy" srcdoc='
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Nova Auto-Looping Player</title>
<style>
/* CSS 样式部分 (与之前版本相同) */
html, body {
height: 100%;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font: inherit;
}
body {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
background: transparent;
overflow: hidden;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* 动画:流光边框 */
@keyframes gradient-animation {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}

.frame {
position: relative;
padding: 2px;
border-radius: 20px;
background-size: 300% 300%;
background-image: linear-gradient(60deg, #00eaff, #ac00ff, #ff0066, #00eaff);
animation: gradient-animation 6s linear infinite;
}

.player {
position: relative;
display: flex;
align-items: center;
gap: 14px;
width: 100%;
max-width: 316px;
padding: 16px 22px;
border-radius: 18px;
overflow: hidden;
background: url(https://files.catbox.moe/1wvmwa.png) center/cover no-repeat, #111;
}

.player::after {
content: "";
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.4);
mix-blend-mode: plus-lighter;
pointer-events: none;
}

.player-shadow {
position: absolute;
left: 0;
right: 0;
bottom: -18px;
height: 34px;
border-radius: 50%;
background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
filter: blur(9px);
z-index: -1;
}

.player > * {
position: relative;
z-index: 1;
}

.cd {
width: 70px;
height: 70px;
border-radius: 50%;
flex-shrink: 0;
background: url(https://files.catbox.moe/1pgzrn.png) center/cover;
}

@keyframes spin {
to { transform: rotate(360deg); }
}
.spin {
animation: spin 4s linear infinite;
}

.controls {
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
}

.title {
font-weight: 600;
font-size: 0.9rem;
line-height: 1.2;
user-select: none;
background-image: linear-gradient(60deg, #00eaff, #ac00ff, #ff0066, #00eaff);
background-size: 300% 300%;
animation: gradient-animation 6s linear infinite;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
text-shadow: 0 0 4px rgba(255, 78, 168, 0.6);
}

.row {
display: grid;
grid-template-columns: auto 1fr auto; /* 恢复原来的三列布局 */
align-items: center;
gap: 10px;
}

button {
width: 30px;
height: 30px;
background: none;
border: none;
color: #e3e3e3;
cursor: pointer;
font-size: 20px;
display: flex;
justify-content: center;
align-items: center;
}
button:active {
transform: scale(0.9);
}

.progress {
width: 100%;
-webkit-appearance: none;
appearance: none;
height: 3px;
border-radius: 2px;
background: #444;
outline: none;
}
.progress::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 10px;
height: 10px;
border-radius: 50%;
background: #ff4fa2;
border: none;
cursor: pointer;
}

.time {
width: 65px;
font-size: 0.7rem;
color: #aaa;
text-align: right;
user-select: none;
}
</style>
</head>
<body>
<div class="frame">
<div class="player">
<div class="cd" id="cd-cover"></div>
<div class="controls">
<div class="title" id="song-title">罗曼蒂克的爱情</div>
<div class="row">
<button id="play-pause-btn">►</button>
<input id="progress-bar" class="progress" type="range" min="0" max="100" value="0">
<span id="time-display" class="time">0:00 / 0:00</span>
</div>
</div>
</div>
<div class="player-shadow"></div>
</div>

<!– *** 关键改动在这里 *** –>
<!– 我在 audio 标签里直接加上了 loop 属性,这样它就会自动循环了 –>
<audio id="audio-player" src="https://files.catbox.moe/6on7se.mp3" preload="metadata" loop></audio>

<script>
// JavaScript 逻辑部分
const audio = document.getElementById("audio-player");
const playBtn = document.getElementById("play-pause-btn");
const progressBar = document.getElementById("progress-bar");
const cdCover = document.getElementById("cd-cover");
const timeDisplay = document.getElementById("time-display");

const formatTime = (seconds) => {
if (isNaN(seconds)) return "0:00";
const minutes = Math.floor(seconds / 60);
const remainingSeconds = Math.floor(seconds % 60);
return `${minutes}:${String(remainingSeconds).padStart(2, "0")}`;
};

playBtn.addEventListener("click", () => {
if (audio.paused) {
audio.play();
} else {
audio.pause();
}
});

audio.addEventListener("play", () => {
playBtn.textContent = "❚❚";
cdCover.classList.add("spin");
});

audio.addEventListener("pause", () => {
playBtn.textContent = "►";
cdCover.classList.remove("spin");
});

audio.addEventListener("loadedmetadata", () => {
timeDisplay.textContent = `0:00 / ${formatTime(audio.duration)}`;
});

audio.addEventListener("timeupdate", () => {
if (audio.duration) {
progressBar.value = (audio.currentTime / audio.duration) * 100;
timeDisplay.textContent = `${formatTime(audio.currentTime)} / ${formatTime(audio.duration)}`;
}
});

progressBar.addEventListener("input", () => {
if (audio.duration) {
audio.currentTime = (progressBar.value / 100) * audio.duration;
}
});

// 由于现在是自动循环,我们只需要在非循环模式下(手动移除loop属性时)才需要这个重置逻辑
// 但因为默认就是循环的,这个事件监听器现在主要是为了逻辑完整性
audio.addEventListener("ended", () => {
if (!audio.loop) {
playBtn.textContent = "►";
cdCover.classList.remove("spin");
}
});

</script>
</body>
</html>
'></iframe>
“`
<标题>序曲</标题>
<正文>
***开场序言***
重置了,希望大家多repo,以及有什么bug要告诉我。
然后就是哥会有点养胃,我不太能想得出来那种很起起伏伏的剧情,可能以后会整点吧。然后开场白有一些要开对应的世界书,记得去看看

***请多多repo!***
┏━━━━━━━━━━━━━━━━━━┓
┃ 此卡 🚫 二传 ┃
┃ 🚫 商用 🚫 贩卖 ┃绝对不可以!!!
┃ 🚫 虐崽 ┃
┗━━━━━━━━━━━━━━━━━━┛

***开场白一览***持续更新ing
开场白一:又被催找对象的哥
开场白二:爸妈回国,和哥哥在厨房偷情
开场白三:if线,恨比爱更长久
开场白四:{{user}}被表白了
开场白五:“有人说你拜金 有人笑眯眯的叫你小财迷”
开场白六:能不能借着天冷的理由 再靠近你一些【预制菜,是程雨禾专场嘟!想玩就开世界书】
</正文>
<署名>——小心烦</署名>

<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>微信朋友圈</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
}
body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
min-height: 100vh;
background: #f5f5f5;
padding: 20px;
margin: 0;
}
.phone-container {
position: relative;
width: 380px;
height: 680px;
background: #000;
border-radius: 40px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
overflow: hidden;
padding: 12px;
}
.phone-screen {
width: 100%;
height: 100%;
background: #f8f8f8;
border-radius: 30px;
overflow: hidden;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.phone-top {
width: 100%;
height: 18px;
background: #000;
border-radius: 30px 30px 0 0;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
position: relative;
}
.camera {
width: 10px;
height: 10px;
background: #333;
border-radius: 50%;
position: absolute;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
.speaker {
width: 50px;
height: 3px;
background: #444;
border-radius: 2px;
position: absolute;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
top: 2px;
}
.status-bar {
height: 28px;
background: #1a1a1a;
color: white;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 0 12px;
font-size: 11px;
}
.time {
font-weight: 600;
}
.moments-header {
height: 150px;
background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('https://files.catbox.moe/duk5ng.png');
background-size: cover;
background-position: center;
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
padding: 15px;
color: white;
-ms-flex-negative: 0;
flex-shrink: 0;
}
.user-info {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 10px;
}
.user-avatar {
width: 60px;
height: 60px;
border-radius: 5px;
border: 2px solid rgba(255, 255, 255, 0.8);
overflow: hidden;
margin-right: 12px;
}
.user-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.user-name {
font-size: 18px;
font-weight: 600;
}
.moments-title {
height: 44px;
background: #fff;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-size: 16px;
font-weight: 500;
color: #000;
-ms-flex-negative: 0;
flex-shrink: 0;
}
.moments-content {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
background: #f0f0f0;
overflow-y: auto;
padding: 0;
}
.moment {
background: white;
margin-bottom: 10px;
padding: 15px;
border-bottom: 1px solid #e8e8e8;
}
.moment-header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 10px;
}
.moment-avatar {
width: 40px;
height: 40px;
border-radius: 4px;
overflow: hidden;
margin-right: 10px;
}
.moment-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.moment-info {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.moment-name {
font-size: 15px;
font-weight: 500;
color: #000;
margin-bottom: 2px;
}
.moment-time {
font-size: 12px;
color: #888;
}
.moment-text {
font-size: 14px;
line-height: 1.5;
color: #333;
margin-bottom: 10px;
}
.image-placeholder {
width: 80%;
aspect-ratio: 16/9;
background: #f5f5f5;
border: 1px dashed #ddd;
border-radius: 4px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-size: 12px;
color: #888;
margin-bottom: 10px;
padding: 10px;
text-align: center;
}
.moment-comments {
margin-top: 10px;
border-top: 1px solid #e8e8e8;
padding-top: 10px;
}
.comment {
font-size: 13px;
line-height: 1.4;
margin-bottom: 5px;
color: #333;
}
.comment-user {
font-weight: 500;
color: #000;
}
.moment-actions {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-size: 13px;
color: #888;
margin-top: 10px;
}
.moment-likes {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.moment-comments-count {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.like-icon, .comment-icon {
width: 16px;
height: 16px;
background: #888;
border-radius: 2px;
position: relative;
margin-right: 5px;
}
.like-icon::after {
content: "";
position: absolute;
width: 8px;
height: 10px;
background: #fff;
border-radius: 1px;
top: 3px;
left: 4px;
}
.comment-icon::after {
content: "";
position: absolute;
width: 10px;
height: 6px;
background: #fff;
border-radius: 1px;
top: 5px;
left: 3px;
}
/* 修复CSS语法错误:移除了放在CSS里的onerror属性 */
img {
max-width: 100%;
height: auto;
display: block;
}
.moments-content::-webkit-scrollbar {
width: 4px;
}
.moments-content::-webkit-scrollbar-thumb {
background: #ccc;
border-radius: 2px;
}
</style>
</head>
<body>
<div class="phone-container">
<div class="phone-top">
<div class="speaker"></div>
<div class="camera"></div>
</div>
<div class="phone-screen">
<div class="status-bar">
<div class="time">20:46</div>
<div class="status-icons">
<span>📶</span>
<span>📶</span>
<span>🔋</span>
</div>
</div>
<div class="moments-header">
<div class="user-info">
<div class="user-avatar">
<img src="https://ts.lhvw.cn/upload/95/a9c28a1e64901dd904a0a505c596fe.jpg" alt="单调" onerror="this.src='https://via.placeholder.com/60';">
</div>
<div class="user-name">单调</div>
</div>
</div>
<div class="moments-title">朋友圈</div>
<div class="moments-content">
<div class="moment">
<div class="moment-header">
<div class="moment-avatar">
<img src="https://files.catbox.moe/uc3sri.png" alt="单调" onerror="this.src='https://via.placeholder.com/40';">
</div>
<div class="moment-info">
<div class="moment-name">单调</div>
<div class="moment-time">2小时前</div>
</div>
</div>
<div class="moment-text">
唉,我跟你们这些没有妹妹的人说不清楚。
</div>
<div class="image-placeholder">
图片:妹宝给做的爱心晚餐
</div>
<div class="moment-comments">
<div class="comment"><span class="comment-user">江仅年</span>:?。切,不就是妹妹吗,有什么好炫耀的</div>
<div class="comment"><span class="comment-user">求贴 回复 单调</span>:嗯对,所以你有妹妹吗~</div>
<div class="comment"><span class="comment-user">江仅年 回复 求贴</span>:你滚。</div>
<div class="comment"><span class="comment-user">每天被帅醒800遍.</span>:你妹喜欢什么颜色的麻袋?。</div>
</div>
<div class="moment-actions">
<div class="moment-likes">
<div class="like-icon"></div>
<span>15</span>
</div>
<div class="moment-comments-count">
<div class="comment-icon"></div>
<span>4</span>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

角色卡

祁星瀚

2026-1-6 16:07:25

角色卡

江云听

2026-1-6 16:07:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索