> 웹 프론트엔드 > CSS 튜토리얼 > JavaScript에서 CSS 카운터 값에 액세스하는 방법은 무엇입니까?

JavaScript에서 CSS 카운터 값에 액세스하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-04 14:43:11
원래의
794명이 탐색했습니다.

How to Access CSS Counter Values in JavaScript?

JavaScript에서 CSS 생성 콘텐츠에 액세스하는 방법

문제:

CSS에서, 카운터 및 콘텐츠 속성은 이미지에 대한 그림 번호 매기기("그림 1.1")와 같은 사용자 정의 콘텐츠를 생성합니다. 질문이 생깁니다. JavaScript를 사용하여 어떻게 이 콘텐츠에 프로그래밍 방식으로 액세스할 수 있습니까?

답변:

라이브 카운터 값 액세스

안타깝게도 JavaScript에는 CSS에서 생성된 라이브 카운터 값에 액세스할 수 있는 직접적인 인터페이스가 없습니다. getCompulatedStyle을 통해 검색을 시도하면 실제 런타임 값이 아닌 스타일시트에 선언된 값만 반환됩니다.

처음에는 유망해 보였던 DOM 레벨 2 스타일 카운터 인터페이스에도 현재 카운터 값을 검색하는 속성이 부족합니다. .

대체 접근 방식

라이브 카운터 값에 직접 액세스하므로 실현 가능하지 않은 경우 대체 접근 방식은 JavaScript를 사용하여 브라우저 자체 카운터 메커니즘을 복제하는 것입니다. 다음 스크립트를 사용할 수 있습니다.

window.onload = function () {
  // Get all counter elements
  var counters = Node_getElementsByClassName(document.body, 'counter');

  // Initialize indices
  var indices = [];
  for (var counteri = 0; counteri < counters.length; counteri++) {
    // Get counter level
    var counter = counters[counteri];
    var level = Element_getClassArgument(counter, 'level');

    // Update indices
    while (indices.length <= level) indices.push(0);
    indices[level]++;
    indices = indices.slice(level + 1);

    // Create text node for figure number
    var text = document.createTextNode('Figure ' + indices.join('.'));

    // Insert figure number before counter element
    counter.parentNode.insertBefore(text, counter.nextSibling);

    // If counter has an ID, add figure number to links
    if (counter.id !== '') {
      for (var linki = document.links.length; linki > 0; linki--) {
        var link = document.links[linki];
        if (link.hostname === location.hostname && link.pathname === location.pathname && link.search === location.search && link.hash === '#' + counter.id) {
          // Create text node for link number
          var text = document.createTextNode('(' + indices.join('.') + ')');

          // Insert link number after link
          link.parentNode.insertBefore(text, link.nextSibling);
        }
      }
    }
  }
};
로그인 후 복사

이 스크립트는 제목과 그림 요소에 그림 번호를 추가하고 해당 제목과 그림을 참조하는 링크에 해당 번호를 추가합니다.

위 내용은 JavaScript에서 CSS 카운터 값에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