Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:CardDisplay: Difference between revisions

Template page
No edit summary
Tag: Reverted
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div class="card">
<div class="card {{#ifexpr:{{#invoke:String|find|{{{#userparam}}}|description|}}>0 and {{#invoke:String|find|{{{#userparam}}}|image|}}>0
| tall-card
| {{#ifeq:{{{#userparam}}}|none| tiny-card | short-card }}
}}">
  {{#ifexpr:{{#invoke:String|find|{{{#userparam}}}|image|}}>0|
   <div class="image-wrapper">
   <div class="image-wrapper">
     {{#ifexist:{{{Has Image|}}}
     {{#ifexist:{{{Has Image|}}}
Line 6: Line 10:
     }}
     }}
   </div>
   </div>
  |}}
   <div class="card-content">
   <div class="card-content">
     <div class="card-title">[[{{{1}}}]]</div>
     <div class="card-title">[[{{{1}}}]]</div>
     <div class="card-description">{{#invoke:SummarySnippet|fromPage|{{{1}}}|300}}</div>
    {{#ifexpr:{{#invoke:String|find|{{{#userparam}}}|description|}}>0|
     <div class="card-readmore">[[{{{1}}}|Read more →]]</div>
     <div class="card-description">{{#invoke:SummarySnippet|fromPage|{{{1}}}|200}}</div>
     <div class="card-readmore">[[{{{1}}}|Read more <span></span>]]</div>
    |}}
   </div>
   </div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
  const carousel = document.querySelector('.card-carousel');
  let isDown = false;
  let startX;
  let scrollLeft;
  carousel.addEventListener('mousedown', (e) => {
    isDown = true;
    carousel.classList.add('dragging');
    startX = e.pageX - carousel.offsetLeft;
    scrollLeft = carousel.scrollLeft;
  });
  carousel.addEventListener('mouseleave', () => {
    isDown = false;
    carousel.classList.remove('dragging');
  });
  carousel.addEventListener('mouseup', () => {
    isDown = false;
    carousel.classList.remove('dragging');
  });
  carousel.addEventListener('mousemove', (e) => {
    if (!isDown) return;
    e.preventDefault();
    const x = e.pageX - carousel.offsetLeft;
    const walk = (x - startX) * 1.5; // scroll speed factor
    carousel.scrollLeft = scrollLeft - walk;
  });
});
</script>

Latest revision as of 18:32, 31 May 2025

[[{{{1}}}]]