]> _ Git - pmi.git/commitdiff
wip #2752 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 10 Sep 2019 17:30:11 +0000 (19:30 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 10 Sep 2019 17:30:11 +0000 (19:30 +0200)
package.json
public/images/logowall/arrow-left.svg [new file with mode: 0644]
public/images/logowall/arrow-right.svg [new file with mode: 0644]
resources/js/logowall.js
resources/styles/components/logowall.styl
resources/views/pages/home.blade.php
resources/views/partials/logowall.blade.php
yarn.lock

index 1b97f50340ef0e909f025ed084e1c5a3e024b51d..914954029e9a70999da1d97f1c75b61be63c4c79 100644 (file)
     "devDependencies": {
         "@trevoreyre/autocomplete-vue": "^2.0.2",
         "axios": "^0.18",
-        "bootstrap": "^4.0.0",
         "browser-sync": "^2.26.5",
         "browser-sync-webpack-plugin": "2.0.1",
+        "cash-dom": "^4.1.5",
         "cross-env": "^5.2.0",
         "element-closest": "^3.0.1",
+        "element-qsa-scope": "^1.1.0",
         "gsap": "^2.1.3",
         "hammerjs": "^2.0.8",
         "laravel-mix": "^4.0.7",
@@ -34,9 +35,7 @@
         "vue": "^2.6.10",
         "vue-slide-up-down": "^1.7.2",
         "vue-slider-component": "^3.0.40",
-        "vue-template-compiler": "^2.6.10",
-        "cash-dom": "^4.1.5"
+        "vue-template-compiler": "^2.6.10"
     },
-    "dependencies": {
-    }
+    "dependencies": {}
 }
diff --git a/public/images/logowall/arrow-left.svg b/public/images/logowall/arrow-left.svg
new file mode 100644 (file)
index 0000000..386034c
--- /dev/null
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="38.414" height="26" viewBox="0 0 38.414 26">
+  <g id="Groupe_8" data-name="Groupe 8" transform="translate(886.414 602) rotate(180)">
+    <g id="Groupe_6" data-name="Groupe 6" transform="translate(849 577)">
+      <path id="Tracé_16" data-name="Tracé 16" d="M3275.773-724.775l12,12-12,12" transform="translate(-3251.773 724.775)" fill="none" stroke="#152f4e" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
+      <line id="Ligne_2" data-name="Ligne 2" x1="36.001" transform="translate(0 12)" fill="none" stroke="#152f4e" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
+    </g>
+  </g>
+</svg>
diff --git a/public/images/logowall/arrow-right.svg b/public/images/logowall/arrow-right.svg
new file mode 100644 (file)
index 0000000..5895adc
--- /dev/null
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="38.414" height="26" viewBox="0 0 38.414 26">
+  <g id="Groupe_7" data-name="Groupe 7" transform="translate(-848 -576)">
+    <g id="Groupe_6" data-name="Groupe 6" transform="translate(849 577)">
+      <path id="Tracé_16" data-name="Tracé 16" d="M3275.773-724.775l12,12-12,12" transform="translate(-3251.773 724.775)" fill="none" stroke="#152f4e" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
+      <line id="Ligne_2" data-name="Ligne 2" x1="36.001" transform="translate(0 12)" fill="none" stroke="#152f4e" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
+    </g>
+  </g>
+</svg>
index 894618bc308004e7fca6b8ac7fe8624395801d85..ccedacee560166b8dfcccb3274441445ada42b80 100644 (file)
@@ -1,27 +1,19 @@
-document.addEventListener('DOMContentLoaded', function () {
-    window.wall = new Logowall(document.getElementsByClassName('.logowall')[0]);
-});
-
 function Logowall(element) {
     this.element = element;
     this.items = element.children;
     this.nbItems = this.items.length;
     this.nbLines = 2;
     this.perLine = this.nbItems / this.nbLines;
+    this.index = 0;
+    this.transitioning = false;
     this.init();
 }
 
-
-logowall.prototype = {
+Logowall.prototype = {
     init: function () {
-        this.distributeLines();
         this.initEvents();
     },
 
-    distributeLines: function () {
-
-    },
-
     initEvents: function () {
         var $this = this;
 
@@ -32,10 +24,59 @@ logowall.prototype = {
             $this.resize();
         });
 
+        this.element.querySelector('.next').addEventListener('click', function (event) {
+            $this.goNext();
+        });
+
+        this.element.querySelector('.prev').addEventListener('click', function (event) {
+            $this.goPrev();
+        });
+
         $this.resize();
     },
 
+    goNext: function () {
+        this.go(this.index + 1, 1);
+    },
+    goPrev: function () {
+        this.go(this.index - 1, -1);
+    },
+    go: function (newIndex, dir) {
+
+    },
+
     resize: function () {
+        var $this=this;
+
+        var w = window,
+            d = document,
+            e = d.documentElement,
+            g = d.getElementsByTagName('body')[0],
+            ww = w.innerWidth || e.clientWidth || g.clientWidth,
+            wh = w.innerHeight || e.clientHeight || g.clientHeight;
+
+        var displayedCols = ww < 1024 ? (ww < 640 ? 2 : 3) : 4;
+
+        var extras = this.element.querySelectorAll(':scope .extra');
+        Array.prototype.forEach.call(extras, function (node) {
+            node.parentNode.removeChild(node);
+        });
+
+        Array.prototype.forEach.call(this.element.querySelectorAll(':scope .line'), function (line) {
+            for (var i = 0; i < $this.perLine; i++) {
+                var cloned = line.children[i].cloneNode(true);
+                cloned.classList.add('extra');
+                line.appendChild(cloned);
 
+                cloned = line.children[i].cloneNode(true);
+                cloned.classList.add('extra');
+                line.appendChild(cloned);
+            }
+        });
     },
 };
