mescroll.css 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. /* mescroll
  2. * version 1.4.2
  3. * 2019-08-01 wenju
  4. * http://www.mescroll.com
  5. *
  6. * 温馨提示: mescroll唯一的全局样式: html,body{height:100%},用于固定body的高度满屏; 如果影响到您原本的项目样式,可自行删除
  7. *
  8. * ----- mescroll的html结构解析 ----
  9. *
  10. <body>
  11. <div id="mescroll" class="mescroll">
  12. <div>
  13. //下拉刷新区域 ( mescroll初始化之后自动创建 )
  14. <div class="mescroll-downwarp">
  15. <div class="downwarp-content">
  16. <p class="downwarp-progress"></p> <p class="downwarp-tip">下拉刷新 </p>
  17. </div>
  18. </div>
  19. //界面的具体内容
  20. //<div>界面内容</div>
  21. //数据列表..
  22. //<ul id="dataList" class="data-list">
  23. // <li>数据列表</li>
  24. //空布局 ( 列表无任何数据时, 且配置了warpId时, 会自动创建显示 )
  25. <div class="mescroll-empty">
  26. <img class="empty-icon" src="../img/mescroll-empty.png"/>
  27. <p class="empty-tip">暂无相关数据~</p>
  28. <p class="empty-btn">去逛逛 ></p>
  29. </div>
  30. //</ul>
  31. //上拉加载区域 ( mescroll初始化之后自动创建 )
  32. <div class="mescroll-upwarp">
  33. //加载中..
  34. <p class="upwarp-progress mescroll-rotate"></p><p class="upwarp-tip">加载中..</p>
  35. //无数据
  36. <p class="upwarp-nodata">-- END --</p>
  37. </div>
  38. </div>
  39. </div>
  40. //回到顶部按钮 ( 列表滚动到配置的距离时, 且配置了warpId时, 会自动创建显示, 注意是添加在body中的 )
  41. <img class="mescroll-totop" src="../img/mescroll-totop.png"/>
  42. </body>
  43. *
  44. */
  45. /*设置body的高度,以便正确的获取body高度和触发scroll事件*/
  46. html,
  47. body {
  48. height: 100%;
  49. }
  50. /*使iOS列表滑动流畅*/
  51. body {
  52. -webkit-overflow-scrolling: touch;
  53. }
  54. /*下拉刷新和上拉加载的滑动区域*/
  55. .mescroll {
  56. width: 100%;
  57. height: 100%;
  58. overflow-y: auto;
  59. }
  60. /*启用硬件加速:使动画渲染流畅,解决部分手机闪白屏问题,在下拉刷新和上拉加载触发时启用,结束后移除,避免滥用导致其他兼容性问题*/
  61. .mescroll-hardware {
  62. -webkit-transform: translateZ(0);
  63. -webkit-transform-style: preserve-3d;
  64. -webkit-backface-visibility: hidden;
  65. -webkit-perspective: 1000;
  66. }
  67. /*下拉刷新区域*/
  68. .mescroll-downwarp {
  69. position: relative;
  70. width: 100%;
  71. height: 0;
  72. overflow: hidden;
  73. text-align: center;
  74. }
  75. /*下拉刷新--高度重置的过渡动画*/
  76. .mescroll-downwarp-reset {
  77. -webkit-transition: height 300ms;
  78. transition: height 300ms;
  79. }
  80. /*下拉刷新--内容区,定位于区域底部*/
  81. .mescroll-downwarp .downwarp-content {
  82. position: absolute;
  83. left: 0;
  84. bottom: 0;
  85. width: 100%;
  86. min-height: 30px;
  87. padding: 10px 0;
  88. }
  89. /*上拉加载区域*/
  90. .mescroll-upwarp {
  91. min-height: 30px;
  92. padding: 15px 0;
  93. text-align: center;
  94. visibility: hidden;/*代替display: none,列表快速滑动到底部能及时显示上拉加载的区域*/
  95. }
  96. /*下拉刷新,上拉加载--提示文本*/
  97. .mescroll-downwarp .downwarp-tip,
  98. .mescroll-upwarp .upwarp-tip,
  99. .mescroll-upwarp .upwarp-nodata {
  100. display: inline-block;
  101. font-size: 12px;
  102. color: gray;
  103. vertical-align: middle;
  104. }
  105. .mescroll-downwarp .downwarp-tip,
  106. .mescroll-upwarp .upwarp-tip{
  107. margin-left: 8px;
  108. }
  109. /*下拉刷新,上拉加载--旋转进度条*/
  110. .mescroll-downwarp .downwarp-progress,
  111. .mescroll-upwarp .upwarp-progress {
  112. display: inline-block;
  113. width: 16px;
  114. height: 16px;
  115. border-radius: 50%;
  116. border: 1px solid gray;
  117. border-bottom-color: transparent;
  118. vertical-align: middle;
  119. }
  120. /*旋转动画*/
  121. .mescroll-rotate {
  122. -webkit-animation: mescrollRotate 0.6s linear infinite;
  123. animation: mescrollRotate 0.6s linear infinite;
  124. }
  125. @-webkit-keyframes mescrollRotate {
  126. 0% {
  127. -webkit-transform: rotate(0deg);
  128. }
  129. 100% {
  130. -webkit-transform: rotate(360deg);
  131. }
  132. }
  133. @keyframes mescrollRotate {
  134. 0% {
  135. transform: rotate(0deg);
  136. }
  137. 100% {
  138. transform: rotate(360deg);
  139. }
  140. }
  141. /*无任何数据的空布局*/
  142. .mescroll-empty {
  143. width: 100%;
  144. padding-top: 20px;
  145. text-align: center;
  146. }
  147. .mescroll-empty .empty-icon {
  148. width: 45%;
  149. }
  150. .mescroll-empty .empty-tip {
  151. margin-top: 6px;
  152. font-size: 14px;
  153. color: gray;
  154. }
  155. .mescroll-empty .empty-btn {
  156. max-width: 50%;
  157. margin: 20px auto;
  158. padding: 10px;
  159. border: 1px solid #65AADD;
  160. border-radius: 6px;
  161. background-color: white;
  162. color: #65AADD;
  163. }
  164. .mescroll-empty .empty-btn:active {
  165. opacity: .75;
  166. }
  167. /*回到顶部的按钮*/
  168. .mescroll-totop {
  169. z-index: 9990;
  170. position: fixed;
  171. right: 10px;
  172. bottom: 30px;
  173. width: 36px;
  174. height: 36px;
  175. border-radius: 50%;
  176. opacity: 0;
  177. }
  178. /*显示动画--淡入*/
  179. .mescroll-lazy-in,
  180. .mescroll-fade-in {
  181. -webkit-animation: mescrollFadeIn .5s linear forwards;
  182. animation: mescrollFadeIn .5s linear forwards;
  183. }
  184. @-webkit-keyframes mescrollFadeIn {
  185. 0% {
  186. opacity: 0;
  187. }
  188. 100% {
  189. opacity: 1;
  190. }
  191. }
  192. @keyframes mescrollFadeIn {
  193. 0% {
  194. opacity: 0;
  195. }
  196. 100% {
  197. opacity: 1;
  198. }
  199. }
  200. /*隐藏动画--淡出*/
  201. .mescroll-fade-out {
  202. pointer-events: none;
  203. -webkit-animation: mescrollFadeOut .5s linear forwards;
  204. animation: mescrollFadeOut .5s linear forwards;
  205. }
  206. @-webkit-keyframes mescrollFadeOut {
  207. 0% {
  208. opacity: 1;
  209. }
  210. 100% {
  211. opacity: 0;
  212. }
  213. }
  214. @keyframes mescrollFadeOut {
  215. 0% {
  216. opacity: 1;
  217. }
  218. 100% {
  219. opacity: 0;
  220. }
  221. }
  222. /*滚动条轨道背景(默认在PC端设置)*/
  223. .mescroll-bar::-webkit-scrollbar-track {
  224. background-color: transparent;
  225. }
  226. /*滚动条轨道宽度 (默认在PC端设置)*/
  227. .mescroll-bar::-webkit-scrollbar {
  228. width: 6px;
  229. }
  230. /*滚动条游标 (默认在PC端设置)*/
  231. .mescroll-bar::-webkit-scrollbar-thumb {
  232. border-radius: 6px;
  233. background-color: #ccc;
  234. }
  235. /*滚动条游标鼠标经过的颜色变化 (默认在PC端设置)*/
  236. .mescroll-bar::-webkit-scrollbar-thumb:hover {
  237. background-color: #aaa;
  238. }