结构-行为-样式-Jquery实现延迟加载特效(数据缓冲特效)

最近在做一个地产项目的过程中,原来用的延迟加载的插件在IE下会使浏览器突然缩小,这个让客户很不满意,于是就考虑到兼容性的问题决定自己写一个插件。思路:定义一个代码块,手动加载到页面,然后手动删除。   在项目中调用 的时候就可以实例化这个插件,调用他的打开关闭方法,这个插件主要是在Ajax请求数据的时候需要。

Js代码:

define([ ‘jquery‘], function($){
    function BlockUI(){
        this.boundingBox = null;
    }

    BlockUI.prototype = $.extend({}, {
        renderUI: function(){
            this.boundingBox = $(‘<div  class="ng-scope block-ui">‘+
                ‘<div  class="block-ui-overlay block-ui-visible"></div>‘+
                ‘<div class="block-ui-message-container ">‘+
                    ‘<div class="block-ui-message">‘+
                        ‘<div class="loading-outer">‘+
                            ‘<div class="loading-logo"></div>‘+
                           ‘ <div class="loading-circle"></div>‘+
                        ‘</div>‘+
                    ‘</div>‘+
                    ‘<div class="loading-text ">数据正在加载中</div>‘+
               ‘ </div>‘+
            ‘</div>‘);
            this.boundingBox.appendTo(document.body);
        },
        render: function(container){
            this.renderUI();
            $(container || document.body).append(this.boundingBox);
        },
        start: function(){
            this.render();
        },
        stop: function(){
            this.boundingBox.off();
            this.boundingBox.remove();
        }
    })
    return {
        BlockUI: BlockUI
    }
})

显然,你需要把你插入的代码块样式设置一下:

.block-ui-message-container{width:200px; height: 60px; left: 50%; top: 50%; margin-top: -30px; margin-left: -30px; position: relative;}
.block-ui-message{border: none; background: none;}
.loading-circle{height: 60px; width: 60px; position: absolute; left: 0; top: 0; background: none; overflow: hidden; z-index: 1;    -webkit-animation:loadingCircle 1.5s 0s linear both  infinite;
    animation:loadingCircle 1.5s 0s linear both  infinite;}
@-webkit-keyframes loadingCircle{0% {transform:translate(0,0) rotate(0);}
    100% {transform:translate(0,0) rotate(360deg);}
}
@keyframes loadingCircle{0% {transform:translate(0,0) rotate(0);}100% {transform:translate(0,0) rotate(360deg);}}
.loading-logo{height:50px;width:66px;position:absolute;left:-4px;top:10px;background:url("../images/logogo.png?22020")   no-repeat left top;overflow:hidden;z-index:2;-webkit-animation:loadingLogo 1s 0.2s linear both infinite;-webkit-transform-origin:center bottom;animation:loadingLogo 1s 0.2s linear both infinite;transform-origin:center bottom;}
@-webkit-keyframes loadingLogo{0%{transform:translate(0,0) scale(1,1);}15%{transform:translate(0,4px) scale(1,1.02);}26%{transform:translate(0,-6px) scale(1,1);}38%{transform:translate(0,0) scale(1,1);}50%{transform:translate(0,0) scale(1,1);}100%{ransform:translate(0,0) scale(1,1);}}@keyframes loadingLogo{0%{transform:translate(0,0) scale(1,1);}15%{transform:translate(0,4px) scale(1,1.02);}26%{transform:translate(0,-6px) scale(1,1);}38%{transform:translate(0,0) scale(1,1);}50%{transform:translate(0,0) scale(1,1);}100%{ransform:translate(0,0) scale(1,1);}}.loading-text{position:absolute;bottom:-24px;width:120px;text-align:center;left:-30px;font-size:14px;color:#fff;}.block-ui-overlay.block-ui-visible{opacity:0.6;-ms-filter:"alpha(opacity=60)";}

这样就简单地实现了缓冲加载的效果。

时间: 2024-11-06 18:16:47

结构-行为-样式-Jquery实现延迟加载特效(数据缓冲特效)的相关文章

JQuery属性与样式——样式操作.css()和元素数据的存储.data()

样式操作.css()和元素数据的存储.data() 1   .css()方法用于获取元素样式属性的计算值或者设置元素的css属性 2   .css()获取元素样式属性的计算值的2种方法 .css(propertyName)获取匹配元素集合中的第一个元素的样式属性的计算值 .css(propertyNames)传递一组数组,返回一个对象结果 3    .css()设置元素的css属性的3种方法 .css(propertyName,value)设置css .css(propertyName,func

jQuery图片延迟加载插件jQuery.lazyload

查看演示 website 立即下载 插件描述:jQuery图片延迟加载插件jQuery.lazyload,使用延迟加载在可提高网页下载速度.在某些情况下,它也能帮助减轻服务器负载. 使用方法 引用jquery和jquery.lazyload.js到你的页面 1 2 <script src="jquery-1.11.0.min.js"></script> <script src="jquery.lazyload.js?v=1.9.1"&g

JQuery + XML作为前后台数据交换格式实践

JQuery + xml作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ xml作为一种轻量数据格式,被浏览器js引擎普遍支持,同json格式,但是没有json那么精简. 使用AJAX+xml数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置,

JQuery + JSON作为前后台数据交换格式实践

JQuery + JSON作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ JSON作为一种轻量数据格式,被浏览器js引擎普遍支持,同xml格式. 使用AJAX+JSON数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置, 来实现动态页面,表示

读jQuery之六(缓存数据)

很多同学在项目中都喜欢将数据存储在HTMLElement属性上,如 1 2 3 4 <div data="some data">Test</div> <script>     div.getAttribute('data'); // some data </script> 给页面中div添加了自定义属性“data”及值“some data”.后续JS代码中使用getAttribute获取. jQuery从1.2.3开始提供了data/re

jQuery/CSS3实现图片层叠展开特效

这是一款基于jQuery和CSS3的图片层叠展开特效,让鼠标滑过图片时即可触发这些特效.主要由HTML.CSS以及jQuery代码组成. HTML代码: 把要用到的小图片列出来,HTML结构非常简单. <div id="page_wrap"> <!--Stack 1  --> <div class="image_stack" style="margin-left:600px"> <img id="

jQuery图片延迟加载插件:jquery.lazyload

----------------------------------------------------------------------------------------------- class='lazy' 载入样式,data-original指向图片地址 底部引入jQuery和jQuery.lazyload.js <img class="lazy" data-original="img/bmw_m1_hood.jpg" width="76

Jquery解析Json格式数据

今天稍微学习了一下Json,JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等). 这些特性使JSON成为理想的数据交换语言. JSON建构于两种结构: “名称/值”对的集合(A collection of name/value pairs)

jQuery炫酷3D旋转幻灯片特效插件

iPresenter是一款效果非常炫酷的jQuery和CSS3 3D旋转幻灯片特效插件.你可以使用它来制作产品展示.图片画廊或者各种幻灯片和轮播图特效. 这款幻灯片插件的特点有: 高度灵活和可定制性. 灵活的用户界面的设计. 在单个HTML页面中允许存在多个实例. 可以定制每一个slider的easing效果. 多语言支持. 可以在 iOS 和 Android 上正常工作. 可以选择自动播放模式下鼠标悬停时停止播放幻灯片. 非常容易调整尺寸. 兼容外部字体(如谷歌字体). 有预加载进度条显示.