您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz图片查看插件支持鼠标缩放、实际大小、旋转、下载
沛菡2025-06-27Discuz教程已有人查阅
导读图片查看是网站中的常用功能,用于展示详细的图片。在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看插件。希望可以帮助到大家
图片查看是网站中的常用功能,用于展示详细的图片。在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看插件。希望可以帮助到大家,有不对的地方也欢迎大家给以正确的指导。
(1)discuz的实现过程及效果
(2)discuz的局限性
(3)discuz的改进步骤
(4)兼容性及之后效果
(5)总结(常见问题)
一、discuz的实现过程及效果
点击图片,弹出层有大图,同时有在新窗口打开、显示实际大小、关闭按钮。
实现代码为:
【html代码】
二、discuz的局限性
虽然discuz插件已经基本满足前端技术人员的需求,但在实际项目应用中还存在着一定局限性。比如用的比较多的下载、旋转图片的功能。因此,小菜升级了discuz,新增了下载、旋转图片功能。
三、discuz的改进
想要升级discuz,其实很简单。只要在common_extra.js文件中找到找到menu.innerHTML,并且添加两个a标签,分别设置下载和旋转即可。以下是需要修改的文件及代码:
【js】--common_extra.js
兼容性:
经测试,该插件适用浏览器:IE9及IE9 +、360、Chrome、Firefox、Safari、Opera。
五、总结
好了,以上就是全部的实现代码,有没有跃跃一试的感觉呢?立马体验一下高大上的图片缩放效果。为了能更好地使用这个插件,另外再分享一下在此过程中遇到的几个问题,希望可以帮助到大家。
【常见问题】
(1)图片不能随鼠标滚动而放大缩小
解决方法:上传的图片大小应控制在宽度width ≠ 600px
(2)在使用下载和旋转功能按钮时,需载入jquery.js和jquery.rotate.js两个文件
(3)载入2上的两个js文件之后,点击图片,无 常显示,报错信息为"无法获取 obj.getAttribute('file') ","Cannot read property'parentNode' of undefined"
解决办法:
a.将common.js文件中的
(4)<head></head>中间必须加 var IMGDIR = 'img/', VERHASH = 'zfhf', JSPATH = 'js/';否则无法生成common_extra.js文件,因而导致页面无 常显示。如果不想添加这段代码,也可以手动引入common_extra.js
(1)discuz的实现过程及效果
(2)discuz的局限性
(3)discuz的改进步骤
(4)兼容性及之后效果
(5)总结(常见问题)
一、discuz的实现过程及效果
点击图片,弹出层有大图,同时有在新窗口打开、显示实际大小、关闭按钮。
实现代码为:
【html代码】
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>diszuc点击图片放大、拖动、鼠标滚动缩放</title>
<meta name="keywords" content="diszuc点击图片放大、拖动、鼠标滚动缩放" />
<meta name="description" content="diszuc点击图片放大、拖动、鼠标滚动缩放" />
<link rel="stylesheet" type="text/css" href="img/style_1_forum_viewthread.css" />
<script type="text/javascript">
var IMGDIR = 'img/', VERHASH = 'zfhf', JSPATH = 'js/'; //全局设置,必不可少,否则无 常使用
</script>
<script src="js/common.js" type="text/javascript"></script> //可自行在网上下载
</head>
<body>
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
<img id="aimg_156139" aid="156139" src="img/none.gif" zoomfile="uploadfiles/100306znrbsxfzuclbplu6.jpg" file="uploadfiles/100306znrbsxfzuclbplu6.jpg" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="400" alt="我是一朵花" title="我是一朵花" />
<script src="js/forum_viewthread.js" type="text/javascript"></script>
<script type="text/javascript">
zoomstatus = parseInt(1);
var imagemaxwidth = '500';
var aimgcount = new Array();
</script>
<script type="text/javascript" reload="1">
aimgcount[1000] = ['156139','156140','156141'];
attachimggroup(1000);
attachimgshow(1000);
var aimgfid = 0;
</script>
</body>
</html>
【css代码】-- style_1_forum_viewthread.css
*{word-wrap:break-word;}body,input,button,select,textarea{font:12px/1.5 Tahoma,'Microsoft Yahei','Simsun';color:#444;}.z{float:left;}.y{float:right;}.hm{text-align:center;}
.zoom{cursor:pointer;}
.zoominner{
padding:5px 10px 10px;
background:#FFF;
text-align:left;
}
.zoominner p{padding:8px 0;}
.zoominner p a{
float:left;
margin-left:10px;
width:17px;
height:17px;
background:url(imgzoom_tb.gif) no-repeat 0 0;
line-height:100px;
overflow:hidden;
}
.zoominner p a:hover{background-position:0 -39px;}
.zoominner p a.imgadjust{background-position:-40px 0;}
.zoominner p a.imgadjust:hover{background-position:-40px -39px;}
.zoominner p a.imgclose{background-position:-80px 0;}
.zoominner p a.imgclose:hover{background-position:-80px -39px;}
.zimg_c{position:relative;}
.zimg_prev,.zimg_next{
display:block;
position:absolute;
width:80px;
height:100%;
background:url(pic-prev.png) no-repeat 0 -100px;
cursor:pointer;
}
.zimg_next{
right:10px;
background-image:url(pic-next.png);
background-position:100% -100px;
}
.zimg_c img{margin:0 auto;}
.zimg_p strong{display:none;}
【js代码】-- forum_viewthread.js
/*
[Discuz!] (C)2001-2099 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: forum_viewthread.js 28794 2012-03-13 05:39:46Z zhangguosheng $
*/
var replyreload = '', attachimgST = new Array(), zoomgroup = new Array(), zoomgroupinit = new Array();
function attachimggroup(pid) {
if(!zoomgroupinit[pid]) {
for(i = 0;i < aimgcount[pid].length;i++) {
zoomgroup['aimg_' + aimgcount[pid]] = pid;
}
zoomgroupinit[pid] = true;
}
}
function attachimgshow(pid, onlyinpost) {
onlyinpost = !onlyinpost ? false : onlyinpost;
aimgs = aimgcount[pid];
aimgcomplete = 0;
loadingcount = 0;
for(i = 0;i < aimgs.length;i++) {
obj = $('aimg_' + aimgs);
if(!obj) {
aimgcomplete++;
continue;
}
if(onlyinpost && obj.getAttribute('inpost') || !onlyinpost) {
if(!obj.status) {
obj.status = 1;
if(obj.getAttribute('file')) obj.src = obj.getAttribute('file');
loadingcount++;
} else if(obj.status == 1) {
if(obj.complete) {
obj.status = 2;
} else {
loadingcount++;
}
} else if(obj.status == 2) {
aimgcomplete++;
if(obj.getAttribute('thumbImg')) {
thumbImg(obj);
}
}
if(loadingcount >= 10) {
break;
}
}
}
if(aimgcomplete < aimgs.length) {
setTimeout(function () {
attachimgshow(pid, onlyinpost);
}, 100);
}
}
到这里为止,只要以上代码,就可以轻松实现图片随鼠标滚动而自由缩放大小了,是不是很简单呢?二、discuz的局限性
虽然discuz插件已经基本满足前端技术人员的需求,但在实际项目应用中还存在着一定局限性。比如用的比较多的下载、旋转图片的功能。因此,小菜升级了discuz,新增了下载、旋转图片功能。
三、discuz的改进
想要升级discuz,其实很简单。只要在common_extra.js文件中找到找到menu.innerHTML,并且添加两个a标签,分别设置下载和旋转即可。以下是需要修改的文件及代码:
【js】--common_extra.js
<p class="zoom_text">
<span class="y"><a href="javascript:;" onclick="_ACT_imgupload(this);" class="imgdownload" title="下载"></a><a id="' + menuid + '_imglink" class="imglink" target="_blank" title="新窗口打开"</a><a id="' + menuid + '_adjust" href="javascipt:;" class="imgadjust" title="实际大小"></a>' +'<a href="javascript:;" onclick="_ACT_imgroate(this);" class="imgroate" title="旋转"></a><a href="javascript:;" onclick="hideMenu()" class="imgclose" title="关闭"</a></span></p>
这样就成功添加了下载和旋转按钮。当然要想实现功能,还要另外写事件。其中_ACT_imgupload方法为
window._ACT_imgupload = function (dom) {
var _$dom = $(dom);
var _$pic = _$dom.parent().parent().parent().find("#imgzoom_zoom");
if (_$pic.length > 0) {
window.open(_$pic.attr("src"));
}
}
_ACT_imgroate方法为
window._ACT_imgroate = function (dom) {
var _$dom = $(dom);
var _$pic = _$dom.parent().parent().parent().find("#imgzoom_zoom");
if (_$pic.length > 0) {
var _ra = _$pic.data("raval");
if (!_ra) _ra = 0;
if (_$pic.attr("isleft") != "0") {
_$pic.css('rotate', _ra + 90);
_$pic.data("raval", _ra + 90);
}
else {
_$pic.css('rotate', _ra - 90);
_$pic.data("raval", _ra - 90);
}
return false;
}
}
【css】-- style_1_forum_viewthread.css
.zoom_text {
position: fixed;
bottom: 0;
left: 50%;
margin-left: -130px;
height: 50px;
line-height: 60px;
padding: 0 50px;
background: rgba(0,0,0,.5);
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
.zoom_text span {
display: block;
width: 100%;
text-align: center;
}
.zoom_text a {
display: inline-block;
margin-left: 10px;
width: 22px;
height: 22px;
line-height: 100px;
overflow: hidden;
}
.zoom_text a.imglink {
background: url(imglink.png);
}
.zoom_text a.imgdownload {
background: url(imgdownload.png);
}
.zoom_text a.imgadjust {
background: url(imgadjust.png);
}
.imgroate {
display: inline-block;
width: 17px;
height: 17px;
margin-left: 10px;
background: url(imgroate.png) !important;
}
.zoom_text a.imgclose {
background: url(imgclose.png);
}
四、兼容性及之后效果兼容性:
经测试,该插件适用浏览器:IE9及IE9 +、360、Chrome、Firefox、Safari、Opera。
五、总结
好了,以上就是全部的实现代码,有没有跃跃一试的感觉呢?立马体验一下高大上的图片缩放效果。为了能更好地使用这个插件,另外再分享一下在此过程中遇到的几个问题,希望可以帮助到大家。
【常见问题】
(1)图片不能随鼠标滚动而放大缩小
解决方法:上传的图片大小应控制在宽度width ≠ 600px
(2)在使用下载和旋转功能按钮时,需载入jquery.js和jquery.rotate.js两个文件
(3)载入2上的两个js文件之后,点击图片,无 常显示,报错信息为"无法获取 obj.getAttribute('file') ","Cannot read property'parentNode' of undefined"
解决办法:
a.将common.js文件中的
function $(id) {
return !id ? null : document.getElementById(id);
}
改为
function G_$_D(id) {
return !id ? null : document.getElementById(id);
}
b.将common_extra.js文件中的"$"改为G_$_D(4)<head></head>中间必须加 var IMGDIR = 'img/', VERHASH = 'zfhf', JSPATH = 'js/';否则无法生成common_extra.js文件,因而导致页面无 常显示。如果不想添加这段代码,也可以手动引入common_extra.js
本文标签:
很赞哦! ()
上一篇:Discuz的nt模板机制
下一篇:Discuz二次开发基本知识归总
相关教程
图文教程
Discuz!NT安装报错的解决方法
好久没有回来了。现在开始学习Discuz!NT。先来记录一下网站的发布。首先澄清一下,XP系统是无法发布的,即便是专业版。我用了半天时间,才发现权限问题通不过。
怎么用URLOS快速创建Discuz论坛
Discuz是国内大最多人使用的论坛社区系统,自2001年6月面世以来,Discuz已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度较高、覆盖率大的论坛软件系统之一。
Discuz的ucenter通讯失败与Discuz的头像无法显示的解决方法
假设是Discuz论坛的一些小样式图片。仅仅须要升级一下Discuz论坛的论坛或者,直接把整个网站的css的首域名替换一下。
Discuz!NT在64位Windows下运行常见问题
非常搞,等了快一年Discuz!NT的免费版本依旧不支持64位Windows。官方出了64位windows支持的指南居然是叫用户把IIS设置为32位兼容模式。说了等于没说
相关源码
-
帝国cms7.5文库范文/付费下载/复制付费/带支付源码免费下载本模板为文库、文档分享、知识付费类平台设计,提供完整的内容变现解决方案。系统支持多种内容展示与付费模式,满足不同场景下的内容价值转化需求,帮助平台实现内容资源的有效管理和商业化运营。查看源码 -
帝国CMS7.5二次元COS漫展网站模板源码免费下载本模板基于帝国CMS 7.5版本深度开发,为二次元文化分享领域设计。采用UTF-8编码,支持中文内容展示,特别适用于COSPLAY作品展示、漫展信息发布等二次元相关内容的网站建设。模板结构清晰,布局合理,充分考虑了二次元用户群体的浏览习惯和审美需求。查看源码 -
pbootcms源码宠物类网站源码下载(自适应多端)为宠物装备商店、宠物食品及用品企业打造的营销型模板,基于PbootCMS内核深度开发。采用响应式设计实现PC与移动端适配,PHP7.0+高性能架构支持MySQL/SQLite双数据库查看源码 -
帝国CMS7.2互联网自媒体门户整站带数据源码免费下载分享一款高仿极客网门户模板,帝国cms7.2版本,非常适合互联网、自媒体、文章门户网站使用。测法发现备份数据恢复报错,找了几个版本的都是一样的,有能力的自行修复查看源码 -
(自适应)html5中英双语通用机械设备pbootcms模板下载本模板基于PbootCMS内核精心开发,为机械设备制造企业量身打造。设计风格大气稳重,充分展现机械行业的专业特质与技术实力。采用HTML5技术构建,支持中英文双语切换,满足国际化业务需求。整站布局合理,充分展示企业产品、案例与服务,帮助访客快速了解企业核心优势。查看源码 -
自适应恒温恒湿机空调机械设备营销型网站模板(自适应手机版)响应式营销型恒温恒湿机环境设备类网站pbootcms模板 蓝色营销型空调设备网站源码下载PbootCMS内核开发的网站模板,该模板适用于营查看源码
| 分享笔记 (共有 篇笔记) |
