`
单一色调
  • 浏览: 85929 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

PhotoSwipe 动态ajax加载图片

阅读更多

开发JqueryMobile的时候需要用到PhotoSwipe插件来显示图片。

下载地址:

http://www.photoswipe.com/

 

如何让程序能动态加载图片呢,参照demo改写了一下,在初始化的时候先加载图片,然后再实现效果:

 

<script type="text/javascript">
var options = {};
var instance;
(function(window, $, PhotoSwipe) {
	$(document).ready(function() {
		loadDatas();
	});

        /*初始化插件*/
	function bindPhotoSwipe() {
		instance = $("#Gallery a").photoSwipe(options);
		var size = $("#Gallery a").length;
		// onDisplayImage
		instance.addEventHandler(PhotoSwipe.EventTypes.onDisplayImage,
				function(e) {
					console.log("Number of images loaded so far: "+ instance.cache.images.length);
				});
	}
	/*
		加载数据
	*/
	 function loadDatas(){
	   var url = "./action/GetPicAction.do";
	   var content = '';
	    $.get(url,function(response){
	   		$.each(response,function(index,item){
	   			content += "<li><a href=\""+item.fullurl+"\" rel=\"external\"><img src=\""+item.thumburl+"\" /></a></li>";
	   		});
	   		$("#Gallery").append(content);
		},"json"); 
		
		bindPhotoSwipe();
	};
		/*
			解绑
		*/
		function detatch(){
			PhotoSwipe.detatch(instance);
			PhotoSwipe.activeInstances = [];	
		}
}(window, window.jQuery, window.Code.PhotoSwipe));
</script>

 

程序看起来是没什么问题,图片也能出来,但是就是没有图片预览效果。

用firebug调试出现下面的错误:

uncaught exception: Code.PhotoSwipe.createInstance: No images to passed.

在构造插件结构的时候没加载进图片。

这个问题折腾了好久,最终想到是不是同步异步的问题,于是在发送ajax请求的时候加了一句,关掉异步请求。

 $.ajaxSettings.async = false;

抱着试一试的态度,谁知结果还真实现了。

 

附上后台生成的json字符串:

[{"fullurl":"images/full/1.jpg","thumburl":"images/thumb/1.jpg"},{"fullurl":"images/full/2.jpg","thumburl":"images/thumb/2.jpg"},{"fullurl":"images/full/3.jpg","thumburl":"images/thumb/3.jpg"},{"fullurl":"images/full/4.jpg","thumburl":"images/thumb/4.jpg"},{"fullurl":"images/full/5.jpg","thumburl":"images/thumb/5.jpg"},{"fullurl":"images/full/6.jpg","thumburl":"images/thumb/6.jpg"},{"fullurl":"images/full/7.jpg","thumburl":"images/thumb/7.jpg"},{"fullurl":"images/full/8.jpg","thumburl":"images/thumb/8.jpg"},{"fullurl":"images/full/9.jpg","thumburl":"images/thumb/9.jpg"}]

 附上页面代码:

<div data-role="page" id="pic_index" class="gallery-page">
		<div data-role="header">
			<h1>美女图片</h1>
		</div>
		<div data-role="content">
			<ul class="gallery" id="Gallery">
			</ul>
		</div>
		<div data-role="footer">
			<h4>@飘渺</h4>
		</div>

	</div>

 

 

 

分享到:
评论
2 楼 单一色调 2014-11-17  
chenghong726 写道
请问加在哪里? $.ajaxSettings.async = false;
是加载数据里吗?

在你加在数据之前关闭异步请求。
1 楼 chenghong726 2014-11-05  
请问加在哪里? $.ajaxSettings.async = false;
是加载数据里吗?

相关推荐

    PhotoSwipe异步动态加载图片方法

    《PhotoSwipe异步动态加载图片方法详解》 在移动应用或网页开发中,高效地处理大量图片资源是一项挑战。PhotoSwipe是一款流行的JavaScript图片查看器插件,尤其适用于移动端,能够提供高质量的图片浏览体验。然而,...

    loading(各种AJAX加载图片)

    "loading(各种AJAX加载图片)"这个主题,主要关注如何利用AJAX实现图片的异步加载,以及在加载过程中展示各种加载效果,提升用户体验。 1. **AJAX基础** - **异步性**:AJAX的核心是XMLHttpRequest对象,它使得...

    以AJAX方式加载图片=异步加载图片,先显示个图片的占位图片 此技术常见于漫画网站.zip

    在网页开发中,异步加载图片(以AJAX方式加载图片)是一种常见的优化技术,尤其在处理大量图片的场景下,比如漫画网站。通过这种方式,可以显著提高页面加载速度,提升用户体验。AJAX(Asynchronous JavaScript and ...

    JQuery实现Ajax加载图片的方法

    使用JQuery实现图片的Ajax加载,可以方便地实现图片的动态加载功能。 #### 3. jQuery基于缓存获取图片的技巧 在JQuery中,图片加载时会默认被缓存,这意味着,当同一个图片资源被多次请求时,浏览器会从本地缓存中...

    制作ajax加载等待图片

    本文将详细介绍如何制作这样的Ajax加载等待图片。 首先,理解Ajax加载等待图片的原理。它通常由两部分组成:视觉元素和JavaScript代码。视觉元素可以是静态图片、GIF动画或HTML5的CSS3动画,用来展示正在加载的状态...

    图片ajax动态分批加载

    "图片ajax动态分批加载"是一种优化策略,通过结合PHP和AJAX技术,可以实现图片的按需加载,即用户滚动到页面底部时,再动态加载下一批图片,这样既提高了页面加载速度,又不影响用户浏览。 首先,我们需要理解PHP和...

    ajax动态加载无限级树的复选框

    在IT领域,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于网页动态加载数据,它可以实现页面无刷新更新,提升用户体验。本话题聚焦于利用Ajax动态加载无限级树结构的复选框,这是一个常见于文件管理、...

    php+ajax加载数据转圈动画图片.zip

    "ajax加载数据转圈动画图片.gif"很可能就是这样一个加载指示器,当AJAX请求发送并等待服务器响应时显示,当数据加载完成则隐藏。 具体实现步骤如下: 1. **创建HTML结构**:在"date.html"中,创建一个容器元素,...

    Echarts通过Ajax实现动态数据加载

    ### Echarts通过Ajax实现动态数据加载 #### 一、引言 在现代Web开发中,数据可视化是一项重要的技能。Echarts作为一款强大的JavaScript图表库,因其丰富的图表类型、灵活的配置选项以及良好的交互性而备受开发者...

    鼠标悬停时Ajax加载图片.rar

    鼠标悬停时Ajax加载图片,不管是鼠标放在文字上或是链接上或是图片上时,会自动加载对应的图片,类似Ajax适时小图显示大图的功能。你可以将它修改为移上链接加载外部页面,可以网址,但必须指定一个页面名称,比如:...

    ajax,servlet动态加载dtree

    在本项目"ajax,servlet动态加载dtree"中,我们看到的是利用Ajax技术和Servlet实现dtree(一种树形菜单控件)的动态加载。这个项目可能是一个文件管理系统或者目录浏览应用,其中dtree用于展示文件或目录结构,而...

    jquery实现图片延迟加载和ajax方式加载页面.rar

    在实际项目中,C#作为服务器端语言,可能会生成动态内容供Ajax请求处理,或者提供图片延迟加载所需的服务器端数据。例如,C# ASP.NET可以构建Web API服务,返回JSON或HTML片段,供前端jQuery进行Ajax请求。 综上所...

    基于jquery.masonry插件开发的瀑布流ajax动态加载数据功能

    在本项目中,我们利用jQuery Masonry插件来实现瀑布流效果,并结合Ajax技术实现动态加载数据,进一步提升用户体验。 jQuery Masonry插件是由David DeSandro开发的一个JavaScript库,它的主要功能是将网页中的元素以...

    ajax的动态加载

    **Ajax 动态加载技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。这种技术的核心在于利用JavaScript异步地与服务器进行通信,从而提高了用户体验,...

    ajax跨域懒加载图片

    结合Ajax的跨域能力,我们可以实现从远程服务器获取图片资源,同时保证加载顺序,避免一次性加载大量图片导致页面加载速度变慢。本文将详细解释如何实现"ajax跨域懒加载图片"这一技术。 首先,我们需要了解什么是...

    Jquery插件小集合(ajax 投票 AJAX动态加载广告)

    本集合包含两个特定的jQuery插件,用于实现AJAX投票功能和AJAX动态加载广告,极大地提高了用户体验和页面交互性。 ### 1. AJAX投票功能 在`Rating.asp`、`rating.css`和`Rating.html`文件中,我们可以找到一个基于...

    使用Ajax动态加载JSON文件

    "使用Ajax动态加载JSON文件"这个主题就涉及到了两个核心概念:Ajax和JSON。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。而JSON(JavaScript Object ...

    AJAX加载图标大全

    AJAX加载图标,顾名思义,是在进行AJAX请求时显示的一种视觉反馈,通常是一个动态的或者静态的图形,用来告知用户系统正在进行后台操作,请求尚未完成。这些图标设计得既美观又具有功能性,可以是简单的旋转圆圈、小...

    ajax加载数据模板

    在本项目中,"ajax加载数据模板"显然关注的是如何在SSM(Spring、SpringMVC、MyBatis)框架下利用Ajax实现数据的动态加载、增删改查以及分页功能。 首先,我们需要理解SSM框架。Spring是一个全面的企业级应用开发...

    Telerik Ajax加载

    如果需要在特定的服务器端事件中动态控制加载面板的显示,可以使用`RadAjaxManager`的`BeginAjaxRequest`和`EndAjaxRequest`事件。 总的来说,通过Telerik Ajax加载,开发者能够轻松地在ASP.NET应用程序中创建高效...

Global site tag (gtag.js) - Google Analytics