completely different type** of iframe implementation - a **"Holographic Floating Display

0

 Here's a **completely different type** of iframe implementation - a **"Holographic Floating Display"** with 3D perspective effects and interactive controls:


```html

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Holographic Floating Iframe</title>

  <style>

    body {

      margin: 0;

      height: 100vh;

      background: #000;

      overflow: hidden;

      perspective: 1000px;

      font-family: 'Arial', sans-serif;

    }

    

    /* Holographic container */

    .holographic-display {

      position: absolute;

      width: 400px;

      height: 300px;

      top: 50%;

      left: 50%;

      transform: translate(-50%, -50%) rotateY(20deg) rotateX(10deg);

      background: rgba(20, 20, 40, 0.7);

      border-radius: 8px;

      box-shadow: 0 0 30px rgba(0, 150, 255, 0.6),

                  inset 0 0 20px rgba(0, 200, 255, 0.3);

      border: 1px solid rgba(0, 200, 255, 0.5);

      overflow: hidden;

      transition: all 0.5s ease;

      z-index: 100;

      display: flex;

      flex-direction: column;

    }

    

    /* Holographic glow effect */

    .holographic-display::before {

      content: '';

      position: absolute;

      top: -10px;

      left: -10px;

      right: -10px;

      bottom: -10px;

      background: linear-gradient(45deg, 

                  rgba(0, 150, 255, 0.3), 

                  rgba(0, 200, 255, 0.2), 

                  rgba(0, 150, 255, 0.3));

      border-radius: 12px;

      z-index: -1;

      filter: blur(15px);

      animation: hologlow 3s infinite alternate;

    }

    

    @keyframes hologlow {

      0% { opacity: 0.7; }

      100% { opacity: 1; }

    }

    

    /* Iframe styling */

    .holographic-iframe {

      flex: 1;

      border: none;

      background: rgba(0, 0, 0, 0.7);

    }

    

    /* Control panel */

    .holo-controls {

      display: flex;

      justify-content: space-between;

      padding: 10px;

      background: rgba(0, 30, 60, 0.7);

      border-top: 1px solid rgba(0, 200, 255, 0.3);

    }

    

    .holo-btn {

      background: rgba(0, 100, 200, 0.3);

      color: #0cf;

      border: 1px solid rgba(0, 200, 255, 0.3);

      border-radius: 4px;

      padding: 5px 10px;

      cursor: pointer;

      font-family: 'Arial', sans-serif;

      text-transform: uppercase;

      font-size: 10px;

      letter-spacing: 1px;

      transition: all 0.3s;

    }

    

    .holo-btn:hover {

      background: rgba(0, 150, 255, 0.5);

      box-shadow: 0 0 10px rgba(0, 200, 255, 0.5);

    }

    

    /* Site selector */

    .holo-selector {

      position: fixed;

      bottom: 20px;

      left: 50%;

      transform: translateX(-50%);

      display: flex;

      gap: 10px;

      z-index: 200;

    }

    

    .holo-site-btn {

      width: 60px;

      height: 40px;

      background: rgba(0, 30, 60, 0.7);

      border: 1px solid rgba(0, 200, 255, 0.3);

      border-radius: 4px;

      cursor: pointer;

      display: flex;

      align-items: center;

      justify-content: center;

      color: #0cf;

      font-size: 10px;

      transition: all 0.3s;

    }

    

    .holo-site-btn:hover {

      background: rgba(0, 150, 255, 0.5);

      box-shadow: 0 0 10px rgba(0, 200, 255, 0.5);

    }

    

    /* Particle background */

    .particles {

      position: absolute;

      top: 0;

      left: 0;

      width: 100%;

      height: 100%;

      z-index: -1;

    }

    

    /* Responsive adjustments */

    @media (max-width: 600px) {

      .holographic-display {

        width: 90vw;

        height: 60vw;

      }

      

      .holo-selector {

        flex-wrap: wrap;

        justify-content: center;

        width: 90vw;

      }

    }

  </style>

</head>

<body>

  <!-- Particle background -->

  <canvas class="particles" id="particles"></canvas>

  

  <!-- Holographic display -->

  <div class="holographic-display" id="holoDisplay">

    <iframe class="holographic-iframe" id="holoIframe" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>

    <div class="holo-controls">

      <button class="holo-btn" id="holoPrev">◄ Prev</button>

      <button class="holo-btn" id="holoNext">Next ►</button>

      <button class="holo-btn" id="holoClose">Close</button>

    </div>

  </div>

  

  <!-- Site selector -->

  <div class="holo-selector" id="holoSelector">

    <!-- Sites will be added by JavaScript -->

  </div>


  <script>

    // Sites data

    const sites = [

      { url: 'https://advertica13.blogspot.com/', name: 'Site 1' },

      { url: 'https://advertica12.blogspot.com/', name: 'Site 2' },

      { url: 'https://advertica08.blogspot.com/', name: 'Site 3' },

      { url: 'https://advertica07.blogspot.com/', name: 'Site 4' },

      { url: 'https://advertica06.blogspot.com/', name: 'Site 5' },

      { url: 'https://www.softmod.shop/', name: 'Shop' }

    ];


    // DOM elements

    const holoDisplay = document.getElementById('holoDisplay');

    const holoIframe = document.getElementById('holoIframe');

    const holoPrev = document.getElementById('holoPrev');

    const holoNext = document.getElementById('holoNext');

    const holoClose = document.getElementById('holoClose');

    const holoSelector = document.getElementById('holoSelector');

    const particlesCanvas = document.getElementById('particles');


    // State variables

    let currentIndex = 0;

    let isDragging = false;

    let startX, startY, startLeft, startTop;


    // Initialize the display

    function initHolographicDisplay() {

      createSiteButtons();

      loadCurrentSite();

      initParticles();

      setupDrag();

    }


    // Create site selection buttons

    function createSiteButtons() {

      holoSelector.innerHTML = '';

      sites.forEach((site, index) => {

        const btn = document.createElement('div');

        btn.className = 'holo-site-btn';

        btn.textContent = site.name;

        btn.addEventListener('click', () => {

          currentIndex = index;

          loadCurrentSite();

        });

        holoSelector.appendChild(btn);

      });

    }


    // Load current site

    function loadCurrentSite() {

      if (currentIndex >= 0 && currentIndex < sites.length) {

        holoIframe.src = sites[currentIndex].url;

      }

    }


    // Load next site

    function nextSite() {

      currentIndex = (currentIndex + 1) % sites.length;

      loadCurrentSite();

    }


    // Load previous site

    function prevSite() {

      currentIndex = (currentIndex - 1 + sites.length) % sites.length;

      loadCurrentSite();

    }


    // Setup drag functionality

    function setupDrag() {

      holoDisplay.addEventListener('mousedown', (e) => {

        if (e.target.className.includes('holo-btn')) return;

        

        isDragging = true;

        startX = e.clientX;

        startY = e.clientY;

        startLeft = holoDisplay.offsetLeft;

        startTop = holoDisplay.offsetTop;

        

        document.addEventListener('mousemove', handleDrag);

        document.addEventListener('mouseup', stopDrag);

      });

    }


    function handleDrag(e) {

      if (!isDragging) return;

      

      const dx = e.clientX - startX;

      const dy = e.clientY - startY;

      

      holoDisplay.style.left = `${startLeft + dx}px`;

      holoDisplay.style.top = `${startTop + dy}px`;

      holoDisplay.style.transform = `translate(0, 0) rotateY(20deg) rotateX(10deg)`;

    }


    function stopDrag() {

      isDragging = false;

      document.removeEventListener('mousemove', handleDrag);

      document.removeEventListener('mouseup', stopDrag);

    }


    // Particle background

    function initParticles() {

      const canvas = particlesCanvas;

      const ctx = canvas.getContext('2d');

      

      canvas.width = window.innerWidth;

      canvas.height = window.innerHeight;

      

      const particles = [];

      const particleCount = 100;

      

      // Create particles

      for (let i = 0; i < particleCount; i++) {

        particles.push({

          x: Math.random() * canvas.width,

          y: Math.random() * canvas.height,

          size: Math.random() * 2 + 1,

          speedX: Math.random() * 0.5 - 0.25,

          speedY: Math.random() * 0.5 - 0.25,

          color: `rgba(0, ${Math.floor(150 + Math.random() * 105)}, 255, ${Math.random() * 0.3 + 0.1})`

        });

      }

      

      // Animation loop

      function animate() {

        ctx.clearRect(0, 0, canvas.width, canvas.height);

        

        particles.forEach(particle => {

          ctx.fillStyle = particle.color;

          ctx.beginPath();

          ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2);

          ctx.fill();

          

          // Move particles

          particle.x += particle.speedX;

          particle.y += particle.speedY;

          

          // Reset particles that go off screen

          if (particle.x < 0 || particle.x > canvas.width || 

              particle.y < 0 || particle.y > canvas.height) {

            particle.x = Math.random() * canvas.width;

            particle.y = Math.random() * canvas.height;

          }

        });

        

        requestAnimationFrame(animate);

      }

      

      animate();

      

      // Resize handler

      window.addEventListener('resize', () => {

        canvas.width = window.innerWidth;

        canvas.height = window.innerHeight;

      });

    }


    // Event listeners

    holoPrev.addEventListener('click', prevSite);

    holoNext.addEventListener('click', nextSite);

    holoClose.addEventListener('click', () => {

      holoDisplay.style.display = 'none';

      setTimeout(() => {

        holoDisplay.style.display = 'flex';

      }, 1000);

    });


    // Keyboard navigation

    document.addEventListener('keydown', (e) => {

      if (e.key === 'ArrowRight') nextSite();

      if (e.key === 'ArrowLeft') prevSite();

    });


    // Initialize

    window.addEventListener('load', initHolographicDisplay);

  </script>

</body>

</html>

```


