摘要:將炙啖朱亥,持觴勸侯嬴。三杯吐然諾,五岳倒為輕眼花耳熱后,意氣素霓生。救趙揮金槌,邯鄲先震驚。千秋二壯士,烜赫大梁城。縱死俠骨香,不慚世上英。誰能書閣下,白首太玄經。是唐代大詩人李白借樂府古題創作的一首詩。
效果圖:
樣式使用scss和flex布局
這也是制作IM系統的最后一個界面了!
在制作之前參考了qq和千牛
qq將滾動條美化了 而且在無操作的情況下是不會顯示的
滾動條美化::-webkit-scrollbar { /*滾動條整體樣式*/ width: 5px; /*高寬分別對應橫豎滾動條的尺寸*/ height: 1px; } ::-webkit-scrollbar-thumb { /*滾動條里面小方塊*/ border-radius: 10px; -webkit-box-shadow: inset 0 0 5px rgba(228, 57, 60, 0.2); background: rgba(20, 20, 50, 0.6); position: absolute; } ::-webkit-scrollbar-track { /*滾動條里面軌道*/ -webkit-box-shadow: inset 0 0 5px rgba(228, 57, 60, 0.2); border-radius: 10px; background: #EDEDED; position: absolute; }滾動條根據時機顯示
其實這個也很簡單 用的mouseenter 和 mouseleave事件
# script showMessageScrolls(){ this.messageScroll = true; }, hideMessageScrolls(){ this.messageScroll = false; },
這里解釋一下為什么有一個paddingRight
因為我們的滾動條是5px 如果不加 在滾動條顯示的時候頁面會抖動
簡單寫法
@mouseenter="messageScroll = true" @mouseleave="messageScroll = false"頁面滾動 頁面打開時消息列表滾動到底部
this.$nextTick(function () { this.$refs.msgBox.scrollTop = this.$refs.msgBox.scrollHeight })消息發送滾動到底部
this.$refs.msgBox.scrollTop = this.$refs.msgBox.scrollHeight;內容編輯
沒有使用表單元素 直接使用的 contenteditable
因為contenteditable 沒法用雙向數據綁定 不過 可以用數據偵聽器 有很多辦法 但是有很簡單的 使用input事件就行了
script代碼 樣式代碼 Lee
.friend_window { position: absolute; width: 100%; height: 100%; background-image: url("../img/main_1.jpg"); border-radius: 4px; -webkit-user-select: none; background-size: 100% 100%; header { height: 40px; background-color: rgba(0, 0, 0, 0.3); -webkit-app-region: drag; border-radius: 4px 4px 0 0; display: flex; justify-content: space-between; .nickname { color: #FFF; line-height: 40px; font-size: 20px; margin: auto; padding-left: 40px } .buttons { i { display: inline-block; color: #FFF; width: 40px; height: 40px; line-height: 40px; text-align: center; cursor: pointer; -webkit-app-region: no-drag; &:hover { background-color: rgba(255, 255, 255, 0.3); } } } } aside { height: calc(100% - 40px); border-radius: 0 0 4px 4px; display: flex; } nav { width: 240px; position: relative; background-size: 100% 100%; overflow-y: auto; &:after { display: inline-block; content: ""; width: 5px; cursor: e-resize; position: absolute; right: -2px; top: 0; height: 100%; } ul { li.active { background-color: rgba(255, 255, 255, 0.2); } li { list-style: none; height: 60px; padding-left: 10px; cursor: pointer; display: flex; overflow: hidden; align-items: flex-start; &:hover { background-color: rgba(255, 255, 255, 0.2); } .push_right { padding-right: 10px; text-align: center; align-self: center; .time { font-size: 13px; color: #CFD3DA; } .number { display: inline-block; background-color: #e4393c; color: #fff; min-width: 15px; min-height: 15px; padding: 0 2px; line-height: 15px; border-radius: 50%; text-align: center; font-size: 12px; } } .msg_box { align-self: center; flex: 1; color: #EFF1F3; .messages { color: #CFD3DA; } } .avatar { width: 45px; height: 45px; align-self: center; margin-right: 10px; img { width: 100%; height: 100%; border-radius: 50%; } } } } } main { background-color: #fff; width: calc(100% - 240px); border-radius: 0 0 4px 0; .message_main { height: calc(100% - 35%); overflow-y: auto; &::-webkit-scrollbar { display: block !important; } .mes_box { display: flex; margin-bottom: 10px; margin-top: 10px; padding: 10px; .avatar { width: 40px; height: 40px; margin-right: 10px; img { width: 100%; height: 100%; border-radius: 50%; } } .message_box { background-color: #FFFFFF; color: #333; padding: 10px; border-radius: 5px; max-width: 72%; position: relative; border: 1px solid #D4D4D4; &::before { content: ""; display: block; position: absolute; width: 10px; height: 10px; border: 1px solid #D4D4D4; border-right: none; border-top: none; background-color: #FFFFFF; border-radius: 3px; transform: rotate(44deg); left: -6px; top: 14px; } } } .me { display: flex; justify-content: flex-end; .message_box { background-color: #A0E759; color: #333; border: 1px solid #77BF41; &::before { display: none; } &::after { content: ""; display: block; position: absolute; width: 10px; height: 10px; border: 1px solid #77BF41; border-bottom: none; border-left: none; border-radius: 3px; background-color: #A0E759; transform: rotate(45deg); right: -6px; top: 14px; } } .avatar { order: 2; margin-left: 10px; } } } .input_box { border-top: 1px solid #ccc; height: calc(100% - 65%); .menubar { height: 30px; width: 100%; display: flex; align-items: center; .icon { display: inline-block; padding: 2px; width: 25px; height: 25px; cursor: pointer; margin-right: 5px; margin-left: 5px; &:hover { background-color: rgba(0, 0, 0, 0.1); } } } .footerbar { display: flex; height: 70px; align-items: center; justify-content: flex-end; padding-right: 20px; button { margin: 0 10px; padding-left: 30px; padding-right: 30px; } } .input { font-size: 16px; padding: 4px 8px; overflow-y: auto; height: calc(100% - 70px - 30px); background-color: #fff; &::-webkit-scrollbar { display: block !important; } } } } } .icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; }聲明
代碼只為學習使用,如果有個人或者機構使用該代碼帶來的侵權行為,與本人無關
如果代碼有不合理之處請大家提出
有一個問題就是左側的列表是沒法拉伸的 不過已經做了樣式了 如果不想要的可以去掉這個css代碼
&:after { display: inline-block; content: ""; width: 5px; cursor: e-resize; position: absolute; right: -2px; top: 0; height: 100%; }
我的博客即將同步至騰訊云+社區,邀請大家一同入駐:https://cloud.tencent.com/dev...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99374.html
摘要:首先來看看的登錄界面準備開發制作一個窗口先主進程代碼暫時調用界面基本布局我們先大概做一個這樣的界面頁面代碼樣式代碼取消全部的外邊距和內邊距設置窗口的樣式設置手型加一個邊框調試樣式最后要刪除或者更改設置寬度必須要和主進程中設置的一樣不能大于主 首先來看看qq的登錄界面:showImg(https://segmentfault.com/img/bVbiu16?w=483&h=458); 準...
摘要:效果預覽尺寸測量百度網盤客戶端的尺寸是主界面頂部開始制作下載安裝制作登錄界面首先將主界面隱藏掉只需要在主進程里面設置就可以了之后制作一個登錄界面創建一個在主進程之中引入代碼創建路由創建登錄界面樣式代碼微軟雅黑圖標下載去阿里 效果預覽 showImg(https://segmentfault.com/img/bVbizN2?w=1512&h=622); 尺寸測量 百度網盤客戶端的尺寸是:...
閱讀 4088·2021-10-08 10:04
閱讀 3068·2021-08-11 11:20
閱讀 2736·2021-07-25 21:37
閱讀 2687·2019-08-30 12:44
閱讀 2312·2019-08-30 11:12
閱讀 1318·2019-08-26 13:45
閱讀 2350·2019-08-26 11:53
閱讀 3062·2019-08-26 11:32