Javascript 美食家是如何实现这种背景图像效果的?
我很好奇Foodily.com是如何实现这种背景效果的?(无论浏览器大小如何调整,背景都会被拉伸并看起来很好)Javascript 美食家是如何实现这种背景图像效果的?,javascript,css,Javascript,Css,我很好奇Foodily.com是如何实现这种背景效果的?(无论浏览器大小如何调整,背景都会被拉伸并看起来很好) 嗯。背景对我来说不太合适。(铬)。 也许你说的是以内容为中心?然后使用position:absolute。这是一个高分辨率图像(1446x960)。它们不会缩小,只会向上缩放(如果浏览器尺寸小于图像,则只会剪裁图像)。如果将浏览器的大小调整为大于图像,它会开始拉伸图像,然后不再像图像那样清晰。这是一个1920 x 1200的图像,因此会影响图像在不同分辨率下的外观。之后,CSS告诉im
嗯。背景对我来说不太合适。(铬)。
也许你说的是以内容为中心?然后使用position:absolute。这是一个高分辨率图像(1446x960)。它们不会缩小,只会向上缩放(如果浏览器尺寸小于图像,则只会剪裁图像)。如果将浏览器的大小调整为大于图像,它会开始拉伸图像,然后不再像图像那样清晰。这是一个1920 x 1200的图像,因此会影响图像在不同分辨率下的外观。之后,CSS告诉img标签的宽度为100%。因此,当您拉伸浏览器时,图像将确保100%处于该位置。它们还设置了最小宽度,以确保图像宽度不小于1600px。它们保留
与我们在电脑上的操作方式相同
function resize_bg(){
$(“#bg”).css(“左”,“0”);
$(“#bg top”).css(“左”,“0”);
var doc_width=$(窗口).width();
var doc_height=$(窗口).height();
var image_width=$(“#bg”).width();
var image_height=$(“#bg”).height();
var图像比=图像宽度/图像高度;
var new_width=单据宽度;
var new_height=数学圆(new_width/image_ratio);
var瓶子宽度=$(“#瓶子”).width();
如果(新高度(960+(瓶宽+15))){
$(“#瓶”).css({“右”:0});
}否则{
$(“#瓶子”).css({“右”:((doc_width-960)-(瓶子宽度+15));
}
$(“#背景顶部”)。宽度(新的#U宽度);
$(“#背景顶部”)。高度(新高度);
$(“#bg”).宽度(新宽度);
$(“#bg”).高度(新高度);
}
css
function resize_bg(){
$("#bg").css("left","0");
$("#bg-top").css("left","0");
var doc_width = $(window).width();
var doc_height = $(window).height();
var image_width = $("#bg").width();
var image_height = $("#bg").height();
var image_ratio = image_width/image_height;
var new_width = doc_width;
var new_height = Math.round(new_width/image_ratio);
var bottle_width = $("#bottle").width();
if(new_height<doc_height){
new_height = doc_height;
new_width = Math.round(new_height*image_ratio);
var width_offset = Math.round((new_width-doc_width)/2);
$("#bg").css("left","-"+width_offset+"px");
$("#bg-top").css("left","-"+width_offset+"px");
}
if(doc_width>(960+(bottle_width+15))){
$("#bottle").css({"right":0});
}else{
$("#bottle").css({"right":((doc_width-960)-(bottle_width+15))});
}
$("#bg-top").width(new_width);
$("#bg-top").height(new_height);
$("#bg").width(new_width);
$("#bg").height(new_height);
}
标记
img {
width:100%;
min-width:1600px;
z-index:0;
min-width:100px;
}
html, body {
height:100%;
min-width:100px;
}
body {
margin:0;
padding:0;
}
基本上,他们正在为图像设置一个最小宽度,所以它至少需要这个大小,但可以在宽度为100%的情况下增长
可能会让人大吃一惊的是,它不是元素的背景图像,而是一个实际的img标签,设置为显示在所有内容下。他们所做的是一个假背景图像:
<img id="bg" src="http://foodily.com/images/BG_grapes.jpg"/>
仅适用于某些浏览器,请尝试backstretch for jQuery以完成相同的任务:
该解决方案将与更广泛的设计、浏览器等配合使用。为了完成背景,他们使用了一个大的图形文件,这样一来,它就占据了大部分用于查看页面的屏幕大小。图形文件放置在固定位置div中,设置为宽度的100%,并设置为最底层(z-index 0)。即使在滚动时,也是固定位置将图形保持在适当位置,并创建良好的效果
然后,所有其他内容都显示在背景图像层的顶部。如果您的浏览器实际渲染的屏幕尺寸大于图像,则浏览器会拉伸图像以适应需要(同样,它会约束大于img标记所列尺寸的图像)。它也不会在此处拉伸-这是一张大照片,分辨率较低的照片只会显示其中的一部分。也许有一个大屏幕的人可以帮忙:)@Konerak::)我知道下面的IE8不完全支持最小宽度。
<img id="bg" src="http://foodily.com/images/BG_grapes.jpg"/>
<div id="rotate_bg" style="display: block; "><img id="rotate_bg_img" src="/images/BG_peaches.jpg"></div>