This is a horizontal photo gallery. All images and their captions are retrieved from Flickr. Each image gets pasted on an Image Board, and each caption gets rendered on a Text Slot. The Image Board sits atop a button, so that when you click on the photograph a hyperlink gets activated, and you get taken to a page on Flickr where the photo is stored.
To try these parts as used, simply copy and paste the following snippet of HTML into a Constructible HTML file.
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api1"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api2"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api3"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api4"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api5"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api6"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoServer2.js"
id="flickr_photo_api7"
spec="0B841C28C1844C8781B8E5DD083DFD08">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api1"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api2"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api3"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api4"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api5"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api6"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div is_proxy="true"
properties="uses_api_key:'7649c72ff120a2d7da9c99a04788f964'"
script="http://js.constructibl.es/specs/FlickrPhotoInfoServer2.js"
id="flickr_photo_info_api7"
spec="E485D6687EFD4E5F89C033303CD2617A">
<a href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo"
rel="rpc">
</a>
</div>
<div properties="emits:{ photo_id: 380173157 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image1"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/380173157/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id: 3559417932 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image2"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/3559417932/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id: 3178864430 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image3"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/3178864430/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id: 2309615328 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image4"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/2309615328/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id:2310768963 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image5"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/2310768963/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id:2313118943 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image6"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/2313118943/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<div properties="emits:{ photo_id:2315374581 }"
script="http://js.constructibl.es/specs/Emitter.js"
id="image7"
spec="959226399cc968c42d3e76f28257fc8a"><!--
The flickr photo was found at http://www.flickr.com/photos/tjt195/2315374581/
The last bit of number is what I am emitting as the value of photo_id
-->
</div>
<style type="text/css">
#imageboard1 {
left:60px;
height:333px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard1">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard2 {
left:620px;
height:334px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard2">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard3 {
left:1180px;
height:333px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard3">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard4 {
left:1740px;
height:333px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard4">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard5 {
left:2300px;
height:334px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard5">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard6 {
left:2860px;
height:333px;
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard6">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imageboard7 {
left:3370px;
height:334px;
}
#imageboard7 img {
position:absolute;
left:0px;
top:0px;
clip:rect(0px, 380px, 333px, 50px);
}
.ImageBoard {
top:60px;
width:500px;
}
</style>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard7">
<a>
<img/>
</a>
</div>
<style type="text/css">
#imagecaption1 {
left:60px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption1">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption2 {
left:620px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption2">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption3 {
left:1180px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption3">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption4 {
left:1740px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption4">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption5 {
left:2300px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption5">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption6 {
left:2860px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption6">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#imagecaption7 {
left:3420px;
top:410px;
}
.ImageCaption {
line-height:12pt;
}
</style>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption7">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<style type="text/css">
#pasteboard1 {
left:1in;
top:1.5in;
background-color:black;
width:3920px;
height:500px;
}
.PasteBoard {
}
</style>
<div spec="74c94a4a8a1faa94cde43ef1c13f07f4"
script="http://js.constructibl.es/specs/Pasteboard.js"
id="pasteboard1"
class="PasteBoard">
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard1">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption1">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard2">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption2">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard3">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption3">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard4">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption4">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard5">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption5">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard6">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption6">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
<div spec="bd763956f56bffa42119480a99ac1382"
script="http://js.constructibl.es/specs/ImageBoard.js"
properties="does_link_blank_anchors:true"
class="ImageBoard"
id="imageboard7">
<a>
<img/>
</a>
</div>
<div spec="7A2FA5EDC6F44288A7C740F75E18ED49"
script="http://js.constructibl.es/specs/TextSlots.js"
class="ImageCaption"
id="imagecaption7">
<var field="name"
class="ImageTitle">
</var>
<br/>
<dfn class="ImageDate">Photo taken on
</dfn>
<var field="date"
class="ImageDate">
</var>
<br/>
</div>
</div>
Was this example helpful? Do you have any questions? Tell us about it below!