Revision: 49155
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 17, 2011 18:47 by alexdahlem
Initial Code
<script type="text/javascript">
function spreadBox() {
/*
* 2011 by Alex Dahlem | http://www.twitter.com/alexdahlem
* Zooming product images in spreadshops
* Place this in your Shop-footer just before </body>
* Death to false markup
*/
// text for zooming
this.zmBtnText = 'Vergrößern!';
// Text for closing
this.zmClsText = 'Schließen'
// Can't touch this!
this.box = new Array();
if ($('detailArticleThumb')) {
this.box[0] = $('detailArticleThumb');
this.path = '$("detailArticleThumb").firstDescendant()';
this.prodNamePath = "$$('h3')[0]";
this.prodDescPath = "$$('h5')[0]";
} else if ($('articleList')) {
this.box = $$('.articleImages');
this.path = 'Event.element(e).previous().down().down()';
this.prodNamePath = 'Event.element(e).previous().previous()';
this.prodDescPath = 'Event.element(e).next().down().down()';
}
if (box.length > 0) {
this.zmOvrly = new Element('div').setStyle({position:'fixed',top:0,left:0,height:'100%',width:'100%',backgroundColor:'#000',overflowY:'hidden', zIndex:9998, opacity:0.8}).addClassName('zmCls').hide();
this.zmCntnr = new Element('div').setStyle({textAlign: 'right', fontSize: '0.8em', position:'fixed',top:'50%',left:'50%',marginLeft:'-250px', width: '500px', minHeight: '520px', marginTop:'-270px',background:'#fff URL(/Public/Common/images/loading_ani.gif) no-repeat center',zIndex:9999,border:'5px solid white'}).hide();
this.zmCntnt = '<a href="" title="' + zmClsText + '" style="position:absolute; margin-right: -13px; margin-top: -13px; right: 0; display:block; width: 26px; height: 26px; padding: 0; text-align: center; vertical-align: middle; border-radius: 23px; font-weight: bold; font-size: 15px; line-height: 25px; color: #fff; background: #ba2737" class="zmCls">☓</a><img id="zmImg" style="height:500px; width:500px; border: 1px solid #dcdcdc"><p><h4 id="zmTtl"></h4><a href="#" id="zmBtnCls" class="zmCls">' + zmClsText + '</a></p>';
zmCntnr.insert({'bottom': zmCntnt});
$$('body')[0].insert({'top': zmOvrly}).setStyle({position:'static'});
zmOvrly.insert({'after': this.zmCntnr});
box.each(function(el){
this.zmBtn = new Element('a').update(zmBtnText).setStyle({bottom: 0, float: 'right', marginTop: '-26px', marginRight: '6px', display: 'block', position: 'relative', padding: '2px', height:'16px', width:'16px', textIndent:'-9999px', background:'url(/Public/Common/images/sprites_icons.png) -78px -58px #fff', overflow: 'hidden'}).writeAttribute('href', '#').writeAttribute('title', zmBtnText);
$(el).insert({'after': zmBtn});
Event.observe(this.zmBtn, 'click', function(e){
this.imgURL = eval(path).readAttribute('src').gsub('width/280/height/280', 'width/500/height/500');
this.imgURL = this.imgURL.gsub('width/190/height/190', 'width/500/height/500');
$('zmImg').writeAttribute('src', '').setStyle({visibility: 'hidden', height: '500px', width: '500px'}).writeAttribute('src', this.imgURL);
$('zmImg').onload = function () {$('zmImg').setStyle({visibility: 'visible'});}
zmOvrly.appear({to: .8, duration: .5});
zmCntnr.appear({duration: .5});
this.title = "";
if (eval(prodNamePath).innerHTML != "") this.title = eval(prodNamePath).innerHTML + " - ";
this.title += eval(prodDescPath).innerHTML;
$('zmTtl').update(this.title);
});
});
$$('.zmCls').each(function (el) {
return $(el).observe('click', function(e) {
zmOvrly.fade({duration: .5});
zmCntnr.fade({duration: .5});
Event.stop(e);
});
});
}
}
document.observe("dom:loaded", function() {
spreadBox();
});
</script>
Initial URL
Initial Description
This is the production version. Get minified version here: http://snipplr.com/view/56706/spreadbox-minified--a-product-zoom-for-spreadshirt/
Initial Title
Spreadbox - A product picture zoom for Spreadshirt
Initial Tags
Initial Language
JavaScript