前端用户体验优化: JS & CSS 各类效果代码段
前言
- 不定时更新
- 在线预览 https://zzyper.github.io/opti...
- 在线预览的源码 https://github.com/zzyper/opt...
- 部分内容仅兼容
webkit
内核,其他内核自行查询
可控密度的虚线分隔线 css
.line { height: 1px; width: 100%; transform: scaleY(0.4); -webkit-transform: scaleY(0.4); background-image: linear-gradient(to right, #ccc 0%, #ccc 50%, transparent 50%); background-size: 4px 1px; background-repeat: repeat-x; }
<div class='line'></div>
- 通过更改
background-size
值控制密度展示 - 通过各属性x,y及方向转换实现横/纵向不同的分隔线
文字渐隐 css
.article{ position: relative; } .mask{ position: absolute; width:100%; bottom:0; left: 0; height: 60px; background: linear-gradient(top, rgba(255,255,255,0), #fff); background: -webkit-linear-gradient(top, rgba(255,255,255,0), #fff); }
<div class="article"> 春眠不觉晓<br /> 处处闻啼鸟<br /> 夜来风雨声<br /> 花落知多少 <div class="mask"></div> </div>
- 引导用户下方仍有内容,即将接近底部时将
div.mask
隐藏
弹窗禁止/恢复背景层滚动 css+js
window.onload = function(){ document.getElementById('modalBtn').onclick = function (){switchModalStatus(true)}; document.getElementById('modal').onclick = function (){switchModalStatus(false)}; } function switchModalStatus(needShow){ var modal = document.getElementById('modal'); if(needShow){ modal.style.display = 'block'; disableBodyScroll(); }else{ modal.style.display = 'none'; enableBodyScroll(); } } function disableBodyScroll() { var body = document.body; window.stTemp = Math.max(body.scrollTop, document.documentElement.scrollTop); body.style.overflow = "hidden"; body.style.position = "fixed"; body.style.top = (-window.stTemp+'px'); } function enableBodyScroll() { var body = document.body; body.style.overflow = "scroll"; body.style.position = "static"; body.style.top = '0px'; body.scrollTop = window.stTemp; document.documentElement.scrollTop = window.stTemp; }
.modal{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, .5); z-index: 1; } .modal > .content{ position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); -webkit-transform: translateX(-50%) translateY(-50%); padding: 10px; width: 50%; background: white; border-radius: 12px; }
<button id="modalBtn">点我弹窗</button> <div id="modal" class="modal" style="display:none"> <div class="content">我是弹窗</div> </div>
多行文字溢出显示省略号 css
.text { text-align: left; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
<p class="text">我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容我有很多内容</p>
-webkit-line-clamp
控制显示的行数
相关推荐
86284457 2020-11-10
wanyi0 2020-11-03
PncLogon 2020-08-16
zuixin 2020-05-12
zhangskd 2020-05-10
CloudXli 2020-05-06
ELEMENTS爱乐冬雨 2020-04-21
ALiDan 2020-03-07
86921239 2020-01-13
shangs00 2020-01-08
82921934 2019-12-23
85457218 2013-08-28
84417619 2013-08-26
xhqiang 2019-11-17
从早忙到晚的闲人 2019-11-07
MYzuiai 2019-11-05
rainchxy 2019-11-05
屠龙石头 2013-12-27
晏 2019-11-04