`
流浪鱼
  • 浏览: 1683372 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery图片插件

 
阅读更多

ZOOM – jQuery photo gallery plugin
全屏效果的 jQuery 图片切换展示插件,支持键盘前后按键切换,支持移动设备

官方网站:

http://gurde.github.io/ZOOM/

效果:



 具有以下特性:

1.使用简单

2.支持前进和后退按钮进行图片切换,支持esc键关闭图片

3.图片自动调整大小适应屏幕

使用方式:

 

<!DOCTYPE html>
<html dir="ltr" lang="en-US">
  <head>
    
    <link rel="stylesheet" href="css/zoom.css" media="all" />
    <script src="js/jquery-1.9.1.min.js"></script>
    <script src="js/zoom.min.js"></script>
    
  </head>
  <body>

  <ul class="gallery">
    <li><a href="path/to/large1.jpg"><img src="path/to/thumbnail1.jpg" /></a></li>
    <li><a href="path/to/large2.jpg"><img src="path/to/thumbnail2.jpg" /></a></li>
    <li><a href="path/to/large3.jpg"><img src="path/to/thumbnail3.jpg" /></a></li>
    <li><a href="path/to/large4.jpg"><img src="path/to/thumbnail4.jpg" /></a></li>
  </ul>

  </body>
</html>

 注意:gallery类名比必须的,样式可以自己定义

源码为:

(function($) {
	//body添加预览需要的元素
	$('body').append('<div id="zoom"><a class="close"></a><a href="#previous" class="previous"></a><a href="#next" class="next"></a><div class="content loading"></div></div>');
	
	//定义变量
	var zoom = $('#zoom').hide(),
	    zoomContent = $('#zoom .content'),
	    zoomedIn = false,
	    openedImage = null,
	    windowWidth = $(window).width(),
	    windowHeight = $(window).height();
	
	//此处传递的是a标签
	function open(event) {
		if (event)
			event.preventDefault();
		var link = $(this),
		    src = link.attr('href');
		if (!src)
			return;
		//new Image()新建图片对象
		var image = $(new Image()).hide();
		//上一张 下一张按钮显示
		$('#zoom .previous, #zoom .next').show();
		if (link.hasClass('zoom'))
			$('#zoom .previous, #zoom .next').hide();
		if (!zoomedIn) {
			zoomedIn = true;
			zoom.show();
			$('body').addClass('zoomed');
		}
		zoomContent.html(image).delay(500).addClass('loading');
		//图片加载成功后调用rennder,并设置图片src
		image.load(render).attr('src', src);
		//打开openedImage变量赋值
		openedImage = link;
		//图片加载成功后调用的方法
		function render() {
			var image = $(this),
			    borderWidth = parseInt(zoomContent.css('borderLeftWidth')),
			    maxImageWidth = windowWidth - (borderWidth * 2),
			    maxImageHeight = windowHeight - (borderWidth * 2),
			    imageWidth = image.width(),
			    imageHeight = image.height();
			if (imageWidth == zoomContent.width() && imageWidth <= maxImageWidth && imageHeight == zoomContent.height() && imageHeight <= maxImageHeight) {
					show(image);
					return;
			}
			if (imageWidth > maxImageWidth || imageHeight > maxImageHeight) {
				var desiredHeight = maxImageHeight < imageHeight ? maxImageHeight : imageHeight,
				    desiredWidth  = maxImageWidth  < imageWidth  ? maxImageWidth  : imageWidth;
				if ( desiredHeight / imageHeight <= desiredWidth / imageWidth ) {
					image.width(imageWidth * desiredHeight / imageHeight);
					image.height(desiredHeight);
				} else {
					image.width(desiredWidth);
					image.height(imageHeight * desiredWidth / imageWidth);
				}
			}
			zoomContent.animate({
				width: image.width(),
				height: image.height(),
				marginTop: -(image.height() / 2) - borderWidth,
				marginLeft: -(image.width() / 2) - borderWidth
			}, 200, function() {
				show(image);
			});

			function show(image) {
				image.show();
				zoomContent.removeClass('loading');
			}
		}
	}
	
	function openPrevious() {
		var prev = openedImage.parent('li').prev();
		if (prev.length == 0)
			prev = $('.gallery li:last-child');
		prev.find('a').trigger('click');
	}
	
	function openNext() {
		var next = openedImage.parent('li').next();
		if (next.length == 0)
			next = $('.gallery li:first-child');
		next.children('a').trigger('click');
	}
	//关闭图片
	function close(event) {
		if (event)
			event.preventDefault();
		zoomedIn = false;
		openedImage = null;
		zoom.hide();
		$('body').removeClass('zoomed');
		zoomContent.empty();
	}
	
	//修改图片尺寸
	function changeImageDimensions() {
		windowWidth = $(window).width();
		windowHeight = $(window).height();
	}
	//闭包函数使用,立马执行,绑定键盘事件
	(function bindNavigation() {
		zoom.on('click', function(event) {
			event.preventDefault();
			if ($(event.target).attr('id') == 'zoom')
				close();
		});
		
		$('#zoom .close').on('click', close);
		$('#zoom .previous').on('click', openPrevious);//上一张
		$('#zoom .next').on('click', openNext);//下一张
		$(document).keydown(function(event) {
			if (!openedImage) return;
			if (event.which == 38 || event.which == 40)
				event.preventDefault();
			if (event.which == 27)
				close();
			if (event.which == 37 && !openedImage.hasClass('zoom'))
				openPrevious();
			if (event.which == 39 && !openedImage.hasClass('zoom'))
				openNext();
		});

		if ($('.gallery li a').length == 1)
			$('.gallery li a')[0].addClass('zoom');
		//a标签点击事件,调用open方法
		$('.zoom, .gallery li a').on('click', open);
	})();
	
	//闭包函数使用,立马执行绑定窗口变化
	(function bindChangeImageDimensions() {
		$(window).on('resize', changeImageDimensions);
	})();

	(function bindScrollControl() {
		$(window).on('mousewheel DOMMouseScroll', function(event) {
			//如果没有打开图片
			if (!openedImage)
				return;
			event.stopPropagation();
			event.preventDefault();
			event.cancelBubble = false;
		});
	})();
})(jQuery);

 

 

 

  • 大小: 64.6 KB
分享到:
评论

相关推荐

    jQuery图片插件带分页图片向下滚动切换代码

    jQuery图片插件是一种广泛应用于网页开发中的工具,它极大地简化了JavaScript操作DOM(文档对象模型)的复杂性,尤其在处理图片展示、动画效果和用户交互方面表现突出。本插件专注于实现一种分页图片向下滚动切换的...

    jquery图片插件设置图片等比例缩放

    "jQuery图片插件设置图片等比例缩放"是一个实用的功能,能够确保图片在不同尺寸的屏幕上保持其原始比例,从而避免图片变形,提供良好的视觉效果。jQuery作为一款强大的JavaScript库,提供了丰富的功能来处理DOM操作...

    最新 最流行 jquery 图片插件大全

    首先,jQuery图片插件的一大优点是它们的跨浏览器兼容性,能够很好地在各种主流浏览器上运行,包括Chrome、Firefox、Safari、Edge和Internet Explorer。这使得开发者无需担心因浏览器差异而导致的显示问题。 接下来...

    一个非常好的jquery 图片插件

    在实际应用中,这个jQuery图片插件可能会使用以下技术: 1. **事件监听**:jQuery的`.on()`方法可以用来监听用户操作,如点击播放按钮或滚动鼠标,触发相应的图片操作。 2. **图片懒加载**:为了提高页面加载速度,...

    Jquery 图片插件

    接下来,我们将详细讨论jQuery图片插件的核心知识点及其在实际应用中的实现方式。 首先,jQuery库是JavaScript的一个轻量级框架,它简化了DOM操作、事件处理、动画制作和Ajax交互。jQuery图片插件就是在jQuery基础...

    jquery 图片插件

    本篇文章将深入探讨与“jQuery图片插件”相关的知识点,特别是涉及图片放大、预览和裁剪等功能。 首先,我们来了解jQuery图片插件的基本概念。这些插件通常是开发者为扩展jQuery功能而编写的代码片段,它们专门针对...

    jquery图片插件设置图片等比例缩放.rar

    本压缩包文件"jquery图片插件设置图片等比例缩放.rar"主要涉及到jQuery插件的使用,用于实现图片在不同设备和屏幕尺寸上等比例缩放的效果,这在响应式网页设计中尤为重要。 首先,我们需要理解jQuery是什么。jQuery...

    jQuery图片插件

    jQuery图片插件是一种广泛应用于网页开发中的工具,它极大地简化了HTML文档操作、事件处理、动画设计和Ajax交互。在本话题中,我们将探讨两个关键的jQuery应用:Flash翻书效果和jQuery UI实现的图片裁切功能。 首先...

    jquery图片插件旋转、拖动、滑动条、数字输入框

    本文将深入探讨标题和描述中提到的"jquery图片插件旋转、拖动、滑动条、数字输入框"相关知识点,并提供实现这些功能的详细解析。 1. **jQuery图片插件**: jQuery图片插件是为了增强网页中的图像展示效果而设计的...

    jquery实现的图片裁剪插件

    总结来说,jQuery图片裁剪插件是一种强大的工具,它利用jQuery库简化了图片裁剪功能的实现,提高了用户体验。通过合理地配置和集成,开发者可以在各种应用场景中,如在线照片编辑、头像上传、产品图片处理等,轻松...

    jQuery图片预览插件

    **jQuery图片预览插件详解** 在Web开发中,图片预览功能是用户交互体验的重要组成部分,尤其是在上传图片或展示图片集时。jQuery作为一个轻量级的JavaScript库,提供了丰富的插件来增强这一功能。本篇文章将深入...

    jQuery图片处理插件大全

    FullscreenGalleryThumbnailFlip.zip FullPageImageGallery.zip MergingImageBoxes.zip buildinternet-mosaic-ef45e11.zip woothemes-FlexSlider-23b22ac.zip jcobb-basic-jquery-slider-...等47个jQuery图片特效插件

    jquery插件库大全(200个).zip

    jquery图片展示插件 jquery图片弹出框插件 jquery图片排序过滤 jquery图片放大 jquery图片滑动效果 jquery城市二级联动 jquery多值输入插件 jquery多级菜单导航 jquery大转盘game jquery实现网易邮箱首页插件 jquery...

    基于jquery的图片裁剪插件

    【jQuery图片裁剪插件详解】 在Web开发中,用户经常需要上传并编辑图片,例如在个人资料设置、产品发布或社交媒体应用中。基于jQuery的图片裁剪插件为此提供了便利,它允许用户在浏览器中预览并裁剪图片,然后以所...

    jQuery图片插件ImageJigsaw.zip

    Image jigsaw 是 jQuery 插件,可以把图片转换成拼图。 在线演示 标签:Image

    jQuery图片自动添加水印插件.zip

    **jQuery图片自动添加水印插件详解** 在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在...

    jquery插件集-图片展示 幻灯片效果 图片浏览

    7. **响应式设计**:考虑到现代网页设计对移动设备的支持,大多数jQuery图片插件都支持响应式布局,能自动适应不同屏幕大小,保证在手机、平板和桌面设备上的浏览效果。 8. **性能优化**:高性能的图片展示插件会...

    非常漂亮的100个 jquery前端案例,包含幻灯片切换、图片缩放、相册、放大镜、图片拖着滚动等.zip

    jQuery图片插件之鼠标放在图片上出现动态的hover效果插件 jQuery图片特效404 jQuery图片特效CustomAnimationBanner jQuery图片特效FullPageImageGallery jQuery图片特效image Scroller图片滚动 jQuery图片特效...

Global site tag (gtag.js) - Google Analytics