ふわふわの泡の背景を作成できるJS「bubbly-bg.js」を使おうとしています。
https://tipsy.github.io/bubbly-bg/
これを使って、深海から泡が出てくる様子を再現したいです。
泡の向きなどはオプションから設定できたのですが背景のグラデーションの向きを変える事が出来ません。
jsファイルを書き換えないといけないとは思うのですがどのようにしたらいいのでしょうか?
(cssを追加でも出来るのでしょうか…)
改行無しだったので適当に改行入れました。
js
1"use strict"; 2window.bubbly=function(t){ 3 var n=t||{}, 4 o=function(){ 5 return Math.random() 6 }, 7 r=n.canvas||document.createElement("canvas"), 8 e=r.width, 9 a=r.height; 10 null===r.parentNode&&(r.setAttribute("style","position:fixed;z-index:-1;left:0;top:0;min-width:100vw;min-height:100vh;"), 11 e=r.width=window.innerWidth, 12 a=r.height=window.innerHeight, 13 document.body.appendChild(r)); 14 var i=r.getContext("2d"); 15 i.shadowColor=n.shadowColor||"#fff", 16 i.shadowBlur=n.blur||4; 17 var l=i.createLinearGradient(0,0,e,a); 18 l.addColorStop(0,n.colorStart||"#2AE"), 19 l.addColorStop(1,n.colorStop||"#17B"); 20 for(var c=n.bubbles||Math.floor(.02*(e+a)), 21 u=[],d=0;d<c;d++)u.push({f:(n.bubbleFunc||function(){return"hsla(0, 0%, 100%, "+.1*o()+")"}).call(), 22 x:o()*e, 23 y:o()*a, 24 r:(n.radiusFunc||function(){return 4+o()*e/25}).call(), 25 a:(n.angleFunc||function(){return o()*Math.PI*2}).call(), 26 v:(n.velocityFunc||function(){return.1+.5*o()}).call()}); 27 !function t(){if(null===r.parentNode)return cancelAnimationFrame(t); 28 !1!==n.animate&&requestAnimationFrame(t), 29 i.globalCompositeOperation="source-over", 30 i.fillStyle=l, 31 i.fillRect(0,0,e,a), 32 i.globalCompositeOperation=n.compose||"lighter", 33 u.forEach(function(t){i.beginPath(), 34 i.arc(t.x,t.y,t.r,0,2*Math.PI), 35 i.fillStyle=t.f,i.fill(), 36 t.x+=Math.cos(t.a)*t.v,t.y+=Math.sin(t.a)*t.v,t.x-t.r>e&&(t.x=-t.r), 37 t.x+t.r<0&&(t.x=e+t.r),t.y-t.r>a&&(t.y=-t.r),t.y+t.r<0&&(t.y=a+t.r) 38 }) 39 }() 40};
追記
var l=i.createLinearGradient(0,0,e,a);
を
var l=i.createLinearGradient(0,0,0,a);
とすることで縦のグラデーションにする事が出来ました。
さらに、ページ全体の高さでグラデーションを掛けるにはどうしたら良いでしょうか?
自分でなんとかできないかと思って検索して
a=r.height=window.innerHeight,
の部分を
a=r.height=document.documentElement.scrollHeight,
や
a=r.height=Math.max.apply( null, [document.body.clientHeight , document.body.scrollHeight, document.documentElement.scrollHeight, document.documentElement.clientHeight] ),
としてみましたが希望通りになりませんでした。
どのようにしたらいいでしょうか?
https://qiita.com/dokkoisho/items/2bfe259ec87c00e4bd98
http://css-eblog.com/javascript/javascript-contents-height.html
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。