common.styl 3.81 KB
/**
 * minirefresh 的样式
 */

.minirefresh-wrap 
    position: absolute;
    /*
     * 标明了top和bottom  滑动的就是minirefresh-wrap而不再是document.body
     */
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    /*
     * 去除wrap层的滚动条,确保只有scrol层有滚动条
     */
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /**
     * 使用3d加速时,尽可能的使用index,防止浏览器默认给后续的元素创建复合层渲染
     * 因为CSS3中,如果这个元素添加了硬件加速,并且index层级比较低,
     * 在这个元素的后面其它元素(层级比这个元素高的,或者相同的,并且releative或absolute属性相同的),会默认变为复合层渲染
     * 如果处理不当会极大的影响性能,可以用chrome的rending查看
     */
    z-index: 1;



/**
 * 内容区域的布局
 * 一般来说布局内会包含上拉加载动画
 * 但是不会包含下拉刷新动画
 */

.minirefresh-scroll 
    position: relative;
    /*
     * 默认背景色改成白色,直接避免下拉和正文重叠现象,可以覆盖
     */
    background: #fff;

/**
 * 如果开启了body监听scroll,需要将position都设置为releative
 * 否则监听不到
 * 默认这时候会覆盖minirefresh-wrap
 */

.body-scroll-wrap 
    position: relative;



/**
 * 硬件加速样式,
 * 开启后可以GPU渲染
 * 但是代价是该图层需单独渲染
 * 所以虽然效果不错,但慎用
 * 容器有复杂动画时可以开启
 */

.minirefresh-hardware-speedup 
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    transform: translateZ(0);


.minirefresh-hidden 
    display: none !important;




/**
 * 滚动条
 * */
.minirefresh-wrap
    /*
     * 滚动条轨道背景
     * */
    &::-webkit-scrollbar-track
        background-color: transparent;
    /*
     * 滚动条轨道宽度 
     * */
    &::-webkit-scrollbar
        width: 6px;
        
.minirefresh-hide-scrollbar
    /*
     * 滚动条轨道宽度 
     * */
    &::-webkit-scrollbar
        width: 0;
        
.minirefresh-wrap      
    /*
     * 滚动条游标
     * */
    &::-webkit-scrollbar-thumb
        border-radius: 6px;
        background-color: #ccc;
    /*
     * 滚动条游标鼠标经过的颜色变化
     * */
    &::-webkit-scrollbar-thumb
        &:hover
            background-color: #aaa;

@keyframes minirefresh-fade-in
    0% 
        opacity: 0;
    100% 
        opacity: 1;
    

@keyframes minirefresh-fade-out
    0% 
        opacity: 1;
    100% 
        opacity: 0;

@keyframes minirefresh-rotate
    0% 
        -webkit-transform: rotateZ(0deg);
        transform: rotateZ(0deg);
        -moz-transform: rotate(0deg);
    100% 
        -webkit-transform: rotateZ(360deg);
        transform: rotateZ(360deg);
        -moz-transform: rotate(360deg);


.minirefresh-rotate 
    -webkit-animation: minirefresh-rotate 0.6s linear infinite;
    animation: minirefresh-rotate 0.6s linear infinite;


.minirefresh-fade-in 
    -webkit-animation: minirefresh-fade-in .5s linear forwards;
    animation: minirefresh-fade-in .5s linear forwards;


.minirefresh-fade-out 
    pointer-events: none;
    -webkit-animation: minirefresh-fade-out .5s linear forwards;
    animation: minirefresh-fade-out .5s linear forwards;

/**
 * 重写部分toTop样式,可以这样重新(没有空格)
 * .minirefresh-totop.minirefresh-theme-default(或其它主题)
 * 可以在外部重新这个样式来达到自定义的目的
 * 由于totop和theme并列,所以这样取了
 */

.minirefresh-totop 
    position: fixed;
    z-index: 9990;
    right: 10px;
    bottom: 30px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-image: url(images/minirefresh-totop.png);
    background-size: 100% 100%;