2012-10-15 15 views
5

मैंने छायाबॉक्स के लिए एक कैप्शन समाधान लागू किया है जो 'rev' इनलाइन टैग का उपयोग करता है।shadowbox.js rev caption को कैसे अनुकूलित करें?

shadowbox.js जोड़ें ...

...get("sb-caption").innerHTML=obj.link.rev||"";... 
...<div id="sb-caption"></div>... 

shadowbox.css में फ़ाइल की तह तक निम्नलिखित जोड़ें ...

#sb-info,#sb-info-inner{height:56px;line-height:20px;} 
#sb-caption {clear:both;font-size:90%;height:auto;line-height:12px;color:#fff;} 

अपने पृष्ठ मार्कअप में राजस्व विशेषता जोड़ें (हाँ, यह rel की तरह एक मान्य विशेषता है!) लिंक करने के लिए ... कैप्शन पाठ राजस्व विशेषता में चला जाता है ...

<a href="myimage.jpg" rel="shadowbox" title="My Image" rev="Your caption goes here...">My Image</a> 

मैं है कि टी ... आनंद लें!

अधिक यहां बताई गई है: http://shadowbox.1309102.n2.nabble.com/Captions-td2643307.html

यह लागू करने के लिए एक बहुत ही आसान बात थी।

हालांकि, मैं अपने खुद के सीएसएस ...

#sb-caption{text-align:right;line-height:22px;color:#333;position:absolute;bottom:35px;right:35px;background:rgba(255,255,255,0.3);text-shadow: 1px 1px 1px #fff;display:block; padding:10px 20px 10px 50px;z-index:10;} 

यह सभी के साथ-साथ शानदार काम किया बनाया है, तथापि, मैं एक समस्या पाई है।

एक छवि एक रेव नहीं है जब, # sb-caption div वैसे भी दिखाई देता है, एक अर्द्ध पारदर्शी सफेद ब्लॉक के रूप में, आकार (गद्दी के रूप में ही) में 20x70 पिक्सल मैं समझता हूँ कि मेरी गद्दी सेट समस्या का कारण है।

मुझे आश्चर्य है कि कोई भी काम के आसपास मेरी मदद कर सकता है। कुछ ऐसा जो छायाबॉक्स को # एसबी-कैप्शन प्रदर्शित नहीं करता है, अगर rev = "" निर्दिष्ट नहीं है।

क्या कोई इस के लिए ठीक हो सकता है।

शायद इन लाइनों के साथ कुछ ??

<script type="text/javascript"> 
    Shadowbox.init({ 
    }); 
    var Shadowbox = window.parent.Shadowbox; 
    if (getElementById('sb-caption').innerHTML == '') 
    getElementById('sb-caption').style.display = 'none'; 
</script> 

... लेकिन, यह काम नहीं करता है।

उत्तर

1

आप करीब थे, लेकिन आप इसे सीधे shadowbox.js में संभाल सकते हैं (यदि आप इसे किसी भी तरह बदल रहे हैं)। इस

ad("sb-caption").style.display = (ad("sb-caption").innerHTML == "") ? 'none' : 'block' ; 

सही

ad("sb-caption").innerHTML=aJ.link.rev||""; 

के बाद और बस हो गया डालें। मुझे लगता है कि यह स्पष्ट है कि यह क्या करता है: हर बार जब आप एक छायाबॉक्स खोलते हैं, तो आप id = "sb-caption" तत्व के भीतर सामग्री की जांच करते हैं। यदि कोई सामग्री कोई प्रदर्शन नहीं है, तो अन्यथा ब्लॉक करने के लिए।

संबंधित मुद्दे