Simple Thumb Link Preview
Oke kali ini Arlina Code akan berbagi tips tentang cara memasang simple thumb link preview di blog.
Penerapan thumb link preview ini pernah Saya temui sebelumnya di template blogger yang dibuat MKR Site. Fungsi dari efek ini cukup sederhana yaitu memberikan tampilan suatu halaman web / blog yang diterapkan melalui link halaman web tersebut dengan memberikan class tertentu.
Berikut cara penerapannya :
Silakan terapkan script di bawah ini tepat di atas </body> atau </head>
<script>
//<![CDATA[
$(function(){$("#p1 a").miniPreview({prefetch:"pageload"}),$("#p2 a").miniPreview({prefetch:"parenthover"}),$("#p3 a").miniPreview({prefetch:"none"})}),function(e){var t="link-preview";e.fn.miniPreview=function(s){return this.each(function(){var n=e(this),r=n.data(t);r&&r.destroy(),(r=new i(n,s)).generate(),n.data(t,r)})};var i=function(t,s){this.$el=t,this.options=e.extend({},this.defaultOptions,s),this.counter=i.prototype.sharedCounter++};i.prototype={sharedCounter:0,defaultOptions:{width:256,height:144,scale:.25,prefetch:"pageload"},generate:function(){this.createElements(),this.setPrefetch()},createElements:function(){var i=e("<div>",{class:t+"-wrapper"}),s=e("<div>",{class:t+"-loading"}),n=e("<iframe>",{class:t+"-frame"}),r=e("<div>",{class:t+"-cover"});i.appendTo(this.$el).append(s,n,r),i.css({width:this.options.width+"px",height:this.options.height+"px"});var a=100/this.options.scale;n.css({width:a+"%",height:a+"%",transform:"scale("+this.options.scale+")"});var o=parseInt(this.$el.css("font-size").replace("px",""),10),h=(this.$el.height(),(this.$el.width()-i.outerWidth())/2);i.css({left:h+"px"})},setPrefetch:function(){switch(this.options.prefetch){case"pageload":this.loadPreview();break;case"parenthover":this.$el.parent().one(this.getNamespacedEvent("mouseenter"),this.loadPreview.bind(this));break;case"none":this.$el.one(this.getNamespacedEvent("mouseenter"),this.loadPreview.bind(this));break;default:throw"Prefetch setting not recognized: "+this.options.prefetch}},loadPreview:function(){this.$el.find("."+t+"-frame").attr("src",this.$el.attr("href")).on("load",function(){e(this).css("background-color","#fff")})},getNamespacedEvent:function(e){return e+"."+t+"_"+this.counter},destroy:function(){this.$el.parent().off(this.getNamespacedEvent("mouseenter")),this.$el.off(this.getNamespacedEvent("mouseenter")),this.$el.find("."+t+"-wrapper").remove()}}}(jQuery);
//]]>
</script>
Kemudian terapkan kode di bawah ini sebelum </style>
.break{text-align:center}
.link-preview-wrapper{-moz-box-sizing:content-box;box-sizing:content-box;position:absolute;overflow:hidden;z-index:-1;opacity:0;margin-top:-4px;border:1px solid #aaa;box-shadow:0 4px 6px -2px rgba(0,0,0,0.3);transition:z-index steps(1) .3s,opacity .3s,margin-top .3s}
a:hover .link-preview-wrapper{z-index:2;opacity:1;margin-top:6px;transition:opacity .3s,margin-top .3s}
.link-preview-loading,.link-preview-cover{position:absolute;top:0;bottom:0;right:0;left:0}
.link-preview-loading{display:table;height:100%;width:100%;font-size:15px;text-align:center;color:#999;background-color:#e5e5e5}
.link-preview-loading::before{content:'Loading...';display:table-cell;text-align:center;vertical-align:middle}
.link-preview-cover{background-color:rgba(0,0,0,0)}
.link-preview-frame{border:none;-webkit-transform-origin:0 0;transform-origin:0 0}
Simpan template.
Penerapan pada postingan :
Bungkus tulisan dengan class id="p1" atau id="p2" atau id="p3" contoh penerapan seperti di bawah ini
<p id="p1">Donec at dolor mi. Pellentesque sit amet ornare risus. Fusce varius ut turpis sed semper. In ut est et enim gravida interdum nec id quam <a href="http://arlinadesign.blogspot.com">Arlina Code</a></p>
Hasilnya akan terlihat seperti demo di bawah ini
Keterangan
- id="p1" = Thumbnail akan tampil saat hover pada link.
- id="p2" = Thumbnail tidak akan tampil sebelum hover pada area tulisan.
- id="p3" = Thumbnail akan tampil jika diperlukan, yang akan menghemat bandwidth namun akan memerlukan waktu saat hover kembali pada link.