2012-01-13 2 views
0

내 메뉴 버튼 다음에 어떤 블록이 활성 상태인지 나타내는 블록이 있습니다. 새로 고침 후 블록의 위치를 ​​유지할 수있는 방법이 있습니까? 현재 서브 페이지의 링크를 누르면 위치가 재설정됩니다.jquery는 페이지 새로 고침 후 애니메이션 상태를 기억합니다.

jQuery 코드 :

$("button",document.body).click(function(){ 
    var offset = $(this).offset(); 
    var offsetBody = $("body").offset(); 
    $("#block") 
    .animate({ 
    left: (offset.left - offsetBody.left) 
    }, 200); 
}); 

답변

1

Jquery는 클라이언트 측 스크립트입니다. 페이지를 다시로드하거나 새 페이지를 탐색 할 때 서버에서 정보를 요청하면 모든 클라이언트 측 데이터가 손실됩니다.

그러나 정확한 문제에 따라 다양한 해결책이 있습니다.

  1. 당신은 당신이 뭔가에 동일한 속성 값을 가지고 마크 업의 일부 요소를 코딩 할 수 개별적으로 각 페이지의 블록의 위치에만 관심이있는 경우, DOM 경우, 부하에 따라이 값을 확인 그에 따라 블록을 이동하십시오.

  2. 값을 저장하기 위해 클라이언트 측 쿠키를 사용할 수 있으며 DOM을로드 할 때이 변수를 확인하고 그에 따라 블록을 애니메이션화 할 수 있습니다.

  3. 당신은 PHP에서 서버 측 변수를 설정하고 동적으로 이러한 세 가지 솔루션 작업 중 하나가 당신이 생각 할 것 1.

의 요소를 작성하려면이 변수를 사용하기 AJAX 호출을 사용할 수? 더 정확하게 당신이 이것을 어떻게하고 싶은지를 말해 줄 수 있다면 좀 더 자세하게 들어갈 수 있습니다. 방법 1.

를 들어

JQuery와 .attr() 방법을 사용하는 단계;

는 마크 업

<meta name="description" content="home" /> 

JQuery와 그것이 내가이 정확히 당신이 원하는 기능이 아닌 조금 걱정하지만

var page = $('meta[name=description]').attr("content"); 
if (page == "home") { 
    // you know where it should be 
} else if (page == "account") { 
    // you know where it should be 
} 

입니까? 방법 3

표식

<?php 
    session_start(); 
    $pos = $_SESSION['position']; 
    echo '<meta name="description" content="' . $pos . '" />' 
?> 

JQuery와

var position; 
// perform animation stuff and store position in the variable 
// make a post() request after the position has changed 
$.post("position.php", { pos: position }); 

PHP의 위치를 ​​

.PHP

<?php 
    session_start(); 
    $_SESSION['position'] = $_POST['pos']; 
?> 
+0

해결책 1은 나에게 맞는 것처럼 보이는데, 나는 직장에 막혀 있기 때문에 쿠키에 의존하고 싶지 않다. 나에게 코드 예제를 줄 수 있다면 내 사이트에 맞게 수정할 수 있어야한다. 매우 고마워요. – Vindfrisk

+0

당신의 해결책이 저를 결국 거기에 데려다 줄 수 있는지 확실하지 않습니다. iframe과 함께 작동하도록 만들었지 만 iframe을 사용하지 않기 때문에 다른 문제가 많이 생길 수 있습니다. 여기를 보시고 내가 찾는 것을 보시려면 [link] (http://vindfrisk.se/test2/)를보십시오. – Vindfrisk

+0

그러면 원하는 기능을 정확히 정의 해보십시오. 가능한 가장 단순한 모델입니다. 내가 원하는 것을 완전히 얻지 못했을 가능성이 있습니다. 귀하의 링크가 깨진 페이지를 보여줍니다! 나의 나쁜 그것은 당신의 테스트 페이지입니다. – Neilos

0

는 다음과 같은 객체의 위치를 ​​저장할 수 있습니다. 1. 로컬 저장소 (브라우저 지원) 최신 브라우저에서는 위치를 Localstorage에 저장할 수 있습니다. 전문가 : 빠르고 사용자 친화적입니다. 단점 : 크로스 브라우저를 처리해야합니다. 2. 서버 쪽. 그렇지 않으면 serverside() 전문가에게 저장해야합니다. 브라우저를 고려할 필요가 없습니다. 단점 : 천천히, 인터넷 대기 시간에 관심을 가져야합니다. 3. 쿠키.

+1

로컬 저장소는 HTML 5이며 이것은 초기 단계에 있지만 잠재적 인 방문자를 완전히 파헤 치고 있습니다. – Neilos

+0

바로 그 이유는 내가 현대적인 브라우저라고 말했고, 각 솔루션은 장단점이 있습니다. 맞습니까? 단점을 용인 할 수 있다면, 전문가의 혜택을 누릴 수 있습니다. – Gran

+0

나는 그저 내가 객관적이라는 사실에 대해 논쟁하지 않고있다. – Neilos

관련 문제