1、去掉图片集字段,字符串的多余字符

$goods_pic_display=$row[DISPLAY];
$goods_pic_display1=str_replace('"', '', $goods_pic_display);
$goods_pic_display2=str_replace(']', '', $goods_pic_display1);
$goods_pic_display3=str_replace('[', '', $goods_pic_display2);

2、php把字符串指定字符分割成数组

$var_display=explode(",",$goods_pic_display3);

3、foreach 循环输出一维数组,定义第一条foreach数据

<{foreach from=$var_display name=arr_display item=foo }>
<{if $smarty.foreach.arr_display.first}>
<li class="tb-selected">
<div class="tb-pic tb-s40">
<a href="#">
<img src="<{$foo}>" mid="<{$foo}>" big="<{$foo}>">
</a>
</div>
</li>
<{else}>
<li>
<div class="tb-pic tb-s40">
<a href="#">
<img src="<{$foo}>" mid="<{$foo}>" big="<{$foo}>">
</a>
</div>
</li>
<{/if}>
<{/foreach}>

4、放大镜插件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>放大镜</title>

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="js/jquery.imagezoom.min.js"></script>

<style type="text/css">

html{overflow-y:scroll;}

body{margin:0; font:12px "\5B8B\4F53",san-serif;background:#ffffff;}

div,ul,li{padding:0; margin:0;}

li{list-style-type:none;}

img{vertical-align:top;border:0;}

/* box */

.box{width:610px;margin:100px auto;}

.tb-pic a{display:table-cell;text-align:center;vertical-align:middle;}

.tb-pic a img{vertical-align:middle;}

.tb-pic a{*display:block;*font-family:Arial;*line-height:1;}

.tb-thumb{margin:10px 0 0;overflow:hidden;}

.tb-thumb li{background:none repeat scroll 0 0 transparent;float:left;height:42px;margin:0 6px 0 0;overflow:hidden;padding:1px;}

.tb-s310, .tb-s310 a{height:310px;width:310px;}

.tb-s310, .tb-s310 img{max-height:310px;max-width:310px;}

.tb-s310 a{*font-size:271px;}

.tb-s40 a{*font-size:35px;}

.tb-s40, .tb-s40 a{height:40px;width:40px;}

.tb-booth{border:1px solid #CDCDCD;position:relative;z-index:1;}

.tb-thumb .tb-selected{background:none repeat scroll 0 0 #C30008;height:40px;padding:2px;}

.tb-thumb .tb-selected div{background-color:#FFFFFF;border:medium none;}

.tb-thumb li div{border:1px solid #CDCDCD;}

div.zoomDiv{z-index:999;position:absolute;top:0px;left:0px;width:200px;height:200px;background:#ffffff;border:1px solid #CCCCCC;display:none;text-align:center;overflow:hidden;}

div.zoomMask{position:absolute;background:url("images/mask.png") repeat scroll 0 0 transparent;cursor:move;z-index:1;}

</style>

</head>

<body>

<div class="box">

<div class="tb-booth tb-pic tb-s310">

<a href="images/01.jpg"><img src="data:images/01_mid.jpg" alt="美女" rel="images/01.jpg" class="jqzoom" /></a>

</div>

<ul class="tb-thumb" id="thumblist">

<li class="tb-selected"><div class="tb-pic tb-s40"><a href="#"><img src="data:images/01_small.jpg" mid="images/01_mid.jpg" big="images/01.jpg"></a></div></li>

<li><div class="tb-pic tb-s40"><a href="#"><img src="data:images/02_small.jpg" mid="images/02_mid.jpg" big="images/02.jpg"></a></div></li>

<li><div class="tb-pic tb-s40"><a href="#"><img src="data:images/03_small.jpg" mid="images/03_mid.jpg" big="images/03.jpg"></a></div></li>

<li><div class="tb-pic tb-s40"><a href="#"><img src="data:images/04_small.jpg" mid="images/04_mid.jpg" big="images/04.jpg"></a></div></li>

<li><div class="tb-pic tb-s40"><a href="#"><img src="data:images/05_small.jpg" mid="images/05_mid.jpg" big="images/05.jpg"></a></div></li>

</ul>

</div>

<script type="text/javascript">

$(document).ready(function(){

$(".jqzoom").imagezoom();

$("#thumblist li a").click(function(){

$(this).parents("li").addClass("tb-selected").siblings().removeClass("tb-selected");

$(".jqzoom").attr('src',$(this).find("img").attr("mid"));

$(".jqzoom").attr('rel',$(this).find("img").attr("big"));

});

});

</script>

</body>

</html>

====================

jquery.imagezoom.js

。。。。。。

(function($){

$.fn.imagezoom = function(options){

var settings = {
xzoom: 310,
yzoom: 310,
offset: 10,
position: "BTR",
preload: 1
};

if(options) {
$.extend(settings, options);
}

var noalt = '';

var self = this;

$(this).bind("mouseenter", function(ev){

var imageLeft = $(this).offset().left;//元素左边距
var imageTop = $(this).offset().top;//元素顶边距

var imageWidth = $(this).get(0).offsetWidth;//图片宽度
var imageHeight = $(this).get(0).offsetHeight;//图片高度

var boxLeft = $(this).parent().offset().left;//父框左边距
var boxTop = $(this).parent().offset().top;//父框顶边距
var boxWidth = $(this).parent().width();//父框宽度
var boxHeight = $(this).parent().height();//父框高度

noalt= $(this).attr("alt");//图片标题
var bigimage = $(this).attr("rel");//大图地址
$(this).attr("alt",'');//清空图片alt

if($("div.zoomDiv").get().length == 0){
$(document.body).append("<div class='zoomDiv'><img class='bigimg' src='"+bigimage+"'/></div><div class='zoomMask'>&nbsp;</div>");//放大镜框及遮罩
}

if(settings.position == "BTR"){
//如果超过了屏幕宽度 将放大镜放在右边
if(boxLeft + boxWidth + settings.offset + settings.xzoom > screen.width){
leftpos = boxLeft - settings.offset - settings.xzoom;
}else{
leftpos = boxLeft + boxWidth + settings.offset;
}
}else{
leftpos = imageLeft - settings.xzoom - settings.offset;
if(leftpos < 0){
leftpos = imageLeft + imageWidth + settings.offset;
}
}

$("div.zoomDiv").css({ top: boxTop,left: leftpos });
$("div.zoomDiv").width(settings.xzoom);
$("div.zoomDiv").height(settings.yzoom);
$("div.zoomDiv").show();

$(this).css('cursor','crosshair');

$(document.body).mousemove(function(e){

mouse = new MouseEvent(e);
if(mouse.x<imageLeft || mouse.x>imageLeft+imageWidth || mouse.y<imageTop || mouse.y>imageTop+imageHeight){
mouseOutImage();
return;
}

var bigwidth = $(".bigimg").get(0).offsetWidth;
var bigheight = $(".bigimg").get(0).offsetHeight;

var scaley ='x';
var scalex ='y';

//设置遮罩层尺寸
if(isNaN(scalex)|isNaN(scaley)){
var scalex = (bigwidth/imageWidth);
var scaley = (bigheight/imageHeight);
$("div.zoomMask").width((settings.xzoom)/scalex );
$("div.zoomMask").height((settings.yzoom)/scaley);
$("div.zoomMask").css('visibility','visible');
}

xpos = mouse.x- $("div.zoomMask").width()/2 ;
ypos = mouse.y- $("div.zoomMask").height()/2 ;

xposs = mouse.x- $("div.zoomMask").width()/2 - imageLeft;
yposs = mouse.y- $("div.zoomMask").height()/2 - imageTop ;

xpos = (mouse.x - $("div.zoomMask").width()/2 < imageLeft ) ? imageLeft : (mouse.x + $("div.zoomMask").width()/2 > imageWidth + imageLeft ) ? (imageWidth + imageLeft -$("div.zoomMask").width()): xpos;
ypos = (mouse.y - $("div.zoomMask").height()/2 < imageTop ) ? imageTop : (mouse.y + $("div.zoomMask").height()/2 > imageHeight + imageTop ) ? (imageHeight + imageTop - $("div.zoomMask").height()) : ypos;

$("div.zoomMask").css({ top:ypos,left:xpos});
$("div.zoomDiv").get(0).scrollLeft = xposs * scalex;
$("div.zoomDiv").get(0).scrollTop = yposs * scaley;

});

});

function mouseOutImage(){
$(self).attr("alt",noalt);
$(document.body).unbind("mousemove");
$("div.zoomMask").remove();
$("div.zoomDiv").remove();
}

//预加载
count = 0;
if(settings.preload){
$('body').append("<div style='display:none;' class='jqPreload"+count+"'></div>");

$(this).each(function(){

var imagetopreload= $(this).attr("rel");

var content = jQuery('div.jqPreload'+count+'').html();

jQuery('div.jqPreload'+count+'').html(content+'<img src=\"'+imagetopreload+'\">');

});

}

}

})(jQuery);

function MouseEvent(e) {
this.x = e.pageX;
this.y = e.pageY;
}

======================

jquery.imagezoom.min.js

(function($){$.fn.imagezoom=function(options){var settings={xzoom:310,yzoom:310,offset:10,position:"BTR",preload:1};if(options){$.extend(settings,options);}
var noalt='';var self=this;$(this).bind("mouseenter",function(ev){var imageLeft=$(this).offset().left;var imageTop=$(this).offset().top;var imageWidth=$(this).get(0).offsetWidth;var imageHeight=$(this).get(0).offsetHeight;var boxLeft=$(this).parent().offset().left;var boxTop=$(this).parent().offset().top;var boxWidth=$(this).parent().width();var boxHeight=$(this).parent().height();noalt=$(this).attr("alt");var bigimage=$(this).attr("rel");$(this).attr("alt",'');if($("div.zoomDiv").get().length==0){$(document.body).append("<div class='zoomDiv'><img class='bigimg' src='"+bigimage+"'/></div><div class='zoomMask'>&nbsp;</div>");}
if(settings.position=="BTR"){if(boxLeft+boxWidth+settings.offset+settings.xzoom>screen.width){leftpos=boxLeft-settings.offset-settings.xzoom;}else{leftpos=boxLeft+boxWidth+settings.offset;}}else{leftpos=imageLeft-settings.xzoom-settings.offset;if(leftpos<0){leftpos=imageLeft+imageWidth+settings.offset;}}
$("div.zoomDiv").css({top:boxTop,left:leftpos});$("div.zoomDiv").width(settings.xzoom);$("div.zoomDiv").height(settings.yzoom);$("div.zoomDiv").show();$(this).css('cursor','crosshair');$(document.body).mousemove(function(e){mouse=new MouseEvent(e);if(mouse.x<imageLeft||mouse.x>imageLeft+imageWidth||mouse.y<imageTop||mouse.y>imageTop+imageHeight){mouseOutImage();return;}
var bigwidth=$(".bigimg").get(0).offsetWidth;var bigheight=$(".bigimg").get(0).offsetHeight;var scaley='x';var scalex='y';if(isNaN(scalex)|isNaN(scaley)){var scalex=(bigwidth/imageWidth);var scaley=(bigheight/imageHeight);$("div.zoomMask").width((settings.xzoom)/scalex);$("div.zoomMask").height((settings.yzoom)/scaley);$("div.zoomMask").css('visibility','visible');}
xpos=mouse.x-$("div.zoomMask").width()/2;ypos=mouse.y-$("div.zoomMask").height()/2;xposs=mouse.x-$("div.zoomMask").width()/2-imageLeft;yposs=mouse.y-$("div.zoomMask").height()/2-imageTop;xpos=(mouse.x-$("div.zoomMask").width()/2<imageLeft)?imageLeft:(mouse.x+$("div.zoomMask").width()/2>imageWidth+imageLeft)?(imageWidth+imageLeft-$("div.zoomMask").width()):xpos;ypos=(mouse.y-$("div.zoomMask").height()/2<imageTop)?imageTop:(mouse.y+$("div.zoomMask").height()/2>imageHeight+imageTop)?(imageHeight+imageTop-$("div.zoomMask").height()):ypos;$("div.zoomMask").css({top:ypos,left:xpos});$("div.zoomDiv").get(0).scrollLeft=xposs*scalex;$("div.zoomDiv").get(0).scrollTop=yposs*scaley;});});function mouseOutImage(){$(self).attr("alt",noalt);$(document.body).unbind("mousemove");$("div.zoomMask").remove();$("div.zoomDiv").remove();}
count=0;if(settings.preload){$('body').append("<div style='display:none;' class='jqPreload"+count+"'></div>");$(this).each(function(){var imagetopreload=$(this).attr("rel");var content=jQuery('div.jqPreload'+count+'').html();jQuery('div.jqPreload'+count+'').html(content+'<img src=\"'+imagetopreload+'\">');});}}})(jQuery);function MouseEvent(e){this.x=e.pageX;this.y=e.pageY;}

【原创smarty仿淘宝商品图片轮播+放大镜效果】的更多相关文章

  1. js实现淘宝首页图片轮播效果

    原文:http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=10585 <!DOCTYPE html> &l ...

  2. Vue实现仿淘宝商品详情属性选择的功能

    Vue实现仿淘宝商品详情属性选择的功能 先看下效果图:(同个属性内部单选,属性与属性之间可以多选) 主要实现过程: 所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下:   attrA ...

  3. 仿淘宝商品详情页上拉弹出新ViewController

    新项目就要开始做了,里面有购物那块,就试着先把淘宝商品详情页的效果做了一下. 1.需求 1.第一次上拉时,A视图拉到一定距离将视图B从底部弹出,A视图也向上 2.显示B视图时下拉时,有刷新效果,之后将 ...

  4. 基于jQuery仿淘宝产品图片放大镜代码

    今天给大家分享一款 基于jQuery淘宝产品图片放大镜代码.这是一款基于jquery.imagezoom插件实现的jQuery放大镜.适用浏览器:IE8.360.FireFox.Chrome.Safa ...

  5. UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果

    上一篇博客介绍了如何将XCode创立的项目提交到Git版本控制,这次就直接做一个图片轮播的展示demo,刚好可以把UIScrollView.UIPageControl.UIImageView这三个控件 ...

  6. JQuery图片轮播滚动效果(网页效果--每日一更)

    今天,带来的是一个图片的轮播滚动效果! 先来看一下效果展示:亲,请点击这里 原理很简单,设置一个定时器,使图片列表在每隔一段时间后滚动一次.而循环效果,就是在每一滚动的时候,将第一张图片放到最后一张的 ...

  7. Js 图片轮播渐隐效果

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  8. 图片轮播展示效果-2D实现

    图片的轮播展示效果如果使用2D实现,需要将3D中存在的近大远小效果使用图片的缩放呈现,因此需要存储和计算图片的位置同时还要计算存储图片的缩放信息.将所有图片的位置连线看作是一个椭圆,就可以根据图片的个 ...

  9. Android自己定义控件实战——仿淘宝商品浏览界面

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38656929 用手机淘宝浏览商品详情时,商品图片是放在后面的,在第一个Scr ...

随机推荐

  1. 前端基础(二):CSS

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  2. 一 :了解MVC

    介绍 1. ASP.NET WebForm和ASP.NET MVC是并行的关系.都是属于.NET框架下的子框架. 2. MVC项目常用模板 空模板 :   不包含MVC目录结构,需要自己添加. 基本模 ...

  3. (初级篇)docker基础应用--01

    命令 获取镜像: docker pull //: ,如:docker pull nginx 查看镜像列表: docker images 查看镜像信息: docker inspect

  4. Linux部署Django:报错 nohup: ignoring input and appending output to ‘nohup.out’

    一.部署 Django 到远程 Linux 服务器 利用 xshell 通过 ssh 连接到 Linux服务器,常规的启动命令是 python3 manage.py runserver 但是,关闭 x ...

  5. jQuery.fn.extend() 函数详解

    jQuery.fn.extend()函数用于为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法). jQuery.fn是jQuery的原型对象,其extend()方法用于为jQuery的原型 ...

  6. spark为什么比hadoop的mr要快?

    1.前言 Spark是基于内存的计算,而Hadoop是基于磁盘的计算:Spark是一种内存计算技术. 但是事实上,不光Spark是内存计算,Hadoop其实也是内存计算. Spark和Hadoop的根 ...

  7. oracle impdp 覆盖导入 table_exists_action关键字使用

    oracle10g之后impdp的table_exists_action参数table_exists_action选项:{skip 是如果已存在表,则跳过并处理下一个对象:append是为表增加数据: ...

  8. BZOJ 3932: [CQOI2015]任务查询系统 (主席树板题)

    就是裸的主席树,差分之后排序插入主席树就行了. 注意主席树查询的时候叶子节点要特判,因为本身是有size的 还有要开longlong CODE #include <cctype> #inc ...

  9. zabbix添加监控项以及常用的键值

      zabbix自身提供了丰富的监控项,下面以“cpu空闲值”为例介绍zabbix如何添加新的监控项 1.创建主机群组 配置——主机群组——创建主机群组 2.创建主机 配置——主机——创建主机 3.添 ...

  10. Easily use UUIDs in Laravel

    Easily use UUIDs in Laravel  Wilbur PoweryOct 29 '18 Updated on Oct 30, 2018 ・1 min read #php #larav ...