### Key Features of This Holographic Display:


1. **3D Holographic Effect**:

   - CSS 3D transforms create depth perspective

   - Glowing blue borders with pulsing animation

   - Semi-transparent display panel


2. **Interactive Particle Background**:

   - Animated floating particles

   - Creates depth and sci-fi atmosphere

   - Responsive to window resizing


3. **Floating & Draggable**:

   - Can be moved around the screen

   - Maintains 3D perspective while moving

   - Returns to center when closed and reopened


4. **Cyberpunk Styling**:

   - Neon blue color scheme

   - Glowing buttons and borders

   - Futuristic typography


5. **Site Selection Panel**:

   - Bottom-mounted site selector

   - Glowing buttons for each site

   - Clean labeling


6. **Responsive Design**:

   - Adjusts for mobile screens

   - Maintains aspect ratio

   - Particles adapt to screen size


7. **Interactive Controls**:

   - Previous/Next navigation

   - Close/reopen functionality

   - Keyboard arrow key support


This implementation creates a completely different user experience compared to traditional iframe implementations, perfect for:

- Tech demos

- Sci-fi themed websites

- Interactive displays

- Innovative web applications

- Gaming interfaces


The holographic effect is achieved purely with CSS animations and transforms, while the particle background uses canvas animation for performance. You can easily customize the colors, particle density, and site list to match your specific needs.

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !