客户端实现图片滑动加载,资讯详情页面

展示方案:客户端请求资讯详情数据接口获取 富文本数据 客户端使用WebView展示。

当文章详情篇幅长、包含图片多一次性加载全部图片会造成客户端短暂的卡顿 影响用户体验 所以考虑计划做图片滑动加载 默认使用统一的占位图。

本以为使用一个前端jquery插件(jquery.lazyload.js)就可以解决,应用这个插件后,出现问题所有图片还是一次性加载完成,不是滑动加载,分析发现是因为客户端在实现webview的时候要定义页面中的标题、评论、相关文章等不能够给设置webview的高度为固定手机屏幕高度,所以jquery.lazyload.js的实现思路就不再适用。

最终的解决方法是和客户端交互,通过客户端监测整个webview滑动的高度 把检测的高度值传递给前端js,然后前端js根据传递的滑动高度 计算那些图片在可视区内 控制显示。

前端代码如下:

var elements;
function scrollevent(top) {

    if (elements == null || elements == undefined||elements.length == 0) {
        return;
    }
    elements = $.grep(elements, function (v) {
        var $this = $(v);
        var load = $this.attr("load");
        if (load==undefined) {
            return true;
        }
    });
    elements = $(elements);
    var count = 0;
    elements.each(function () {
        count++;
        var $this = $(this);
        var load = $this.attr("load");
        if (load == undefined) {
            if (parseInt(top) > $this.offset().top) {
                var src = $this.attr("data-original");
                if (src == null || src == undefined) {
                }
                else {
                    $this.attr("src", src);
                    $this.attr("load", 1);
                }
            }
        }
    });
    //$("#dialog div").html(top+‘px‘).parent().show();
}

$(document).ready(function () {
    var dialog = "<div style=‘width:100%;height:100%;left:0;top:0;position:fixed;display:none;‘ id=‘dialog‘><div style=‘background-color:rgba(0,0,0,0.8);color:white;font-size:16px;position:fixed;width:260px;text-align:center;border-radius:6px;z-index:1;top:0px;left:50%;margin-left:-130px;‘>sdfasdfasdf</div></div>";
    $(‘body‘).append(dialog);
    elements = $("img");
});

需要约定好接口返回的富文本的自定义属性data-original为原图地址,src指定为占位图。

然后就是就是针对android、ios客户端实现跟前端js交互,调用js方法scrollevent  具体方法可百度。

每日一图

时间: 2024-10-18 21:09:34

客户端实现图片滑动加载,资讯详情页面的相关文章

jquery实现图片预加载

使用jquery实现图片预加载提高页面加载速度和用户体,本就为大家详细分析jquery图片预加载的实现原理. 什么时候使用图片预加载? 如果页面使用了很多不是最初加载便可见的图片,有必要进行预加载: $.preloadImages = function () { for (var i = 0; i < arguments.length; i++) { $('img').attr('src', arguments[i]); }};$.preloadImages('img/hover-on.png'

动画图片预加载

我们想要动画,但是在很多时候都是要先加载元素图片之后才能进行动画,有时候更惨的是图片加载一半或者一部分就进行了动画.如何解决?? ##问题:平行事件(parallel Events) 当我们在加载一个网站的时候,浏览器为了提高速度,浏览器会在加载和渲染html以及css的同事加载起来的内容,例如图片. 这种加载模式意味着我们可更快的看到一些页面的布局和文本内容,但是如果你创建了一个巨大的,杂志风格(通常需要很多大图)的头部的话,图片不会及时加载. ##load事件和动画执行状态 浏览器提供了便捷

jquery实现图片延时加载[转]

本文转自:http://www.cnblogs.com/wscdzl/archive/2012/09/03/2668838.html 原理: 通过 jQuery 插件 lazyload 使得在浏览器可见区域外的图片不会被加载,当图片被用户滚动到浏览器可见区域时图片才进行加载,有点类似使用 Google 搜索图片时的效果.很明显,通过使用图片延时加载可以提高页面的加载速度. 实现过程: 首先是引入jquery文件和插件文件.jquery文件在这里我就不再赘述了.下面我贴出插件文件,我们将该文件命名

Android新浪微博客户端(七)——ListView中的图片异步加载、缓存

原文出自:方杰|http://fangjie.sinaapp.com/?p=193转载请注明出处 最终效果演示:http://fangjie.sinaapp.com/?page_id=54该项目代码已经放到github:https://github.com/JayFang1993/SinaWeibo 一.ListView的图片异步加载 我们都知道对每一个Weibo Item都有用户头像,而且每一条微博还可能带有图片.如果在加载列表的同时加载图片,这样有几个缺点,第一很费事,界面卡住,用户体验很不

探究drawable图片的加载原理和缩放规律

自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义View系列教程06–详解View的Touch事件处理 自定义View系列教程07–详解ViewGroup分发Touch事件 自定义View系列教程08–滑动冲突的产生及其处理

前端插件实现图片懒加载

一.echo.js: 我们在开发页面的时候肯定会遇到图片比较多的时候,虽然我们可能有图片分布式的服务器,但是在客户端还是会有很大的性能开销.为了用户体验,特别是对首屏加载速度要求很高的,通常我们会考虑图片延时加载,lazyloading这款插件已经能很好地实现这一功能,可是是基于jQuery,对于移动端可能不太实用.一个非常简单实用叫echo的插件,3k左右特别适合移动端使用.步骤如下: 1.在页面中需要引入echo.css和echo.min.js 2.对需要进行延迟加载的图片采用如下写法: <

页面图片懒加载

一.页面滚动加载图片的理解 当一个网页含有大量的图片的时候,往往在打开页面的加载的很慢,如现在的大型电商.新闻.微博等,如果一下加载整个网页的所有图片,那会是一个缓慢的过程,要想快速的浏览网页,我们这时候就需要用到了在滚动或滑动页面的时候加载图片的方法.即图片懒加载!!! 二.实现懒加载的思路 当打开页面的时候,刚开始不给显示图片的位置放图片,等滚动或滑动到哪里的时候在获取图片.当然如果我们不给图片src中放图片,就会出现先找不到图片的提示,这样肯定是不行的. 所以我们在放图片的位置刚开始让一张

universal-image-loader图片异步加载

编辑新增: /** 针对listview等加载优化: 监听滑动状态,来设置当前是否要进行加载图片. 滑动状态时不加载,让listview滑动更加流畅. 写法: new PauseOnScrollListener(ImageLoader.getInstance(), false, true, this); 这是一个universal-image-loader中的滑动监听,将它赋给listview的滑动监听即可. 比如:listview.setOnScrollListener( new PauseO

前端性能优化--图片懒加载(lazyload image)

图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒加载怎么个懒法,就是你不想看就不给你看,我也懒得加载出来,懒得去请求.通俗的说就是你不要就不给你,怎么地.举个栗子,比如在进入某个页面的时候,它会有许多的图片,有些图片可能在下面,当我们点进页面但没有滑动下去或没看完整个页面,那么下面的图片就会"没用",加载了也白加载,而且还降低了网页的加