2013-06-26 2 views
0

Drupal에서 새 템플릿을 적용하려고했지만 애니메이션 컨텐트 부분에서이 작업을 수행 할 수 없습니다.Drupal에 새 테마를 적용하는 데 문제가 있습니다

첫째,이 기능 index.html와 CSS를 내 템플릿을 만들었습니다 ... 그것은 완벽하게 작동합니다 : 메뉴의

예 :

<ul id="menu"> 
<li><a href="#page_2">about us</a></li> 
<li><a href="#page_3">Products</a></li> 
</ul> 

나는이 두 개의 링크 중 하나를 클릭 콘텐츠를

이 JQUERY 애니메이션 통해

<article id="page_X"> 

<p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, ad<p> 

</article> 

: 문서 표시 소자 사이

$(function(){$('#content').find('article').hide().css({width:'0',marginLeft:'0%',left:'50%'}); 

var act='#page_1';$('#page_1').show();$('a').click(function(){page=$(this).attr('href'); 

if(page.substr(page.indexOf('#'),6)=='#page_'){ 

$('#menu a, footer a').parent().removeClass('active'); 

$(this).parent().addClass('active'); 

$(act).animate({width:'0',marginLeft:'0%',left:'50%'},600,'easeInCirc',function(){ 

$('#content').find('article').css({display:'none'}) 

$(page).css({display:'block'}).animate({width:'100%',marginLeft:'0%',left:'0%'},600,'easeOutCirc',function(){act=page;});});return false;}})}) 

그것은 정적 컨텐츠와 함께 완벽하게 작동하지만, 내 문제는 내가 사용, page.tpl.php에 드루팔 동적 콘텐츠와 함께이 작업을 수행 할 수있는 방법입니다 :

<?php print theme('links__system_main_menu', array('links' => $main_menu, 'attributes' => array('id' => 'menu'), 'heading' => t(''))); ?> 

<?php print render($page['content']); ?> 

경우 알려주세요 자세한 내용이 필요합니다.

정말 고마워요!

참고 :에 갈 정도는 아니지만 기본적으로, 드루팔은 JQuery와 작업을 연결하는 "행동"시스템을 사용

<li><a class="" data-toggle="modal" **href="exemple."** **data-target="#page_2"**>Contact</a> 
+1

그냥 팁, 당신의 코드 포맷 작업을해야합니다. – Novocaine

답변

0

: 부트 스트랩 팝업 모달, 우리는 데이터를 대상으로, exemple을 수행 할 수 있습니다 콘텐츠. 이것은 초기 페이지로드 이후에 $ (document) .ready가 정상적으로 실행 된 후에 컨텐츠가 추가 될 때 스크립트가 실행될 수 있도록하는 프레임 워크를 제공합니다.

이것은 스크립트가 다음과 관계없이 일관된 방식으로 적용될 수 있도록하기위한 것입니다. 페이지에 객체를 추가하는 소스와 타이밍 (AJAX 등).

당신은 두 가지로 볼 필요가 :

첫 번째는 자바 스크립트를 폐쇄하고, 두 번째는 드루팔 행동을 부착한다. 개요는 https://drupal.org/node/171213

입니다. 먼저 "hello world"Drupal 동작을 작성하고 작동 시키면 메뉴 로직에서 작동합니다. 중요한 학습 곡선이 있으므로

(function ($, Drupal, window, document, undefined) { 

    Drupal.behaviors.helloWorldHandlers = { 

     attach: function(context, settings) { 
      $("ul#menu").once("hello-world-handler", function() { 
       $(this).click(function() { alert("hello world"); }) 
      } 
     } 
    } 

})(jQuery, Drupal, this, this.document); 

이 (내가 그 권리 것 같아)

: 그것은

오프를 시작하려면 "드루팔 방법"일을에 관해서, 당신은 이런 식으로 뭔가를 실행하는 JS 파일을 만들 수 있습니다 fi 추가하기 파일을 테마로하여 파일을 가져와 실행하는 쉬운 방법입니다. 이런 식으로 뭔가를 실행 테마의 정보 파일에 라인을 수행해야합니다

scripts[] = js/helloworld_behavior.js 

테마의 .INFO 파일은 mythemename 같은 이름으로, 테마의 폴더 구조의 루트에 있습니다.정보

일단 작업을 완료하면 나머지 부분에 대해 걱정할 수 있습니다. 새로운 cms와 평범한 사랑/증오 관계를 발전시킬 것이라고 확신합니다.

+0

안녕하세요, 귀하의 답변을 주셔서 감사합니다,하지만 난 한번만() 함수의 역할을 이해하지, 그녀는 addClass를 바꿉니 까? 고맙습니다 –

관련 문제