zoomla
Version:
16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统
392 lines (386 loc) • 18.5 kB
HTML
{ZL.Source id="图库模型数据源标签"/}
<html>
<head>
<meta charset="utf-8">
<title>{SField sid="图库模型数据源标签" FD="Title" page="0"/}_{$SiteName/}</title>
<meta name="Keywords" content="{SField sid="图库模型数据源标签" FD="Tagkey" page="0"/}">
{ZL:Boot4()/}
<link href="{$CssDir/}global.css?Version={ZL.Label id="前端样式版本号"/}" rel="stylesheet"/>
<script src="/js/scrolltopcontrol.js" type="text/javascript"></script>
<script src="/JS/Controls/B_User.js"></script>
<script src="{$CssDir/}js/server.js"></script>
<style>
body{overflow:hidden;margin:0;padding:0;background-color:#fcfcfc}
.magazine-viewport .container{position:absolute;top:50%;left:50%;margin:auto;width:922px;height:600px}
.magazine-viewport .magazine{top:-300px;left:-461px;width:922px;height:600px}
.magazine-viewport .page{width:461px;height:600px;background-color:#fff;background-size:100% 100%;background-repeat:no-repeat}
.magazine-viewport .zoomer .region{display:none}
.magazine .region{position:absolute;overflow:hidden;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background:#06F;opacity:.2;cursor:pointer;-ms-border-radius:10px;-o-border-radius:10px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";filter:alpha(opacity=20)}
.magazine .region:hover{opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50)}
.magazine .region.zoom{opacity:.01;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)";filter:alpha(opacity=1)}
.magazine .region.zoom:hover{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";filter:alpha(opacity=20)}
.magazine .page{-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);-moz-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);-ms-box-shadow:0 0 20px rgba(0,0,0,.2);-o-box-shadow:0 0 20px rgba(0,0,0,.2)}
.magazine-viewport .page img{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.magazine .even .gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-gradient(linear,left top,right top,color-stop(.95,rgba(0,0,0,0)),color-stop(1,rgba(0,0,0,.2)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,0) 95%,rgba(0,0,0,.2) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,0) 95%,rgba(0,0,0,.2) 100%);background-image:-ms-linear-gradient(left,rgba(0,0,0,0) 95%,rgba(0,0,0,.2) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,0) 95%,rgba(0,0,0,.2) 100%);background-image:linear-gradient(left,rgba(0,0,0,0) 95%,rgba(0,0,0,.2) 100%)}
.magazine .odd .gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-gradient(linear,right top,left top,color-stop(.95,rgba(0,0,0,0)),color-stop(1,rgba(0,0,0,.15)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,0) 95%,rgba(0,0,0,.15) 100%);background-image:-moz-linear-gradient(right,rgba(0,0,0,0) 95%,rgba(0,0,0,.15) 100%);background-image:-ms-linear-gradient(right,rgba(0,0,0,0) 95%,rgba(0,0,0,.15) 100%);background-image:-o-linear-gradient(right,rgba(0,0,0,0) 95%,rgba(0,0,0,.15) 100%);background-image:linear-gradient(right,rgba(0,0,0,0) 95%,rgba(0,0,0,.15) 100%)}
.magazine-viewport .zoom-in .even .gradient,.magazine-viewport .zoom-in .odd .gradient{display:none}
.magazine-viewport .loader{position:absolute;top:280px;left:219px;width:22px;height:22px;background-image:url({$CssDir/}images/loader.gif)}
.magazine-viewport .shadow{-webkit-box-shadow:0 0 20px #ccc;-moz-box-shadow:0 0 20px #ccc;box-shadow:0 0 20px #ccc;-webkit-transition:-webkit-box-shadow .5s;-moz-transition:-moz-box-shadow .5s;-o-transition:-webkit-box-shadow .5s;-ms-transition:-ms-box-shadow .5s;-o-box-shadow:0 0 20px #ccc;-ms-box-shadow:0 0 20px #ccc}
.magazine-viewport .next-button,.magazine-viewport .previous-button{position:absolute;top:0;width:22px;height:600px}
.magazine-viewport .next-button{right:-22px;-webkit-border-radius:0 15px 15px 0;-moz-border-radius:0 15px 15px 0;border-radius:0 15px 15px 0;-ms-border-radius:0 15px 15px 0;-o-border-radius:0 15px 15px 0}
.magazine-viewport .previous-button{left:-22px;-webkit-border-radius:15px 0 0 15px;-moz-border-radius:15px 0 0 15px;border-radius:15px 0 0 15px;-ms-border-radius:15px 0 0 15px;-o-border-radius:15px 0 0 15px}
.magazine-viewport .next-button-hover,.magazine-viewport .previous-button-hover{background-color:rgba(0,0,0,.2)}
.magazine-viewport .previous-button-down,.magazine-viewport .previous-button-hover{background-image:url({$CssDir/}images/arrows.png);background-position:-4px 284px;background-repeat:no-repeat}
.magazine-viewport .next-button-down,.magazine-viewport .previous-button-down{background-color:rgba(0,0,0,.4)}
.magazine-viewport .next-button-down,.magazine-viewport .next-button-hover{background-image:url({$CssDir/}images/arrows.png);background-position:-38px 284px;background-repeat:no-repeat}
.magazine-viewport .zoom-in .next-button,.magazine-viewport .zoom-in .previous-button{display:none}
.animated{-webkit-transition:margin-left .5s;-moz-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s;-ms-transition:margin-left .5s}
.thumbnails{position:absolute;bottom:0;left:0;z-index:1;width:100%;height:140px}
.thumbnails>div{margin:20px auto;width:1050px;height:100px}
.thumbnails ul{margin:0;padding:0;text-align:center;-webkit-transition:-webkit-transform ease-in-out .1s;-moz-transition:-moz-transform ease-in-out .1s;-o-transition:-o-transform ease-in-out .1s;transition:transform ease-in-out .1s;-webkit-transform:scale3d(.5,.5,1);-moz-transform:scale3d(.5,.5,1);-o-transform:scale3d(.5,.5,1);transform:scale3d(.5,.5,1);-ms-transform:scale3d(.5,.5,1);-ms-transition:-ms-transform ease-in-out .1s}
.thumbanils-touch ul{-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;-ms-transform:none}
.thumbnails-hover ul{-webkit-transform:scale3d(.6,.6,1);-moz-transform:scale3d(.6,.6,1);-o-transform:scale3d(.6,.6,1);transform:scale3d(.6,.6,1);-ms-transform:scale3d(.6,.6,1)}
.thumbnails li{display:inline-block;margin:0 5px;-webkit-box-shadow:0 0 10px #ccc;-moz-box-shadow:0 0 10px #ccc;box-shadow:0 0 10px #ccc;list-style:none;-webkit-transition:-webkit-transform 60ms;-moz-transition:-webkit-transform 60ms;-o-transition:-webkit-transform 60ms;transition:-webkit-transform 60ms;-ms-box-shadow:0 0 10px #ccc;-o-box-shadow:0 0 10px #ccc;-ms-transition:-webkit-transform 60ms}
.thumbnails li span{display:none}
.thumbnails .current{-webkit-box-shadow:0 0 10px red;-moz-box-shadow:0 0 10px red;box-shadow:0 0 10px red;-ms-box-shadow:0 0 10px red;-o-box-shadow:0 0 10px red}
.thumbnails .thumb-hover{-webkit-box-shadow:0 0 10px #666;-moz-box-shadow:0 0 10px #666;box-shadow:0 0 10px #666;-webkit-transform:scale3d(1.3,1.3,1);-moz-transform:scale3d(1.3,1.3,1);-o-transform:scale3d(1.3,1.3,1);transform:scale3d(1.3,1.3,1);-ms-transform:scale3d(1.3,1.3,1);-ms-box-shadow:0 0 10px #666;-o-box-shadow:0 0 10px #666}
.thumbanils-touch .thumb-hover{-webkit-transform:none;-moz-transform:none;-o-transform:none;transform:none;-ms-transform:none}
.thumbnails .thumb-hover span{position:absolute;bottom:-30px;left:0;z-index:2;display:block;width:100%;height:30px;color:#666;font:700 15px arial;line-height:30px;cursor:default}
.thumbnails img{float:left}
.exit-message{position:absolute;top:10px;left:0;z-index:10000;width:100%;height:40px}
.exit-message>div{margin:auto;width:140px;height:30px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;background:rgba(0,0,0,.5);color:#fff;text-align:center;font:12px arial;line-height:30px;-ms-border-radius:10px;-o-border-radius:10px}
.zoom-icon{position:absolute;top:10px;right:10px;z-index:1000;width:22px;height:22px;background-image:url({$CssDir/}images/zoom-icons.png);background-size:88px 22px}
.zoom-icon-in{background-position:0 0;cursor:pointer}
.zoom-icon-in.zoom-icon-in-hover{background-position:-22px 0;cursor:pointer}
.zoom-icon-out{background-position:-44px 0}
.zoom-icon-out.zoom-icon-out-hover{background-position:-66px 0;cursor:pointer}
.bottom{position:absolute;bottom:0;left:0;width:100%}
</style>
</head>
<body>
<div id="canvas">
<div class="zoom-icon zoom-icon-in"></div>
<div class="magazine-viewport">
<div class="container">
<div class="magazine">
<!-- Next button -->
<div ignore="1" class="next-button"></div>
<!-- Previous button -->
<div ignore="1" class="previous-button"></div>
</div>
</div>
</div>
<!-- Thumbnails -->
<div class="thumbnails">
<div>
<ul></ul>
<div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/JS/jquery-1.11.1.min.js" ></script>
<script type="text/javascript" src="{$CssDir/}js/modernizr.2.5.3.min.js"></script>
<script>
(function() {
'use strict';
var hashes = {},
regexp = {},
history = [],
freq = 100,
num = 0,
pushState = false,
timer = null,
currentUrl = null,
freeze = function(obj) {
if (Object.freeze) return Object.freeze(obj);
return obj
},
getHashParts = function() {
return window.location.href.split('#')
},
startTimer = function() {
if (!timer) timer = setInterval(function() {
if (num > 0 && currentUrl != window.location.href) {
currentUrl = window.location.href;
window.Hash.check()
}
}, freq)
},
stopTimer = function() {
if (timer) {
clearInterval(timer);
timer = null
}
};
window.Hash = freeze({
pushState: function(yes) {
if (window.history && window.history.pushState) pushState = yes;
return this
},
fragment: function() {
var hash = getHashParts();
return (pushState) ? window.location.pathname + ((hash[1]) ? '#' + hash[1] : '') : hash[1] || ''
},
get: function(path, params) {
var p, fragment = '',
parameters = [];
for (p in params) {
if (!Object.prototype.hasOwnProperty(p)) continue;
parameters.push(encodeURIComponent(p) + '=' + encodeURIComponent(params[p]))
}
if (parameters.length > 0) parameters = '?' + parameters.join('&');
return (pushState) ? path + parameters : getHashParts()[0] + '#' + path + parameters
},
go: function(hash, params) {
if (this.fragment() != hash) {
var to = this.get(hash, params);
if (pushState) window.history.pushState(null, document.title, to);
else window.location.href = to
}
return this
},
update: function() {
currentUrl = window.location.href;
return this
},
on: function(hash, callback, title) {
if (!hashes[hash]) hashes[hash] = {
title: title,
listeners: []
};
hashes[hash].listeners.push(callback);
num++;
startTimer();
return this
},
check: function() {
var i, hash, parts, fragment = this.fragment();
for (hash in hashes) {
if (!Object.prototype.hasOwnProperty.call(hashes, hash)) continue;
hashes[hash].regexp = hashes[hash].regexp || new RegExp(hash);
if ((parts = hashes[hash].regexp.exec(fragment))) {
if (hashes[hash].title) document.title = hashes[hash].title;
for (i = 0; i < hashes[hash].listeners.length; i++) if (hashes[hash].listeners[i].yep) hashes[hash].listeners[i].yep(fragment, parts)
} else {
for (i = 0; i < hashes[hash].listeners.length; i++) if (hashes[hash].listeners[i].nop) hashes[hash].listeners[i].nop(fragment)
}
}
return this
}
})
})();
var pics='{SField sid="图库模型数据源标签" FD="PhotoUrl" page="0"/}';
if(pics!=""){
pics=JSON.parse(pics);
var str="";
for(var i=0;i<pics.length;i++){
if(i==0||i==(pics.length-1)){
str+='<li class="i"><img src="{$UploadDir/}'+pics[i].url+'" alt="'+pics[i].desc+'" width="76" height="100" class="page-'+(i+1)+'" /><span>'+(i+1)+'</span></li>';
}
else if(i%2!=0){
if(i<(pics.length-1)){
str+='<li class="d"><img src="{$UploadDir/}'+pics[i].url+'" alt="'+pics[i].desc+'" width="76" height="100" class="page-'+(i+1)+'" /><img src="{$UploadDir/}'+pics[i+1].url+'" alt="'+pics[i+1].desc+'" width="76" height="100" class="page-'+(i+2)+'" /><span>'+(i+1)+'-'+(i+2)+'</span></li>';
}
else{
str+='<li class="i"><img src="{$UploadDir/}'+pics[i].url+'" alt="'+pics[i].desc+'" width="76" height="100" class="page-'+(i+1)+'" /><span>'+(i+1)+'</span></li>';
}
}
}
$(".thumbnails ul").html(str);
yepnope({
test: Modernizr.csstransforms,
yep: ['{$CssDir/}js/turn.min.js'],
nope: ['{$CssDir/}js/turn.html4.min.js'],
both: ['{$CssDir/}js/zoom.min.js', '{$CssDir/}js/magazine.js'],
complete: loadApp
});
}
function loadApp() {
$('#canvas').fadeIn(1000);
var flipbook = $('.magazine');
if (flipbook.width() == 0 || flipbook.height() == 0) {
setTimeout(loadApp, 10);
return
}
flipbook.turn({
width: 922,
height: 600,
duration: 1000,
acceleration: !isChrome(),
gradients: true,
autoCenter: true,
elevation: 50,
pages: pics.length,
when: {
turning: function(event, page, view) {
var book = $(this),
currentPage = book.turn('page'),
pages = book.turn('pages');
Hash.go('page/' + page).update();
disableControls(page);
$('.thumbnails .page-' + currentPage).parent().removeClass('current');
$('.thumbnails .page-' + page).parent().addClass('current')
},
turned: function(event, page, view) {
disableControls(page);
$(this).turn('center');
if (page == 1) {
$(this).turn('peel', 'br')
}
},
missing: function(event, pages) {
for (var i = 0; i < pages.length; i++) addPage(pages[i], $(this))
}
}
});
$('.magazine-viewport').zoom({
flipbook: $('.magazine'),
max: function() {
return largeMagazineWidth() / $('.magazine').width()
},
when: {
swipeLeft: function() {
$(this).zoom('flipbook').turn('next')
},
swipeRight: function() {
$(this).zoom('flipbook').turn('previous')
},
resize: function(event, scale, page, pageElement) {
if (scale == 1) loadSmallPage(page, pageElement);
else loadLargePage(page, pageElement)
},
zoomIn: function() {
$('.thumbnails').hide();
$('.made').hide();
$('.magazine').removeClass('animated').addClass('zoom-in');
$('.zoom-icon').removeClass('zoom-icon-in').addClass('zoom-icon-out');
if (!window.escTip && !$.isTouch) {
escTip = true;
$('<div />', {
'class': 'exit-message'
}).html('<div>Press ESC to exit</div>').appendTo($('body')).delay(2000).animate({
opacity: 0
}, 500, function() {
$(this).remove()
})
}
},
zoomOut: function() {
$('.exit-message').hide();
$('.thumbnails').fadeIn();
$('.made').fadeIn();
$('.zoom-icon').removeClass('zoom-icon-out').addClass('zoom-icon-in');
setTimeout(function() {
$('.magazine').addClass('animated').removeClass('zoom-in');
resizeViewport()
}, 0)
}
}
});
if ($.isTouch) $('.magazine-viewport').bind('zoom.doubleTap', zoomTo);
else $('.magazine-viewport').bind('zoom.tap', zoomTo);
$(document).keydown(function(e) {
var previous = 37,
next = 39,
esc = 27;
switch (e.keyCode) {
case previous:
$('.magazine').turn('previous');
e.preventDefault();
break;
case next:
$('.magazine').turn('next');
e.preventDefault();
break;
case esc:
$('.magazine-viewport').zoom('zoomOut');
e.preventDefault();
break
}
});
Hash.on('^page\/([0-9]*)$', {
yep: function(path, parts) {
var page = parts[1];
if (page !== undefined) {
if ($('.magazine').turn('is')) $('.magazine').turn('page', page)
}
},
nop: function(path) {
if ($('.magazine').turn('is')) $('.magazine').turn('page', 1)
}
});
$(window).resize(function() {
resizeViewport()
}).bind('orientationchange', function() {
resizeViewport()
});
$('.thumbnails').click(function(event) {
var page;
if (event.target && (page = /page-([0-9]+)/.exec($(event.target).attr('class')))) {
$('.magazine').turn('page', page[1])
}
});
$('.thumbnails li').bind($.mouseEvents.over, function() {
$(this).addClass('thumb-hover')
}).bind($.mouseEvents.out, function() {
$(this).removeClass('thumb-hover')
});
if ($.isTouch) {
$('.thumbnails').addClass('thumbanils-touch').bind($.mouseEvents.move, function(event) {
event.preventDefault()
})
} else {
$('.thumbnails ul').mouseover(function() {
$('.thumbnails').addClass('thumbnails-hover')
}).mousedown(function() {
return false
}).mouseout(function() {
$('.thumbnails').removeClass('thumbnails-hover')
})
}
if ($.isTouch) {
$('.magazine').bind('touchstart', regionClick)
} else {
$('.magazine').click(regionClick)
}
$('.next-button').bind($.mouseEvents.over, function() {
$(this).addClass('next-button-hover')
}).bind($.mouseEvents.out, function() {
$(this).removeClass('next-button-hover')
}).bind($.mouseEvents.down, function() {
$(this).addClass('next-button-down')
}).bind($.mouseEvents.up, function() {
$(this).removeClass('next-button-down')
}).click(function() {
$('.magazine').turn('next')
});
$('.previous-button').bind($.mouseEvents.over, function() {
$(this).addClass('previous-button-hover')
}).bind($.mouseEvents.out, function() {
$(this).removeClass('previous-button-hover')
}).bind($.mouseEvents.down, function() {
$(this).addClass('previous-button-down')
}).bind($.mouseEvents.up, function() {
$(this).removeClass('previous-button-down')
}).click(function() {
$('.magazine').turn('previous')
});
resizeViewport();
$('.magazine').addClass('animated')
}
$('.zoom-icon').bind('mouseover', function() {
if ($(this).hasClass('zoom-icon-in')) $(this).addClass('zoom-icon-in-hover');
if ($(this).hasClass('zoom-icon-out')) $(this).addClass('zoom-icon-out-hover')
}).bind('mouseout', function() {
if ($(this).hasClass('zoom-icon-in')) $(this).removeClass('zoom-icon-in-hover');
if ($(this).hasClass('zoom-icon-out')) $(this).removeClass('zoom-icon-out-hover')
}).bind('click', function() {
if ($(this).hasClass('zoom-icon-in')) $('.magazine-viewport').zoom('zoomIn');
else if ($(this).hasClass('zoom-icon-out')) $('.magazine-viewport').zoom('zoomOut')
});
$('#canvas').hide();
</script>
</body>
</html>