<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! - Open Source Content Management - Version 6.1.3" -->
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<title type="text">Home</title>
	<subtitle type="text"></subtitle>
	<link rel="alternate" type="text/html" href="http://www.home-chen.com"/>
	<id>http://www.home-chen.com/en</id>
	<updated>2026-09-03T14:32:41+08:00</updated>
	<author>
		<name>Home-Chen</name>
	</author>
	<generator uri="https://www.joomla.org" version="6.1">Joomla! - Open Source Content Management - Version 6.1.3</generator>
	<link rel="self" type="application/atom+xml" href="http://www.home-chen.com/en?format=feed&amp;type=atom"/>
	<entry>
		<title>Home</title>
		<link rel="alternate" type="text/html" href="http://www.home-chen.com/en/home"/>
		<published>2026-08-22T17:30:12+08:00</published>
		<updated>2026-08-22T17:30:12+08:00</updated>
		<id>http://www.home-chen.com/en/home</id>
		<author>
			<name>Joomla</name>
		</author>
		<summary type="html">&lt;!-- Placeholder with initial dimensions to prevent layout collapse during animation --&gt;
&lt;div class=&quot;img-placeholder&quot;&gt;
&lt;div id=&quot;animateBox&quot; class=&quot;morph-box&quot;&gt;&lt;img class=&quot;img-front&quot; src=&quot;http://www.home-chen.com/images/bg3.jpg&quot; alt=&quot;Original image&quot;&gt; &lt;img class=&quot;img-back&quot; src=&quot;http://www.home-chen.com/images/bg4.jpg&quot; alt=&quot;Morphed image&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script&gt;
const box = document.getElementById('animateBox');
let isFullscreen = false;

box.addEventListener('click', () =&gt; {
    if (!isFullscreen) {
        // 1. TURN OFF transition temporarily so the setup doesn't animate
        box.style.transition = 'none';

        // 2. Get coordinates and pin to fixed position
        const rect = box.getBoundingClientRect();
        box.style.position = 'fixed';
        box.style.top = rect.top + 'px';
        box.style.left = rect.left + 'px';
        box.style.width = rect.width + 'px';
        box.style.height = rect.height + 'px';

        // 3. Force browser repaint to lock in the exact starting position
        box.offsetHeight;

        // 4. TURN ON transition again (removes inline style, falling back to CSS)
        box.style.transition = '';

        // 5. Trigger the zoom
        box.classList.add('fullscreen');
        document.body.style.overflow = 'hidden';
        
    } else {
        // 1. Trigger the zoom out (reverting to the pinned coordinates)
        box.classList.remove('fullscreen');
        document.body.style.overflow = '';

        // 2. Wait 2 seconds for animation to finish
        setTimeout(() =&gt; {
            if (!box.classList.contains('fullscreen')) {
                // Turn off transition briefly while restoring the document flow
                box.style.transition = 'none';
                
                box.style.position = 'relative';
                box.style.top = 'auto';
                box.style.left = 'auto';
                box.style.width = '100%';
                box.style.height = '100%';
                
                box.offsetHeight; // Force repaint
                box.style.transition = ''; // Restore transition for next click
            }
        }, 2000);
    }
    
    isFullscreen = !isFullscreen;
});

&lt;/script&gt;
&lt;/p&gt;</summary>
		<content type="html">&lt;!-- Placeholder with initial dimensions to prevent layout collapse during animation --&gt;
&lt;div class=&quot;img-placeholder&quot;&gt;
&lt;div id=&quot;animateBox&quot; class=&quot;morph-box&quot;&gt;&lt;img class=&quot;img-front&quot; src=&quot;http://www.home-chen.com/images/bg3.jpg&quot; alt=&quot;Original image&quot;&gt; &lt;img class=&quot;img-back&quot; src=&quot;http://www.home-chen.com/images/bg4.jpg&quot; alt=&quot;Morphed image&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script&gt;
const box = document.getElementById('animateBox');
let isFullscreen = false;

box.addEventListener('click', () =&gt; {
    if (!isFullscreen) {
        // 1. TURN OFF transition temporarily so the setup doesn't animate
        box.style.transition = 'none';

        // 2. Get coordinates and pin to fixed position
        const rect = box.getBoundingClientRect();
        box.style.position = 'fixed';
        box.style.top = rect.top + 'px';
        box.style.left = rect.left + 'px';
        box.style.width = rect.width + 'px';
        box.style.height = rect.height + 'px';

        // 3. Force browser repaint to lock in the exact starting position
        box.offsetHeight;

        // 4. TURN ON transition again (removes inline style, falling back to CSS)
        box.style.transition = '';

        // 5. Trigger the zoom
        box.classList.add('fullscreen');
        document.body.style.overflow = 'hidden';
        
    } else {
        // 1. Trigger the zoom out (reverting to the pinned coordinates)
        box.classList.remove('fullscreen');
        document.body.style.overflow = '';

        // 2. Wait 2 seconds for animation to finish
        setTimeout(() =&gt; {
            if (!box.classList.contains('fullscreen')) {
                // Turn off transition briefly while restoring the document flow
                box.style.transition = 'none';
                
                box.style.position = 'relative';
                box.style.top = 'auto';
                box.style.left = 'auto';
                box.style.width = '100%';
                box.style.height = '100%';
                
                box.offsetHeight; // Force repaint
                box.style.transition = ''; // Restore transition for next click
            }
        }, 2000);
    }
    
    isFullscreen = !isFullscreen;
});

&lt;/script&gt;
&lt;/p&gt;</content>
		<category term="Category (en-gb)" />
	</entry>
</feed>
