2013-11-23 1 views
0

JS에서 초보자이며 무작위로 내 사이트의 페이지에 대한 배경 이미지를 선택하기위한 아주 간단한 스크립트를 작성했습니다. 문제는 새 페이지로 이동하거나 동일한 페이지를 다시로드 할 때 동일한 이미지가 무작위로 선택 될 때가끔 있습니다. 방금 브라우저에서 배경으로 사용 된 이미지를 저장하는 방법이 필요합니다.브라우저에 저장하여 무작위 페이지 배경을 반복하지 마십시오.

var rand_image_bg = function(){ 
     $('<div id="background_container"><img class="background_image"/></div>').insertAfter("#menu"); 
     var image_src = ["Images/spaceship.jpg", "Images/hallway.jpg", "Images/steampunk.jpg", "Images/mine.jpg"]; 
     var selected_bg_image = Math.floor((Math.random()*image_src.length)+1)-1; 
     console.log($("body").data("bg_image")); 
     if (selected_bg_image == /*Number of the previous background image*/) { 
      selected_bg_image = image_src.length-1-selected_bg_image; 
     } 
     $(".background_image").attr("src",""+image_src[selected_bg_image]+""); 
     /*Record number of the new background image for later*/ 
    } 

어떤 조언을 누군가가 좋은 것입니다 저를 줄 수 :

여기 내 스크립트입니다. 나는 초심자이므로 계속 간결하게하십시오. 감사!

+0

봐. – Boaz

+0

일반적으로 상태를 HTML로 유지하는 세 가지 방법이 있습니다 (더 많이 있지만이 세 가지가 가장 일반적으로 사용됩니다). 쿠키 또는 localStorage를 사용하여 클라이언트 측에 정보를 저장하거나 서버 측에 정보를 저장합니다. 처음 두 가지는 아마 이것과 가장 관련이 있습니다. – adeneo

+0

jQuery를 이미 사용하고 있으므로 jquery.cookie.js 플러그인을 살펴보십시오. 쿠키를 저장하고 가져 오는 것은 매우 쉽습니다. https://github.com/carhartl/jquery-cookie image_src 배열에 사용했던 경로의 인덱스를 저장하는 것만으로 간단합니다. –

답변

0

는 아데노의 조언에 따라 내가 쓴 작동하는 것 같다 : 쿠키에

var rand_image_bg = function(){ 
     $('<div id="background_container"><img class="background_image"/></div>').insertAfter("#menu"); 
     var image_src = ["Images/spaceship.jpg", "Images/hallway.jpg", "Images/steampunk.jpg", "Images/mine.jpg"]; 
     var selected_bg_image = Math.floor((Math.random()*image_src.length)+1)-1; 
     if (selected_bg_image == localStorage.bg_image) { 
      selected_bg_image = image_src.length-1-selected_bg_image; 
     } 
     $(".background_image").attr("src",""+image_src[selected_bg_image]+""); 
     localStorage.bg_image = selected_bg_image; 
    } 
    rand_image_bg();