tôi sẽ tải hình ảnh nền như vậy
<style>
body{
background-image:url('mybackground');
background-repeat:no-repeat;
}
</style>

Khi hình ảnh đã nạp chúng ta có thể làm một chút JavaScript mà không trình duyệt làm nhiều công việc phụ. chúng tôi có thể kiểm tra xem chiều cao của hình ảnh có lấp đầy toàn bộ cửa sổ hay không.
<script>
var el = $('body')[0];
var src = $(el).css('background-image').slice(4, -1);
var img = new Image();
checkHeight = function(){
if(img.height < window.innerHeight){
repeatBg();
}
}
img.onload = checkHeight();
img.src = src;
</script>
Nếu nền ảnh không lấp đầy chiều cao đầy đủ của cửa sổ thì nền này cần lặp lại/lật ngay (điều này sẽ tăng thời gian tải); nếu không, trình xử lý sự kiện có thể được sử dụng để kích hoạt kiểm tra sau này.
Hàm sau vẽ hình ảnh vào phần tử canvas và tạo một dataURL. Src nền-hình ảnh được cập nhật lên dataURL mới và nền lặp được thay đổi từ không lặp lại thành lặp lại-y (theo chiều dọc);
trình xử lý sự kiện sẽ bị xóa để chức năng không được gọi lại.
<canvas style="display:none" id="canvas"></canvas>
<script>
repeatBg = function(){
var canvas = $('#canvas')[0];
var ctx = canvas.getContext("2d");
canvas.width = img.width;
canvas.height = img.height *2 ;
ctx.drawImage(img,0,0);
ctx.scale(1, -1);
ctx.translate(0, -img.height);
ctx.drawImage(img, 0, -img.height, img.width, img.height);
var dataURL = canvas.toDataURL();
$(el).css({
'background-image' : 'url('+dataURL+')',
'background-repeat' : 'repeat-y'
});
$(window).off('load, scroll, resize', checkHeight);
}
$(window).on('load, scroll, resize', checkHeight);
</script>
Và hey mau

http://jsfiddle.net/dtjones1988/y49rvu73/6/
Bạn có thể tạo một hình ảnh ra khỏi ảnh gốc và đảo ngược và đặt chúng làm nền với lặp lại-y –