Jump to content

IgnatiaBelle

Member
  • Posts

    12
  • Joined

  • Last visited

Posts posted by IgnatiaBelle

  1. Thankyou so so much for this! I actually realised I had sent you the wrong codepen hahahaha but I followed this layout and it worked (sort of)

    So its displaying on my website now, as you can see here https://www.ignatiabelle.com/, but its affecting the whole site rather than just sitting as a header at the top.. is there a way I can fix this? as the whole site isn't functional now.

    This is the code I put in a code block

    Quote

     

    <body>
     
    <div class="container">
      <div class="text"></div>
    </div>

    </body>

    <style>
     @import 'https://fonts.googleapis.com/css?family=Roboto+Mono:100';
    html,
    body {
      font-family: 'Roboto Mono', monospace;
      background: #eee8e5;
      height: 100%;
    }
    .container {
      height: 100%;
      width: 100%;
      justify-content: center;
      align-items: center;
      display: flex;
    }
    .text {
      font-weight: 100;
      font-size: 28px;
      color: #212121;
    }
    .dud {
      color: #757575;
    }

    </style>

    <script>
      // ——————————————————————————————————————————————————
    // TextScramble
    // ——————————————————————————————————————————————————

    class TextScramble {
      constructor(el) {
        this.el = el
        this.chars = '!<>-_\\/[]{}—=+*^?#________'
        this.update = this.update.bind(this)
      }
      setText(newText) {
        const oldText = this.el.innerText
        const length = Math.max(oldText.length, newText.length)
        const promise = new Promise((resolve) => this.resolve = resolve)
        this.queue = []
        for (let i = 0; i < length; i++) {
          const from = oldText[i] || ''
          const to = newText[i] || ''
          const start = Math.floor(Math.random() * 40)
          const end = start + Math.floor(Math.random() * 40)
          this.queue.push({ from, to, start, end })
        }
        cancelAnimationFrame(this.frameRequest)
        this.frame = 0
        this.update()
        return promise
      }
      update() {
        let output = ''
        let complete = 0
        for (let i = 0, n = this.queue.length; i < n; i++) {
          let { from, to, start, end, char } = this.queue[i]
          if (this.frame >= end) {
            complete++
            output += to
          } else if (this.frame >= start) {
            if (!char || Math.random() < 0.28) {
              char = this.randomChar()
              this.queue[i].char = char
            }
            output += `<span class="dud">${char}</span>`
          } else {
            output += from
          }
        }
        this.el.innerHTML = output
        if (complete === this.queue.length) {
          this.resolve()
        } else {
          this.frameRequest = requestAnimationFrame(this.update)
          this.frame++
        }
      }
      randomChar() {
        return this.chars[Math.floor(Math.random() * this.chars.length)]
      }
    }

    // ——————————————————————————————————————————————————
    // Example
    // ——————————————————————————————————————————————————

    const phrases = [
      'storyteller',
      'cuentista',
      'visual communicator',
      'comunicador visual',
      'lets talk',
      'hablemos',
    ]

    const el = document.querySelector('.text')
    const fx = new TextScramble(el)

    let counter = 0
    const next = () => {
      fx.setText(phrases[counter]).then(() => {
        setTimeout(next, 800)
      })
      counter = (counter + 1) % phrases.length
    }

    next()
    </script>

     

     

    Screen Shot 2020-11-16 at 10.23.54 pm.png

  2. Site URL: https://www.ignatiabelle.com/

    Hi there!

    I want to use this code on my website's homepage as the header. https://codepen.io/iggy-van-reesema/pen/NWrNKNQ

    Not sure where to paste the various HTML, CSS & JS codes.

    I have tried pasting it all (html css and js) into a code block and I can get the text to appear and its animating just the css styling hasn't been added to it..

    My site is www.ignatiabelle.com

    Thanks for any help!

×
×
  • Create New...

Squarespace Webinars

Free online sessions where you’ll learn the basics and refine your Squarespace skills.

Hire a Designer

Stand out online with the help of an experienced designer or developer.