테스트 사이트 - 개발 중인 베타 버전입니다

제이쿼리나 자바스크립트로 CSS제어를 하고 싶은데요... 채택완료

안느용 6년 전 조회 3,428

원페이지 형식의 사이트라 ID값으로 스크롤되어 제어됩니다.

 

if URL창에 노출되는 페이지 id값이 #page1 또는 #page2 또는 #page3 일때
대메뉴중에 class명이 .menu2인 메뉴의 color를 green으로 바꿔라

 

이렇게 하려면 어떻게 해야 될까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
아르키어드

<script>

function navControl() {

  var hash = location.hash;

  var navActive = new Array();

  $("색상바꿀 네비게이션의 a태그").each(function(i){

    navActive[i] = $("부모클래스 혹은 태그",$(this)).attr("href");

  });

  targetN = parseInt(navActive.indexOf(hash)+1);

  $("색상바꿀 네비게이션:nth-child("+targetN+")" a태그).addClass("pageActive");
  혹은

  $("색상바꿀 네비게이션:nth-child("+targetN+")" a태그).css("color","색상");

}

navControl();

$("네비게이션버튼").on("click",function(){

  navControl();

})

</script>

 

에러가 있을런지..저도 테스트 돌려봐야 알겠지만..제대로 작동 한다면 targetN은 해당 해쉬태그를 가지고있는 a태그를 선택합니다. 해당 a태그의 href를 배열로 저장해서 그안에 hash태그가 현재 내 url의 hash태그와 비교해서 있는 놈의 index값을 불러오고. nth는 1부터, index는 0부터 시작하므로 숫자로 변환시켜서 +1을 해줍니다.

원페이지 태그로 조정하신다면 왠지 풀페이지js 사용하신거같은데.. 풀페이지js 문서에도 한번 확인해보세유

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p>$(function() {

    var h = window.location.hash;

    if($.inArray(h, ['#page1', '#page2', '#page3']) > -1) {

        $(".menu2").css("color", "gree");

    }

});</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

<script>

<? if($_GET["page"]=="X"){ ?>

$("#아이디").attr("style","color:#fff"); 

<? }?>

 

 

</script>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

목동이되어
배경색을 바꿀때
$(".menu2").css("background-color","green");

글자색을 바꿀때

$(".menu2").css("color","green");

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인