+
+document.addEventListener('DOMContentLoaded', function () {
+    console.log(':))');
+    window.wall = new Logowall(document.getElementsByClassName('logowall')[0]);
+});
index 607f6db6ead28a355d209e3b1382bf723d90d766..637410283e5aa8658d766ba814295ade7df6ab24 100644 (file)
@@ -1,10 +1,30 @@
 .logowall
-  max-width 100%
-  overflow hidden
+
+  position relative
+
+  .arrow
+    position: absolute;
+    top calc(50% - 25px)
+    cursor pointer
+
+    &.prev
+      left: -7vw
+      @media (max-width 1640px)
+        left -3vw
+
+    &.next
+      right -7vw
+      @media (max-width 1640px)
+        right -3vw
+
+  .lines
+    max-width 100%
+    overflow hidden
 
   .line
     display block
     white-space nowrap
+    transition: left 500ms
 
     > div
       display: inline-block;
index 32738992e83976af42ca97d8ea1c11725ef42305..74da747c2f32e90eb91b9a46da5098dc45e1bcd6 100644 (file)
@@ -6,6 +6,7 @@
 
 @push('scripts')
     <script src="{{ mix('/js/carrousel.js') }}"></script>
+    <script src="{{ mix('/js/logowall.js') }}"></script>
 @endpush
 
 @section('content')
index 2511f531353e4b6ad9083a1342b1df3455e2e0e7..86276f2807d30f9a9124ea18959869e1786fa9a3 100644 (file)
 @endforeach
 
 <div class="logowall">
-    <div class="line">@stack('line0')</div>
-    <div class="line">@stack('line1')</div>
+    <img class="arrow prev" src="{{asset('images/logowall/arrow-left.svg')}}" alt="">
+    <img class="arrow next" src="{{asset('images/logowall/arrow-right.svg')}}" alt="">
+    <div class="lines">
+        <div class="line">@stack('line0')</div>
+        <div class="line">@stack('line1')</div>
+    </div>
 </div>
+
index d68621f91d9cdbb86cf753cec5ca12441ed57206..438fd422d3238f8ebe350edfbc64796b616345ea 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -2514,6 +2514,11 @@ element-closest@^3.0.1:
   resolved "https://registry.yarnpkg.com/element-closest/-/element-closest-3.0.1.tgz#0b2000266ae43a800274401dc39486f5e4bfbce2"
   integrity sha512-Wm8B0in+k6GsSCra8vLVnFIjIrff2T1s2b++jU6VL6mqIteP19THxDXwT5JDrmJPlqT3YifOK9cu28+uRGUdew==
 
+element-qsa-scope@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/element-qsa-scope/-/element-qsa-scope-1.1.0.tgz#6e1146a3aa796cd385846d39365578db358b647b"
+  integrity sha512-oBBTdmleT5eJ0r5/3/tVg0NcWv95ut4Oxj5Oh/IkZ3kc0UACF8psJU8Rocd4aXDgtoE5WD5/rqYOXvjOE1DxIg==
+
 elliptic@^6.0.0:
   version "6.4.1"
   resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
@@ -3167,7 +3172,7 @@ glob-to-regexp@^0.3.0:
   resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
   integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
 
-glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.2:
   version "7.1.4"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
   integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
@@ -6179,7 +6184,7 @@ safe-regex@^1.1.0:
   dependencies:
     ret "~0.1.10"
 
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.2:
+"safer-buffer@>= 2.1.2 < 3":
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -6223,11 +6228,6 @@ selfsigned@^1.10.4:
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
   integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
 
-semver@^6.0.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
-  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
 semver@^6.1.0, semver@^6.1.1:
   version "6.1.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
@@ -6560,7 +6560,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-source-map@^0.7.3:
+source-map@~0.7.2:
   version "0.7.3"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
@@ -6816,10 +6816,12 @@ stylus-loader@^3.0.2:
   dependencies:
     css-parse "~2.0.0"
     debug "~3.1.0"
-    glob "~7.1.2"
+    glob "^7.1.3"
     mkdirp "~0.5.x"
+    safer-buffer "^2.1.2"
     sax "~1.2.4"
-    source-map "~0.7.2"
+    semver "^6.0.0"
+    source-map "^0.7.3"
 
 supports-color@^2.0.0:
   version "2.0.0"