Remark: μŠ¬λΌμ΄λ“œκ°€ 열릴 λ•Œ λΉ„λ””μ˜€ μžλ™ μž¬μƒ

에 λ§Œλ“  2016λ…„ 04μ›” 27일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: gnab/remark

ν˜„μž¬ λ‹€μŒκ³Ό 같은 μ½”λ“œλ‘œ webm λΉ„λ””μ˜€λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

<video loop autoplay controls>
    <source src="video.webm">
</video>

이 λΉ„λ””μ˜€λŠ” ν”„λ ˆμ  ν…Œμ΄μ…˜μ΄ λ‘œλ“œλ  λ•Œ μžλ™ μž¬μƒμ„ μ‹œμž‘ν•©λ‹ˆλ‹€. _slide_κ°€ λ‘œλ“œλ  λ•Œ μžλ™ μž¬μƒμ„ μ‹œμž‘ν•˜λ„λ‘ ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

이것은 κ³΅κ°œμ—μ„œ κ°€λŠ₯ ν•˜μ§€λ§Œ λΉ„κ³  λ¬Έμ„œμ—μ„œ μœ μ‚¬ν•œ ꡬ문을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μŠ¬λΌμ΄λ“œκ°€ ν‘œμ‹œλ  λ•Œ μ‹œμž‘ μ‹œκ°„ 0λΆ€ν„° λͺ¨λ“  λΉ„λ””μ˜€λ₯Ό μžλ™ μž¬μƒν•˜λŠ” λ‹€μŒ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λ₯Ό μœ„ν•΄ 잘 μž‘λ™ν•©λ‹ˆλ‹€!

  var slideElements

  function getElementForSlide(slide) {
    slideElements = slideElements || document.querySelectorAll('.remark-slide')
    return slideElements[slide.getSlideIndex()]
  }

  slideshow.on('showSlide', function (slide) {
    Array.from(getElementForSlide(slide).querySelectorAll('video')).forEach(function (vid) {
      vid.loop = true
      vid.currentTime = 0
      vid.play()
    })
  })

  slideshow.on('hideSlide', function (slide) {
    Array.from(getElementForSlide(slide).querySelectorAll('video')).forEach(function (vid) {
      vid.pause()
    })
  })

λͺ¨λ“  6 λŒ“κΈ€

μŠ¬λΌμ΄λ“œκ°€ ν‘œμ‹œλ  λ•Œ μ‹œμž‘ μ‹œκ°„ 0λΆ€ν„° λͺ¨λ“  λΉ„λ””μ˜€λ₯Ό μžλ™ μž¬μƒν•˜λŠ” λ‹€μŒ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λ₯Ό μœ„ν•΄ 잘 μž‘λ™ν•©λ‹ˆλ‹€!

  var slideElements

  function getElementForSlide(slide) {
    slideElements = slideElements || document.querySelectorAll('.remark-slide')
    return slideElements[slide.getSlideIndex()]
  }

  slideshow.on('showSlide', function (slide) {
    Array.from(getElementForSlide(slide).querySelectorAll('video')).forEach(function (vid) {
      vid.loop = true
      vid.currentTime = 0
      vid.play()
    })
  })

  slideshow.on('hideSlide', function (slide) {
    Array.from(getElementForSlide(slide).querySelectorAll('video')).forEach(function (vid) {
      vid.pause()
    })
  })

κ°μ‚¬ν•©λ‹ˆλ‹€. 이것은 μ œκ°€ λ§ν¬ν•œ ν•΄κ²° 방법보닀 훨씬 κ°€λ³μŠ΅λ‹ˆλ‹€.

μ΄λŠ” <audio> νƒœκ·Έμ—λ„ μ μš©λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
λ‚΄κ°€ μ•„λŠ” ν•œ λ™μΌν•œ 속성( .loop , .currentTime , .play , .pause , ... )을 μ‚¬μš©ν•©λ‹ˆλ‹€.

.querySelectorAll('video, audio')

일을 ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@nolanlawson
이 μ½”λ“œλ₯Ό 어디에 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

μ§ˆλ¬Έμ€ 두 링크 λͺ¨λ‘μ— λŒ€ν•œ λ‹΅λ³€μ΄λ―€λ‘œ 문제λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.

@nolanlawson μ†”λ£¨μ…˜μ˜ μ•½κ°„ κ°œμ„ λœ 버전:

  • μžλ™ μž¬μƒ ν”Œλž˜κ·Έλ‘œμ„œμ˜ 데이터 속성
  • λ°œν‘œμž λͺ¨λ“œμ—μ„œ λΉ„λ””μ˜€ μŒμ†Œκ±°
let slideElements;
const body = document.body;
function getElementForSlide(slide) {
    slideElements = slideElements || document.querySelectorAll('.remark-slide');
    return slideElements[slide.getSlideIndex()];
}
slideshow.on('showSlide', (slide) => {
    getElementForSlide(slide).querySelectorAll('video').forEach((vid) => {
        if (body.classList.contains('remark-presenter-mode')) {
            vid.muted = true;
        }
        if (vid.attributes['data-autoplay'].value === 'true') {
            vid.play();
        }
    });
});
slideshow.on('hideSlide', (slide) => {
    getElementForSlide(slide).querySelectorAll('video').forEach((vid) => {
        vid.pause();
    });
});
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

dvberkel picture dvberkel  Β·  5μ½”λ©˜νŠΈ

peterj picture peterj  Β·  6μ½”λ©˜νŠΈ

larrycai picture larrycai  Β·  8μ½”λ©˜νŠΈ

sinedied picture sinedied  Β·  5μ½”λ©˜νŠΈ

juanpabloaj picture juanpabloaj  Β·  3μ½”λ©˜νŠΈ