这是一款效果非常炫酷的jQuery和CSS3推拉式隐藏侧边栏网格图片画廊特效。这个图片画廊特效中所有缩略图以网格形式排列,当用户点击相应的缩略图后,高清大图从右边滑出,整个缩略图面板被向左推,右侧显示大图及图片的文字说明。
制作方法
HTML结构
这个图片画廊使用无序列表来制作,外部使用<section>
来包裹,最外层使用<main>
元素。
<main role="main" id="main">
<section class="tiles-a">
<ul>
<li>
<a class="gallery" href="#" style="background: url('http://i.imgur.com/J3gQPXH.jpg'); background-size: cover;" aria-controls="aside" aria-expanded="false">
<div class="details visually-hidden">
<img src="http://i.imgur.com/t5Nd1jj.jpg" alt="...">
<div class="text-copy wrapper">
<h3>Name Here</h3>
<p>...</p>
</div>
</div>
</a>
</li>
......
</ul>
</section>
</main>
右侧隐藏的滑动侧边栏使用的是<aside>
元素,里面使用一个SVG来制作关闭按钮。
<aside role="complementary" id="aside"
aria-hidden="true"
aria-expanded="false">
<a href="#" class="close">
<img src="close.svg" alt="Close button">
<span class="visually-hidden">Return to main content
</span>
</a>
<div class="aside--details" tabindex="0"
aria-live="polite"
aria-atomic="true"
aria-label="Image details">
</div>
</aside>
CSS样式
这个网格图片画廊的CSS样式比较简单,其中使用媒体查询来控制图片的网格布局。其它代码相对简单,请参考下载文件。
@media (min-width: 640px) {
.tiles-a li {
float: left;
width: 33.33%;
}
}
JAVASCRIPT
这个网格图片画廊的js代码中,所有的功能块都封装成了函数,showAside()
是显示隐藏侧边栏,killAside()
是关闭侧边栏。loadTileData()
是为侧边栏加载数据。
// load data to aside
function loadTileData(target){
var $this = $(target),
itemHtml = $this.find(".details").html();
$asideTarget.html(itemHtml);
showAside();
}
// show/hide aside
function showAside(){
if(!$("html").hasClass(slideClass)){
$("html").toggleClass(slideClass);
$aside.attr("aria-hidden","false");
focusCloseButton();
}
}
// kill aside
function killAside(){
if($("html").hasClass(slideClass)){
$("html").removeClass(slideClass);
sendFocusBack();
$aside.attr("aria-hidden","true");
$tiles.attr("aria-expanded","false");
}
}
其它js代码请参考下载文件。
版权声明
文章来源: https://www.uihtm.com/jquery/8839.html
版权说明:仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们非常重视版权问题,如有侵权请邮件(44784009#qq.com)与我们联系处理。敬请谅解!