以下是 可全屏浏览baguettebox相册代码 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>可全屏浏览baguettebox相册代码</title>
<link rel="stylesheet" href="css/baguettebox.min.css">
<link rel="stylesheet" href="css/zzsc.css">
<script src="js/baguettebox.min.js"></script>
</head>
<body style="">
<!-- 代码 开始 -->
<div class="baguetteBoxOne gallery">
<a href="images/1-1.jpg" data-caption="Golden Gate Bridge"><img src="images/thumbs/1-1.jpg"></a>
<a href="images/1-2.jpg" title="Midnight City"><img src="images/thumbs/1-2.jpg"></a>
<a href="images/1-3.jpg"><img src="images/thumbs/1-3.jpg"></a>
<a href="images/1-4.jpg"><img src="images/thumbs/1-4.jpg"></a>
<a href="images/1-5.jpg"><img src="images/thumbs/1-5.jpg"></a>
<a href="images/1-6.jpg"><img src="images/thumbs/1-6.jpg"></a>
<a href="images/1-7.jpg"><img src="images/thumbs/1-7.jpg"></a>
<a href="images/1-8.jpg"><img src="images/thumbs/1-8.jpg"></a>
</div>
<script>
baguetteBox.run('.baguetteBoxOne', {
animation: 'fadeIn',
});
</script>
<!-- 代码 结束 -->
</body>
</html>
JS代码(baguettebox.min.js):
/*! * baguetteBox.js * @author feimosi * @version 1.1.1 * @url https://github.com/feimosi/baguetteBox.js */
var baguetteBox=function(){
function t(t,n){
L.transforms=f(),L.svg=p(),e(),D=document.querySelectorAll(t),[].forEach.call(D,function(t){
var e=t.getElementsByTagName("a");
e=[].filter.call(e,function(t){
return j.test(t.href)}
);
var o=S.length;
S.push(e),S[o].options=n,[].forEach.call(S[o],function(t,e){
h(t,"click",function(t){
t.preventDefault?t.preventDefault():t.returnValue=!1,i(o),a(e)}
)}
)}
)}
function e(){
return(b=v("baguetteBox-overlay"))?(k=v("baguetteBox-slider"),w=v("previous-button"),C=v("next-button"),void(T=v("close-button"))):(b=y("div"),b.id="baguetteBox-overlay",document.getElementsByTagName("body")[0].appendChild(b),k=y("div"),k.id="baguetteBox-slider",b.appendChild(k),w=y("button"),w.id="previous-button",w.innerHTML=L.svg?E:"<
",b.appendChild(w),C=y("button"),C.id="next-button",C.innerHTML=L.svg?x:">
",b.appendChild(C),T=y("button"),T.id="close-button",T.innerHTML=L.svg?B:"X",b.appendChild(T),w.className=C.className=T.className="baguetteBox-button",void n())}
function n(){
h(b,"click",function(t){
t.target&&"IMG"!==t.target.nodeName&&"FIGCAPTION"!==t.target.nodeName&&s()}
),h(w,"click",function(t){
t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,c()}
),h(C,"click",function(t){
t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,u()}
),h(T,"click",function(t){
t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,s()}
),h(b,"touchstart",function(t){
N=t.changedTouches[0].pageX}
),h(b,"touchmove",function(t){
H||(t.preventDefault?t.preventDefault():t.returnValue=!1,touch=t.touches[0]||t.changedTouches[0],touch.pageX-N>40?(H=!0,c()):touch.pageX-N<-40&&(H=!0,u()))}
),h(b,"touchend",function(){
H=!1}
),h(document,"keydown",function(t){
switch(t.keyCode){
case 37:c();
break;
case 39:u();
break;
case 27:s()}
}
)}
function i(t){
if(A!==t){
for(A=t,o(S[t].options);
k.firstChild;
)k.removeChild(k.firstChild);
X.length=0;
for(var e,n=0;
n<S[t].length;
n++)e=y("div"),e.className="full-image",e.id="baguette-img-"+n,X.push(e),k.appendChild(X[n])}
}
function o(t){
t||(t={
}
);
for(var e in P)I[e]=P[e],"undefined"!=typeof t[e]&&(I[e]=t[e]);
k.style.transition=k.style.webkitTransition="fadeIn"===I.animation?"opacity .4s ease":"slideIn"===I.animation?"":"none","auto"===I.buttons&&("ontouchstart"in window||1===S[A].length)&&(I.buttons=!1),w.style.display=C.style.display=I.buttons?"":"none"}
function a(t){
"block"!==b.style.display&&(M=t,r(M,function(){
g(M),m(M)}
),d(),b.style.display="block",setTimeout(function(){
b.className="visible"}
,50))}
function s(){
"none"!==b.style.display&&(b.className="",setTimeout(function(){
b.style.display="none"}
,500))}
function r(t,e){
var n=X[t];
if("undefined"!=typeof n){
if(n.getElementsByTagName("img")[0])return void(e&&e());
imageElement=S[A][t],imageCaption=imageElement.getAttribute("data-caption")||imageElement.title,imageSrc=l(imageElement);
var i=y("figure"),o=y("img"),a=y("figcaption");
n.appendChild(i),i.innerHTML='<div class="spinner"><div class="double-bounce1"></div><div class="double-bounce2"></div></div>',o.onload=function(){
var n=document.querySelector("#baguette-img-"+t+" .spinner");
i.removeChild(n),!I.async&&e&&e()}
,o.setAttribute("src",imageSrc),i.appendChild(o),I.captions&&imageCaption&&(a.innerHTML=imageCaption,i.appendChild(a)),I.async&&e&&e()}
}
function l(t){
var e=imageElement.href;
if(t.dataset){
var n=[];
for(var i in t.dataset)"at-"!==i.substring(0,3)||isNaN(i.substring(3))||(n[i.replace("at-","")]=t.dataset[i]);
keys=Object.keys(n).sort(function(t,e){
return parseInt(t)<parseInt(e)?-1:1}
);
for(var o=window.innerWidth*window.devicePixelRatio,a=0;
a<keys.length-1&&keys[a]<o;
)a++;
e=n[keys[a]]||e}
return e}
function u(){
M<=X.length-2?(M++,d(),g(M)):I.animation&&(k.className="bounce-from-right",setTimeout(function(){
k.className=""}
,400))}
function c(){
M>=1?(M--,d(),m(M)):I.animation&&(k.className="bounce-from-left",setTimeout(function(){
k.className=""}
,400))}
function d(){
var t=100*-M+"%";
"fadeIn"===I.animation?(k.style.opacity=0,setTimeout(function(){
L.transforms?k.style.transform=k.style.webkitTransform="translate3d("+t+",0,0)":k.style.left=t,k.style.opacity=1}
,400)):L.transforms?k.style.transform=k.style.webkitTransform="translate3d("+t+",0,0)":k.style.left=t}
function f(){
var t=y("div");
return"undefined"!=typeof t.style.perspective||"undefined"!=typeof t.style.webkitPerspective}
function p(){
var t=y("div");
return t.innerHTML="<svg/>","http://www.w3.org/2000/svg"==(t.firstChild&&t.firstChild.namespaceURI)}
function g(t){
t-M>=I.preload||r(t+1,function(){
g(t+1)}
)}
function m(t){
M-t>=I.preload||r(t-1,function(){
m(t-1)}
)}
function h(t,e,n){
t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent("on"+e,n)}
function v(t){
return document.getElementById(t)}
function y(t){
return document.createElement(t)}
var b,k,w,C,T,N,E='<svg width="44" height="60"><polyline points="30 10 10 30 30 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',x='<svg width="44" height="60"><polyline points="14 10 34 30 14 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"stroke-linecap="butt" fill="none" stroke-linejoin="round"/></svg>',B='<svg width="30" height="30"><g stroke="rgb(160,160,160)" stroke-width="4"><line x1="5" y1="5" x2="25" y2="25"/><line x1="5" y1="25" x2="25" y2="5"/></g></svg>',I={
}
,P={
captions:!0,buttons:"auto",async:!1,preload:2,animation:"slideIn"}
,L={
}
,M=0,A=-1,H=!1,j=/.+\.(gif|jpe?g|png|webp)/i,D=[],S=[],X=[];
return[].forEach||(Array.prototype.forEach=function(t,e){
for(var n=0;
n<this.length;
n++)t.call(e,this[n],n,this)}
),[].filter||(Array.prototype.filter=function(t,e,n,i,o){
for(n=this,i=[],o=0;
o<n.length;
o++)t.call(e,n[o],o,n)&&i.push(n[o]);
return i}
),{
run:t}
}
();
CSS代码(baguettebox.min.css):
/*! * baguetteBox.js * @author feimosi * @version 1.1.1 * @url https://github.com/feimosi/baguetteBox.js */
#baguetteBox-overlay{display:none;opacity:0;position:fixed;overflow:hidden;top:0;left:0;width:100%;height:100%;z-index:1000000;background-color:#222;background-color:rgba(0,0,0,.8);-webkit-transition:opacity .5s ease;transition:opacity .5s ease}
#baguetteBox-overlay.visible{opacity:1}
#baguetteBox-overlay .full-image{display:inline-block;position:relative;width:100%;height:100%;text-align:center}
#baguetteBox-overlay .full-image figure{display:inline;margin:0;height:100%}
#baguetteBox-overlay .full-image img{display:inline-block;width:auto;height:auto;max-height:100%;max-width:100%;vertical-align:middle;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);-moz-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6)}
#baguetteBox-overlay .full-image figcaption{display:block;position:absolute;bottom:0;width:100%;text-align:center;line-height:1.8;color:#ccc;background-color:#000;background-color:rgba(0,0,0,.6);font-family:sans-serif}
#baguetteBox-overlay .full-image:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}
#baguetteBox-slider{position:absolute;left:0;top:0;height:100%;width:100%;white-space:nowrap;-webkit-transition:left .4s ease,-webkit-transform .4s ease;transition:left .4s ease,-moz-transform .4s ease;transition:left .4s ease,transform .4s ease}
#baguetteBox-slider.bounce-from-right{-webkit-animation:bounceFromRight .4s ease-out;animation:bounceFromRight .4s ease-out}
#baguetteBox-slider.bounce-from-left{-webkit-animation:bounceFromLeft .4s ease-out;animation:bounceFromLeft .4s ease-out}
.baguetteBox-button#next-button,.baguetteBox-button#previous-button{top:50%;top:calc(50% - 30px);width:44px;height:60px}
.baguetteBox-button{position:absolute;cursor:pointer;outline:0;padding:0;margin:0;border:0;-moz-border-radius:15%;border-radius:15%;background-color:#323232;background-color:rgba(50,50,50,.5);color:#ddd;font:1.6em sans-serif;-webkit-transition:background-color .4s ease;transition:background-color .4s ease}
.baguetteBox-button:hover{background-color:rgba(50,50,50,.9)}
.baguetteBox-button#next-button{right:2%}
.baguetteBox-button#previous-button{left:2%}
.baguetteBox-button#close-button{top:20px;right:2%;right:calc(2% + 6px);width:30px;height:30px}
.baguetteBox-button svg{position:absolute;left:0;top:0}
.spinner{width:40px;height:40px;display:inline-block;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-20px}
.double-bounce1,.double-bounce2{width:100%;height:100%;-moz-border-radius:50%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:bounce 2s infinite ease-in-out;animation:bounce 2s infinite ease-in-out}
.double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}
@-webkit-keyframes bounceFromRight{0%{margin-left:0}
50%{margin-left:-30px}
100%{margin-left:0}
}
@keyframes bounceFromRight{0%{margin-left:0}
50%{margin-left:-30px}
100%{margin-left:0}
}
@-webkit-keyframes bounceFromLeft{0%{margin-left:0}
50%{margin-left:30px}
100%{margin-left:0}
}
@keyframes bounceFromLeft{0%{margin-left:0}
50%{margin-left:30px}
100%{margin-left:0}
}
@-webkit-keyframes bounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}
50%{-webkit-transform:scale(1);transform:scale(1)}
}
@keyframes bounce{0%,100%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0)}
50%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}
}
CSS代码(zzsc.css):
body{background-color:#666;color:#ddd;font-family:Helvetica,Arial,sans-serif;margin:0;}
a,a:visited{color:#9EB4CA;text-decoration:none;}
h1,h2,h3,footer,.gallery{text-align:center;}
pre{width:340px;margin:0 auto;border:dashed 1px #aaa;margin-bottom:10px;}
header,footer{display:block;padding:.2em 0;background:#555;box-shadow:0 0 8px #222;}
footer{margin-top:1.5em;}
.content{max-width:1160px;margin:0 auto;}
.gallery:after{content:'';display:block;height:2px;margin:.5em 0 1.4em;background:-webkit-linear-gradient(left,rgba(0,0,0,0) 0%,rgba(77,77,77,1) 50%,rgba(0,0,0,0) 100%);background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(77,77,77,1) 50%,rgba(0,0,0,0) 100%);}
.gallery img{height:100%;}
.gallery a{width:240px;height:180px;display:inline-block;overflow:hidden;margin:4px 6px;box-shadow:0 0 4px -1px #000;}
.baguetteBoxOne{width:1160px;margin:0 auto;}
/* Highlight.js Tomorrow Night style */
.hljs-comment{color:#969896}
.hljs-tag{color:#f8f8f2}
.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-title,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#c66}
.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#de935f}
.css .hljs-rules .hljs-attribute,.ruby .hljs-class .hljs-title{color:#f0c674}
.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#b5bd68}
.css .hljs-hexcolor{color:#8abeb7}
.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#81a2be}
.hljs-keyword,.javascript .hljs-function{color:#b294bb}
.hljs{display:block;overflow-x:auto;background:#35383C;color:#c5c8c6;padding:.8em}
.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}