JSが動いてないことに気づく
目次
経緯
いつの頃からかYouTubeなどの動画埋め込みの自動再生がされなくなっていた。
恐らくhexo-tag-owlを再インストールしたからだなと。
てことで、もう一度改修する。
要件
まずは改修する要件を明確にする。
- youtube埋め込みコードの自動生成
- niconico埋め込みコードの自動生成
- dailymotion埋め込みコードの自動生成
- imdbの映画情報タグの自動生成
以上の改修をhexo-tag-owlに対して行う。
そしてさらにyoutube、niconico、dailymotionのエレメントに
jqueryのinviewイベントをトリガーに自動再生を行う。
modified file list
- hexo-tag-owl/lib/tag/index.js
- hexo-tag-owl/lib/tag/images/imdb.js1
- hexo-tag-owl/lib/tag/videos/niconico.js
- hexo-tag-owl/lib/tag/videos/nicovideo.js1
- hexo-tag-owl/lib/tag/videos/dailymotion.js1
- hexo-tag-owl/lib/tag/videos/youtube.js
index.js
index.js
use strict'; |
imdb.js
imdb.js
; |
niconico.js
niconico.js
; |
nicovideos.js
これはタグ名をすぐ忘れるので作っただけ。
{% owl niconico sm9999999 watch %} |
どっちの書き方が合っているかうろ覚えだったので、だったらどっちも書けるようにしただけ。
niconico.jsをコピーしただけ。
dailymotion.js
dailymotion.js
; |
youtube.js
youtube.js
; |
ここまででプラグインの改修は終わり。
次はView側を手をつける。
CSS
hexoはmain.cssを使っているので見た目を変えていく。
やったことはレスポンシブ対応のため
<div class="owl-video"> |
こんな構造としてiframeは常に100%の大きさで、movie-wrapクラスのdivエレメントでは大きさを考慮してパディングを確保、親のdivエレメントで最大の大きさを調整って感じ。
やったことはこんな感じ。
main.css
@media (min-width:1099px){ |
JavaScript
先のタグの構造を実現するために以下を行っている。
YouTubeはjquery.youtube-inview-autoplay.jsで実現しているので、ここではniconicoとDailymotionだけ実現している。
main.js
$(document).ready(function(){ |
では、これでやってみる。
Leeeettttt’s do it again
$ cd $HEXO_HOME |
$HEXO_HOMEは適宜読み替えていただきたい。
これでやりたいことはできた。
うれしい。
- 1.新規作成 ↩