HTML
CSS
body{background:url(http://wallpaperfast.com/wp-content/uploads/2013/05/Beautiful-Beach-Wallpaper.jpg) no-repeat;background-size:100%;}
.wrapper{width:100%;}
.on{opacity:0;cursor:pointer;}
.block{/*width:100px;height:100px;*/display:block;float:left;}
.inner-block{display:block;background:rgba(255, 255, 255, 0.4);margin:1px;height:98%;width:98%;}
JS
$(document).ready(function() {
// Get scrollbar width
function getScrollbarWidth() {
var outer = document.createElement("div");
outer.style.visibility = "hidden";
outer.style.width = "100px";
document.body.appendChild(outer);
var widthNoScroll = outer.offsetWidth;
outer.style.overflow = "scroll";
var inner = document.createElement("div");
inner.style.width = "100%";
outer.appendChild(inner);
var widthWithScroll = inner.offsetWidth;
outer.parentNode.removeChild(outer);
return widthNoScroll - widthWithScroll;
}
// Get scrollbar width
var winWidth = $(window).width() - getScrollbarWidth();
var winHeight = $(window).height();
var winRatio = winWidth/winHeight;
//alert(winWidth);
var numBlock = (winWidth/10);
var blockHeight = numBlock;
var i;
for(i=0;i<numBlock;i++){
$('.wrapper').append('<div class="block"><div class="inner-block"></div></div>');
$(".block").css({"width":numBlock +'px', "height":blockHeight +'px'});
}
$(function(){
$(".block").hover(function(){
var elem = $(this);
setTimeout (function(){
elem.addClass("on");
}, 100) ;
},function(){
var elem = $(this);
setTimeout (function(){
elem.removeClass("on");
}, 200) ;
})
});
$(window).resize(function(){
var winWidth = $(window).width() - getScrollbarWidth();
var winHeight = $(window).height();
var winRatio = winWidth/winHeight;
//winRatio = Math.min(winRatio, 1.0);
$(".block").width($(".block").width()*winRatio);
$(".block").width($(".block").height()*winRatio);
})
});
Example
Also, was ist das Problem? – mohkhan
Forloop für Blöcke sind mehr als Fenster Höhe sollte nicht vertikal scroll kommen – matthewb
Müssen Ihre 10 Blöcke immer 10 in einer Reihe sein? oder können sie sich entsprechend ändern? Sie können dies möglicherweise mit einem cleveren CSS erreichen, je nachdem, wie die Blöcke nach dem Auffüllen der Seite funktionieren sollen. –