javascript
  • jquery
  • css
  • scroll
  • prettyphoto
  • 2014-03-27 5 views 0 likes 
    0

    아래의 자바 스크립트 액션 (prettyPhoto 라이트 박스)이 호출 될 때, 오버 플로우를 만들기 위해 바디의 스타일을 수정해야합니다 : 숨김 및 위치 : 고정.자바 스크립트 액션이 호출 될 때 스타일 수정 - prettyPhoto 라이트 박스

    <script type="text/javascript" charset="utf-8"> 
        $(document).ready(function(){ 
        $("a[rel^='prettyPhoto']") .prettyPhoto({ 
        }); 
        }); 
    </script> 
    

    그래서, 내가 좋아하는 뭔가를 삽입해야합니다

    $('body').css('overflow','hidden'); 
    $('body').css('position','fixed'); 
    

    을 ...하지만 라이트는 열려있을 때만.

    기본적으로 prettyPhoto가 활성화되어있는 동안 본문에서 스크롤을 멈춰야합니다. 어떤 아이디어?

    답변

    0

    prettyPhoto를 여는 기능에 기본 JavaScript 코드를 넣어보세요.

    document.getElementById(BodyId).setAttribute("class","body_noscrolling"); 
    

    그리고 당신은 스크롤을 사용하지 않도록 느릅 나무의 몸 (.body)에 대한 CSS 값을 :

    <body id="BodyId" class="body"> 
    

    경우 :

    또한
    .body { 
    } 
    .body_noscrolling { 
    overflow: hidden; 
    position: fixed; 
    } 
    

    <body> 태그를 변경하려면이 같이 'prettyPhoto'에> CLOSE < 버튼이있는 경우 버튼의 코드에 다음을 추가합니다.

    document.getElementById(BodyId).setAttribute("class","body"); 
    

    prettyPhoto 함수가 어떻게 호출되는지 잘 모르겠다면 잘 모르겠습니다.

    +0

    우선 감사합니다. 나는 javascript에 대해 많이 모른다. 그래서 이것은 탐색하기가 어렵다. 어쨌든, 전체 jquery.prettyPhoto.js는 https://github.com/scaron/prettyphoto/blob/master/js/jquery.prettyPhoto.js에서 볼 수 있습니다. 어디에서 document.getElementByID 행을 넣을 수 있습니까? – user3469456

    +0

    'document.getElementById (BodyId) .setAttribute ("class", "body_noscrolling");' 118 행 뒤에 'document.getElementById (BodyId) .setAttribute ("class", "body");' 다시 말하지만, 만약 내가 그걸 시험해 볼 수는없는 것 같은데 나는 확신 할 수 없다. – user3463119

    +0

    가 작동하지 않았습니다. 운수 나쁘게. 그래도 고마워! 네가 다른 것을 생각하면 나 한테 알려줘. – user3469456

     관련 문제

    • 관련 문제 없음^_^