zencart_magiczoom
mod_zencart_magiczoom使用
二、安装sql文件。
三、按照正确命名上传商品图片,一般需要中图跟大图。
四、程序运行时会在images目录下创建magicthumbs目录,并根据商品图片,每个商品自动生成两张图片用于前台显示
,生成图片的尺寸可以在后台设置,前台也可以用CSS控制显示。
五、中图输出模板在文件magiczoom.module.core.class.php中大约130行处修改。
六、去掉顶部标题,修改文件magiczoom.module.core.class.php,去掉$title变量:
zencart 产品图片分析
数据库存放格式
数据表中只保留一个字段存储图片信息,保存从根目录下images目录为起点的路径名(不包含images),如a.jpg,a/b.jpg,以下称为原图。
中图和大图存放位置及命名格式
中图与大图分别位于images/medium和images/large,图片名为原图片名加中图后缀或大图后缀,如a_mid.jpg,a_lag.jpg
附加图片存放位置及命名格式
附加图片跟原图片相同目录,原图如果在images目录下,则附加图片命名格式为原图名加任意字符(后缀必须一样),原图如果在images下的子目录下,则附加图片命名格式为原图名加下划线加任意字符,同样,后缀名必须一样。
附加图中图大图位于images/medium和images/large下,目录结枸必须和原图一样,命名格式为附加图名加中图后缀或大图后缀。
$products_image_extension = substr($products_image, strrpos($products_image, '.'));
$products_image_base = str_replace($products_image_extension, '', $products_image);
$products_image_medium = $products_image_base . IMAGE_SUFFIX_MEDIUM . $products_image_extension;
$products_image_large = $products_image_base . IMAGE_SUFFIX_LARGE . $products_image_extension; if (!file_exists(DIR_WS_IMAGES . 'medium/' . $products_image_medium)) {
$products_image_medium = DIR_WS_IMAGES . $products_image;
} else {
$products_image_medium = DIR_WS_IMAGES . 'medium/' . $products_image_medium;
} if (!file_exists(DIR_WS_IMAGES . 'large/' . $products_image_large)) {
if (!file_exists(DIR_WS_IMAGES . 'medium/' . $products_image_medium)) {
$products_image_large = DIR_WS_IMAGES . $products_image;
} else {
$products_image_large = DIR_WS_IMAGES . 'medium/' . $products_image_medium;
}
} else {
$products_image_large = DIR_WS_IMAGES . 'large/' . $products_image_large;
}
取出附加图片及相应中图大图路径
$images_array = array();
if ($products_image != '') {
$products_image_extension = substr($products_image, strrpos($products_image, '.'));
$products_image_base = str_replace($products_image_extension, '', $products_image); if (strrpos($products_image, '/')) {
$products_image_match = substr($products_image, strrpos($products_image, '/')+);
$products_image_match = str_replace($products_image_extension, '', $products_image_match) . '_';
$products_image_base = $products_image_match;
} $products_image_directory = str_replace($products_image, '', substr($products_image, strrpos($products_image, '/')));
if ($products_image_directory != '') {
$products_image_directory = DIR_WS_IMAGES . str_replace($products_image_directory, '', $products_image) . "/";
} else {
$products_image_directory = DIR_WS_IMAGES;
} if ($dir = @dir($products_image_directory)) {
while ($file = $dir->read()) {
if (!is_dir($products_image_directory . $file)) {
if (substr($file, strrpos($file, '.')) == $products_image_extension) {
if(preg_match("/" . $products_image_base . "/i", $file) == ) {
if ($file != $products_image) {
if ($products_image_base . str_replace($products_image_base, '', $file) == $file) {
$images_array[] = $file;
} else { }
}
}
}
}
}
if (sizeof($images_array)) {
sort($images_array);
}
$dir->close();
}
} $num_images = sizeof($images_array);
$output_addtional_image_list = array(); if ($num_images) {
for ($i=, $n=$num_images; $i<$n; $i++) {
$file = $images_array[$i];
$products_image_medium = str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'medium/', $products_image_directory) . str_replace($products_image_extension, '', $file) . IMAGE_SUFFIX_MEDIUM . $products_image_extension;
if(file_exists($products_image_medium)){
$products_image_medium = $products_image_medium;
}else{
$products_image_medium = $products_image_directory . $file;
}
$products_image_large = str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'large/', $products_image_directory) . str_replace($products_image_extension, '', $file) . IMAGE_SUFFIX_LARGE . $products_image_extension;
if(file_exists($products_image_large)){
$products_image_large = $products_image_large;
}else{
$products_image_large = $products_image_directory . $file;
}
$output_addtional_image_list[$i]['base_image'] = $products_image_directory . $file;
$output_addtional_image_list[$i]['medium_image'] = $products_image_large;
$output_addtional_image_list[$i]['large_image'] = $products_image_large;
}
}
Magic Zoom 使用说明
引入主要文件
<link type="text/css" rel="stylesheet" href="magiczoom.css"/>
<script type="text/javascript" src="magiczoom.js"></script>
结构
单图片结构(中图+大图)
<a href="big.jpg" class="MagicZoom"><img src="small.jpg"/></a>
(其中class="MagicZoom"为关键项)
多图片结构(小图+中图+大图)
主图:<a href="dbig.jpg" class="MagicZoom" id="rabbit"><img src="small.jpg"></a>
附加图:<a href="addimg_big.jpg" rel="zoom-id:rabbit" rev="addimg_mid.jpg"><img src="addimg_small.jpg"/></a>
<a href="addimg2_big.jpg" rel="zoom-id:rabbit" rev="addimg2_mid.jpg"><img src="addimg2_small.jpg"/></a>
(为主图添加id属性,附加图添加rev指向中图,通过rel="zoom-id:rabbit"确立联系)
参数设置
为rel属性设置参数列表,如
<a href="big.jpg" class="MagicZoom" rel="zoom-width:118px; zoom-height:118px"><img src="small.jpg"/></a>
特例:自定义显示框位置
<a href="big.jpg" class="MagicZoom" id="elephant" rel="zoom-position: custom><img src="small.jpg"/></a>
<div id="elephant-big"></div>
样式设置
在magiczoom.css添加自定义样式
设置显示框样式
.MagicZoomBigImageCont {
border: none;
}
设置抓图区样式
.MagicZoomPup {
border: 2px solid #658EC2;
background: #658EC2 url(dotted.png);
cursor: move;
}
参数列表
Parameter | Default | Options | Description |
---|---|---|---|
Geometry | |||
zoom-width | 300 | Width of zoom window (px) | |
zoom-height | 300 | Height of zoom window (px) | |
zoom-position | right | left / right / top / bottom / inner /custom | Position of zoom window |
zoom-distance | 15 | Distance from small image to zoom window (px) | |
User experience | |||
opacity | 50 | 0-100 | Opacity of hovered area |
opacity-reverse | false | true / false | Add opacity outside mouse box |
smoothing | true | true / false | Enable smooth zoom movement |
smoothing-speed | 40 | 1-99 | Speed of smoothing |
fps | 25 | Frames per second for zoom effect | |
show-title | top | top / bottom / false | Show the title of the image in the zoom window |
zoom-fade | false | true / false | Zoom window fade effect |
zoom-fade-in-speed | 400 | Zoom window fade-in speed (ms) | |
zoom-fade-out-speed | 200 | Zoom window fade-out speed (ms) | |
Multiple images | |||
thumb-change | click | click / mouseover | Multiple images change on click/mouseover |
selectors-mouseover-delay | 200 | Delay before switching thumbnails (ms) | |
selectors-effect | dissolve | dissolve / fade / false | Dissolve or cross fade thumbnails |
selectors-effect-speed | 400 | Speed of dissolve/fade effect (ms) | |
preload-selectors-small | true | true / false | Multiple images, preload small images |
preload-selectors-big | false | true / false | Multiple images, preload large images |
Initialization | |||
click-to-initialize | false | true / false | Click to fetch the large image |
click-to-activate | false | true / false | Click to show the zoom |
show-loading | true | true / false | Loading message |
loading-msg | Loading zoom... | Loading message text | |
loading-opacity | 75 | 0-100 | Loading message opacity |
loading-position-x | -1 | Loading message X-axis position, -1 is center | |
loading-position-y | -1 | Loading message Y-axis position, -1 is center | |
Zoom mode | |||
drag-mode | false | true / false | Click and drag to move the zoom |
move-on-click | true | true / false | Click to move the zoom (in drag mode) |
preserve-position | false | true / false | Remember position of zoom for multiple images and drag mode |
x | -1 | Initial X-axis position for drag mode, -1 is center | |
y | -1 | Initial Y-axis position for drag mode, -1 is center | |
always-show-zoom | false | true / false | Make zoom window always visible. (Automatically true in drag-mode.) |
fit-zoom-window | true | true / false | Resize zoom window if big image is smaller than zoom window |
entire-image | false | true / false | Show the entire large image on hover |
zencart_magiczoom的更多相关文章
随机推荐
- hdu_5805_NanoApe Loves Sequence(xjb搞)
题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误 ...
- Lowest Bit
Lowest Bit Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Su ...
- svn rollback: 恢复到上一版本
18:48:32svn的文件版本是168,我想用167的版本覆盖掉168的版本如何搞? 18:52:47先把本地的那个文件用rm命令删掉,然后,使用svn up -r 167 文件路径,UP下来的文件 ...
- MySQL 出现 The table is full 的解决方法【转】
[MySQL FAQ]系列 — 你所不知的table is full那些事 时间 2014-08-21 12:18:56 MySQL中文网 原文 http://imysql.com/2014/08 ...
- ckediter
ckediter ##<link rel='stylesheet' href='/css/index.css' /> <script type="text/javascri ...
- HDU 5963 博弈
http://acm.hdu.edu.cn/showproblem.php?pid=5963 题目大意:中文题 思路:看ICPC camp好了,简单易懂:https://async.icpc-camp ...
- Git 版本管理基本操作
Git是一个版本管理操作的工具 非常N,可以很智能的分布式管理, 本网站学习笔记 来自于廖雪峰老师的内容借鉴 安装 yum -y install git 本地设置全局 告知是谁提交代码 信息 # gi ...
- 从头到尾彻底解析Hash表算法
作者:July.wuliming.pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解:第二部分为关于Hash表算法的详细阐述:第三部分为打造一个最快的Hash ...
- Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决
发表于 2014 年 4 月 13 日 作者 SCKA 最近利用Linux搭建服务器 搭建FTP的时候决定使用VSFTP搭建,结果却出现了无法正常连接与无法上传文件等诸多问题 经过许久的努力,终于让V ...
- 由浅到深理解java反射
1.基础概念 class类: 1.1java是面向对象的,但是在java中存在两种东西不是面向对象的 一种是普通的数据类型,这也是封装数据类存在的原因. 二种是静态静态成员. 1.2所以我们首先要理解 ...