mirror of
https://github.com/LingChair/LingChair-V0.git
synced 2025-12-08 18:15:50 +08:00
chore: 剪贴板相关
This commit is contained in:
@@ -43,3 +43,12 @@ body {
|
|||||||
margin-top: 60px;
|
margin-top: 60px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[n-id=pageChatSeesion]::after {
|
||||||
|
content: "";
|
||||||
|
position: sticky;
|
||||||
|
bottom: 0;
|
||||||
|
display: block;
|
||||||
|
height: var(--pseudo-height); /* 设置伪元素的高度 */
|
||||||
|
z-index: -1; /* 防止遮挡实际内容 */
|
||||||
|
}
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
<!-- 代替私人 fixed 并提供更好的兼容性 -->
|
<!-- 代替私人 fixed 并提供更好的兼容性 -->
|
||||||
<script src="https://cdn.jsdelivr.net/gh/wilddeer/stickyfill@2.1.0/dist/stickyfill.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/gh/wilddeer/stickyfill@2.1.0/dist/stickyfill.min.js"></script>
|
||||||
<script src="https://unpkg.com/jquery@3.7.1/dist/jquery.min.js"></script>
|
<script src="https://unpkg.com/jquery@3.7.1/dist/jquery.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>
|
||||||
<link rel="icon" href="icon.ico" />
|
<link rel="icon" href="icon.ico" />
|
||||||
<title>铃之椅</title>
|
<title>铃之椅</title>
|
||||||
</head>
|
</head>
|
||||||
@@ -49,7 +50,7 @@
|
|||||||
class="mdui-theme-primary-teal mdui-theme-accent-teal mdui-drawer-body-left mdui-appbar-with-toolbar mdui-theme-layout-auto"
|
class="mdui-theme-primary-teal mdui-theme-accent-teal mdui-drawer-body-left mdui-appbar-with-toolbar mdui-theme-layout-auto"
|
||||||
id="app">
|
id="app">
|
||||||
|
|
||||||
<input n-id="textCopier" class="mdui-hidden" />
|
<input n-id="textCopierBtn" class="mdui-hidden" />
|
||||||
|
|
||||||
<div id="lingchair-app" style="height: 100%;">
|
<div id="lingchair-app" style="height: 100%;">
|
||||||
<!-- 侧滑栏 -->
|
<!-- 侧滑栏 -->
|
||||||
@@ -94,7 +95,10 @@
|
|||||||
<a onclick="ContactsList.reloadList()" n-id="contactsRefresh" class="mdui-btn mdui-btn-icon mdui-ripple">
|
<a onclick="ContactsList.reloadList()" n-id="contactsRefresh" class="mdui-btn mdui-btn-icon mdui-ripple">
|
||||||
<i class="mdui-icon material-icons">refresh</i>
|
<i class="mdui-icon material-icons">refresh</i>
|
||||||
</a>
|
</a>
|
||||||
<a class="mdui-btn mdui-btn-icon mdui-ripple" n-id="switchNotifications" mdui-tooltip="{content:'开/关通知'}">
|
<a onclick="ContactsList.openAddDialog()" n-id="contactsAdd" class="mdui-btn mdui-btn-icon mdui-ripple">
|
||||||
|
<i class="mdui-icon material-icons">add</i>
|
||||||
|
</a>
|
||||||
|
<a class="mdui-btn mdui-btn-icon mdui-ripple" n-id="switchNotifications">
|
||||||
<i class="mdui-icon material-icons" n-id="switchNotificationsIcon">notifications_off</i>
|
<i class="mdui-icon material-icons" n-id="switchNotificationsIcon">notifications_off</i>
|
||||||
</a>
|
</a>
|
||||||
<a mdui-menu="{target: '#appbar-menu'}" class="mdui-btn mdui-btn-icon mdui-ripple">
|
<a mdui-menu="{target: '#appbar-menu'}" class="mdui-btn mdui-btn-icon mdui-ripple">
|
||||||
@@ -136,7 +140,7 @@
|
|||||||
<div class="mdui-center" style="margin: 15px;"><a href="javascript:;" onclick="ChatMsgAdapter.loadMore()"
|
<div class="mdui-center" style="margin: 15px;"><a href="javascript:;" onclick="ChatMsgAdapter.loadMore()"
|
||||||
class="mdui-text-color-theme">点我</a>继续加载前面的聊天记录, 或者<a href="javascript:;"
|
class="mdui-text-color-theme">点我</a>继续加载前面的聊天记录, 或者<a href="javascript:;"
|
||||||
onclick="ChatMsgAdapter.scrollToBottom()" class="mdui-text-color-theme">回到底部</a></div>
|
onclick="ChatMsgAdapter.scrollToBottom()" class="mdui-text-color-theme">回到底部</a></div>
|
||||||
<div n-id="pageChatSeesion" style="flex: 1 1 auto;display: flex;flex-direction: column;"></div>
|
<div n-id="pageChatSeesion" style="flex: 1 1 auto;display: flex;flex-direction: column;position: relative;"></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 妈的黑化了 私人玩意这么难整 早知道 z-index 弄死它得了 浪费我时间 我就没试过这么离谱的样式表 第三方库真难写CSS 就应该先写后端的 啊啊啊啊啊啊 -->
|
<!-- 妈的黑化了 私人玩意这么难整 早知道 z-index 弄死它得了 浪费我时间 我就没试过这么离谱的样式表 第三方库真难写CSS 就应该先写后端的 啊啊啊啊啊啊 -->
|
||||||
<!-- 不黑化了 因为 stickyfill -->
|
<!-- 不黑化了 因为 stickyfill -->
|
||||||
|
|||||||
@@ -189,11 +189,12 @@ if (localStorage.useNotifications == "true")
|
|||||||
|
|
||||||
// https://www.runoob.com/w3cnote/javascript-copy-clipboard.html
|
// https://www.runoob.com/w3cnote/javascript-copy-clipboard.html
|
||||||
function copyText(t) {
|
function copyText(t) {
|
||||||
let cp = viewBinding.textCopier.get(0)
|
let btn = viewBinding.textCopierBtn
|
||||||
cp.value = t
|
btn.attr("data-clipboard-text", t)
|
||||||
cp.select()
|
new ClipboardJS(btn.get(0)).on('success', (e) => {
|
||||||
cp.setSelectionRange(0, 99999)
|
e.clearSelection()
|
||||||
navigator.clipboard.writeText(cp.value)
|
})
|
||||||
|
btn.click()
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://zhuanlan.zhihu.com/p/162910462
|
// https://zhuanlan.zhihu.com/p/162910462
|
||||||
@@ -407,8 +408,10 @@ class ChatMsgAdapter {
|
|||||||
static addSystemMsg(m, re) {
|
static addSystemMsg(m, re) {
|
||||||
let e
|
let e
|
||||||
if (re)
|
if (re)
|
||||||
|
// 加到头部
|
||||||
e = $($.parseHTML(m)).prependTo(viewBinding.pageChatSeesion)
|
e = $($.parseHTML(m)).prependTo(viewBinding.pageChatSeesion)
|
||||||
else
|
else
|
||||||
|
// 加到尾部
|
||||||
e = $($.parseHTML(m)).appendTo(viewBinding.pageChatSeesion)
|
e = $($.parseHTML(m)).appendTo(viewBinding.pageChatSeesion)
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
@@ -416,7 +419,8 @@ class ChatMsgAdapter {
|
|||||||
let elementRect = viewBinding.pageChatSeesion.get(0).getBoundingClientRect()
|
let elementRect = viewBinding.pageChatSeesion.get(0).getBoundingClientRect()
|
||||||
return (elementRect.bottom <= window.innerHeight)
|
return (elementRect.bottom <= window.innerHeight)
|
||||||
}
|
}
|
||||||
// 不会压栈 只添加消息 返回消息的JQ对象
|
// 添加消息 返回消息的JQ对象
|
||||||
|
// name: 用户id m: 消息 t: 时间戳 re: 默认加到尾部 msgid: 消息id
|
||||||
static async addMsg(name, m, t, re, msgid) {
|
static async addMsg(name, m, t, re, msgid) {
|
||||||
|
|
||||||
let nick = await NickCache.getNick(name) // re.data == null ? name : re.data.nick
|
let nick = await NickCache.getNick(name) // re.data == null ? name : re.data.nick
|
||||||
@@ -716,7 +720,7 @@ else
|
|||||||
// 登录到账号
|
// 登录到账号
|
||||||
let dialogSignIn
|
let dialogSignIn
|
||||||
// 谨防 localStorage 字符串数据大坑
|
// 谨防 localStorage 字符串数据大坑
|
||||||
if (localStorage.isSignIn === "false")
|
if (localStorage.isSignIn == "false")
|
||||||
dialogSignIn = new mdui.Dialog(viewBinding.dialogSignIn.get(0), {
|
dialogSignIn = new mdui.Dialog(viewBinding.dialogSignIn.get(0), {
|
||||||
modal: true,
|
modal: true,
|
||||||
closeOnEsc: false,
|
closeOnEsc: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user