/* 新增鍵盤左右鍵切換作品的功能 */
document.addEventListener('DOMContentLoaded', function() {
  // 取得按鈕元素
  const prevButton = document.querySelector('.prev-post');
  const nextButton = document.querySelector('.next-post');

  // 監聽鍵盤事件
  document.addEventListener('keydown', function(event) {
    // 判斷按下的按鍵
    if (event.key === 'ArrowLeft' && prevButton) { // 檢查 prevButton 是否存在
      if (prevButton.href) { // 檢查 prevButton 是否具有 href 屬性
        // 觸發上一篇連結
        window.location.href = prevButton.href;
      }
    } else if (event.key === 'ArrowRight' && nextButton) { // 檢查 nextButton 是否存在
      if (nextButton.href) { // 檢查 nextButton 是否具有 href 屬性
        // 觸發下一篇連結
        window.location.href = nextButton.href;
      }
    }
  });
});
jQuery(document).ready(function($) {
    var header = $('.singlework-header');
    var headerHeight = header.outerHeight();
    var isHeaderVisible = false;
    var scrollThreshold = 10; //定滾動多少 px 才會觸發
    var lastScrollTop = 0;
    var headerContainer = $('.singlework-page');
    var scrollTimeout = null; //向上滾動時,延遲多久才會顯示

    $(window).on('load', function() {
        header.css('top', -headerHeight + 'px');
    });

    $(document).mousemove(function(event) {
        if (event.pageY < 50 && !isHeaderVisible) {
            showHeader();
        }
    });

    headerContainer.scroll(function() {
        var scrollTop = $(this).scrollTop();
        var delta = scrollTop - lastScrollTop; // 計算滾動方向

        if (!isHeaderVisible) {
            // 向上滾動超過閾值時,延遲顯示 header
            if (delta < 0 && Math.abs(delta) > scrollThreshold) {
                if (scrollTimeout) {
                    clearTimeout(scrollTimeout);
                }
                scrollTimeout = setTimeout(function() {
                    showHeader();
                }, 150);
            }
        } else {
            // **只有向下滾動時才關閉 header**
            if (delta > 0 && Math.abs(delta) > scrollThreshold) {
                hideHeader();
            }
        }

        lastScrollTop = scrollTop;
    });

    $(document).click(function(event) {
        if (!$(event.target).closest('.singlework-header').length && isHeaderVisible) {
            hideHeader();
        }
    });

    function showHeader() {
        header.addClass('show');
        isHeaderVisible = true;
    }

    function hideHeader() {
        header.removeClass('show');
        isHeaderVisible = false;
    }
});

都市の夜

false

document.addEventListener("DOMContentLoaded", function() {
    // 獲取 meta field 的隱藏元素
    let metaFieldElement = document.querySelector(".singlework-pure-en-title-switcher");
    
    // 獲取 .singlework-title 標題
    let postTitle = document.querySelector(".singlework-title");

    // 確保 metaFieldElement 和 postTitle 存在
    if (metaFieldElement && postTitle) {
        // 讀取 meta field 的值並去除前後空格
        let metaValue = metaFieldElement.innerText.trim().toLowerCase();

        // 如果 meta field 值是 "true",則將字距設為 0
        if (metaValue === "true") {
            postTitle.style.letterSpacing = "0";
        }
    }
});
2012
コンクリート、木材、樹脂
80.5 x 238.5cm
都市の夜は、都市の静かなファサードであると同時に、「見る」という行為の単位が集積された構造でもある。300を超えるコンクリート製のモジュールはすべて同じ窓型から成り、それぞれがガラスも反射も内部も持たず、ただ表面として整然と積み重ねられている。それは都市の夜景のようでもあり、遠くから撮影された信号スペクトルのようでもある。密度があり、規則的で、しかし体温を持たない。

本作でアーティストは、都市という経験の空間を切り離して提示する。都市はもはや移動の場ではなく、外部に向かって開かれた無数の窓によって構成される平面的な存在となる。窓は住居の痕跡ではなく、都市の皮膚を成す基本単位であり、忘れられた通信の端末のように見える――かつて光っていたかもしれない信号が、今は黙って消えている。

異なる質感のコンクリートは、極めて繊細なグレートーンの差異を生み出し、それが構成の中でリズムを刻む。それはまるで夜のビル群の輪郭のように展開し、冷ややかでデジタル的な秩序を漂わせる。視覚的には抽象的な都市のクローズアップであり、滑り続ける情報インターフェースのようでもある。そこには情報が詰まっているが、意味はない。これらの窓枠は、あたかも音の発生点であるかのように、または沈黙が反響する場であるかのように、ただ配置されている。

都市の夜は、都市というものの「介入不可能性」を示す。鑑賞者はその前に立つことはできるが、中へ入ることはできない。それは不透明ではなく、開かれてもいない。過度に複雑でありながら細部がない。都市はここで透明で空虚なものとして現れる。それは「何もない」からではなく、「あまりにも多すぎる」からである――多すぎて、焦点が定まらないのだ。

この作品を「見る」ことは、引き離されたままの状態に置かれることであり、それは繋がることのできない孤独である。物語はなく、語りかけもなく、招待もない。ただ静かにそこに立ち尽くす巨大な情報の壁。都市の個人的な経験を、構造の単位へと圧縮してしまう、無言のインターフェースである。ひとつひとつの窓の奥に物語があるかもしれないと知りながらも、作品は決して近づくことを許さない――それは冷酷なのではなく、もっと根源的な距離を提示している。人と都市、人と人との間にある、越えることのできない空間の格子点である。
2026 CopyRight ©