パララックス効果っぽいjQueryプラグイン
パララックス効果っぽいjQueryプラグイン作ってみた. 適当.
SVGファイルは,一緒に動かしたいレイヤーごとにグループ化して,IDを割り振っといてください.
layersでそのID名を指定します.
指定した順に視差が設定されます.
※パスやグループにあらかじめtransform属性が存在すると動きません.削除してください.
jquery.parallax.js
(function ($) {
$.fn.parallax = function(options) {
var defaults = {
svgFile: "",
layers: [],
distance: 0.1
};
var setting = $.extend(defaults, options);
var $this = this;
$.get(setting.svgFile, function (data) {
$this.append($(data.documentElement));
$this.mousemove(function (e) {
var width = $this.width();
var height = $this.height();
$.each(setting.layers, function (i, val) {
$("#" + val).attr({
"transform": "translate(" + (e.clientX - width / 2) * (setting.layers.length - i) * setting.distance + ", " + (e.clientY - height / 2) * (setting.layers.length - i) * setting.distance + ")"
});
});
});
});
};
})(jQuery);
HTML
<!doctype html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
</head>
<body>
<div id="parallax"></div>
<script type="text/javascript">
$(function () {
$("#parallax").parallax({
svgFile: "test.svg",
layers: ["layer-1", "layer-2", "layer-3"]
});
});
</script>
</body>
</html>