Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Lay Theme Forum

  1. Home
  2. General Discussion
  3. P5js in Laytheme

P5js in Laytheme

Scheduled Pinned Locked Moved General Discussion
18 Posts 9 Posters 2.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K kanouu1

    Hi @debutdebut ,

    Thank you for this tutorial, it work pretty well to me.

    There is one thing I don't understand, how do you call precisely a page? Cause the sketch it appears on all my website pages. And also, is it possible to call the sketch as an image (or text) element? I mean to be able to place it on the grid as a regular object.

    Thank you!
    Nina

    debutdebutD Offline
    debutdebutD Offline
    debutdebut
    wrote on last edited by
    #5

    hey @kanouu1

    Glad to hear that it worked out for you. In order to only use the sketch on a particular "site" you have to show & hide it. This is because Laytheme is built as a "Single Page" Javascript applications (see here).

    Therefore I used the following code to determine my "current page":

    window.laytheme.on("newpageshown", function(layoutObj, type, obj){
      if(obj.slug == "ja-kob"){
        jQuery('#sketch-holder').show();
        } else {
         jQuery('#sketch-holder').hide();
      }
    });
    

    What you have to replace is obj.slug == "ja-kob" to meet your specific website. Meaning ja-kob becomes your specific slug. The slug is the last part of the url, like so: www.mywebsite.com/myslug.

    I hope this helps!

    Cheers

    1 Reply Last reply
    1
    • mariusjopenM Offline
      mariusjopenM Offline
      mariusjopen
      Global Moderator
      wrote on last edited by
      #6

      Dear @debutdebut
      very good answer!

      Thank you!

      Marius

      www.mariusjopen.world

      1 Reply Last reply
      0
      • agaukstA Offline
        agaukstA Offline
        agaukst
        wrote on last edited by
        #7

        Sorry for necroing, but thought it'd be better to ask here since I've been following this exact tutorial.

        Hey @debutdebut - thanks for the great tutorial! I love interactive websites and I'm looking to spice my portfolio site up a bit with P5.js.

        By following this guide I have been able to get my sketches to show up and working well in Google Chrome, but none of them work in either Firefox or Edge, and I can't for the life of me figure out why. I see that your site ja-kob.ch works fine in all three of these browsers.

        I'll provide the code for my sketch, index.html and screenshots of my setup in Custom CSS & HTML in Lay Theme, let me know if I have done anything wrong that would break my sketch in other browsers than Chrome.

        Sketch.js:

        var cnv;
        var ey;
        
        function setup() {
        	cnv = createCanvas(windowWidth, windowHeight);
        	//createCanvas(windowWidth, windowHeight);
        	colorMode(HSB, 360, 100, 100, 100);
        	angleMode(DEGREES);
        	cnv.position(0, 0);
        	cnv.parent('sketch-holder');
        
        	ey = {
        		x: width/2,
        		y: height,
        		rad: width/3,
        	};
        
        
        }
        
        function draw() {
        	background(0, 0, 15);
        
        	var ang = atan2(mouseY - ey.x, mouseX - ey.x);
        
        	noStroke();
        	fill(0, 0, 100);
        	ellipse(ey.x, ey.y, ey.rad);
        	fill(340, 50, 90);
        	ellipse(ey.x + (ey.x / 4) * cos(ang), ey.y + (ey.y / 4.5) * sin(ang), ey.rad / 3.3);
        	sin(ang), ey.rad;
        	fill(0, 0, 15);
        	ellipse(ey.x + (ey.x / 3.8) * cos(ang), ey.y + (ey.y / 4) * sin(ang), ey.rad / 6);
        	sin(ang), ey.rad;
        	fill(0, 0, 100);
        	ellipse(ey.x + (ey.x / 3.2) * cos(ang), ey.y + (ey.y / 3.6) * sin(ang), ey.rad / 16);
        	sin(ang), ey.rad/2;
        
        }
        
        function windowResized(){
        	resizeCanvas(windowWidth, windowHeight);
        	ey.x = width/2;
        	ey.y = height;
        	ey.rad = width/3;
        }
        
        

        Index.html:

        <!DOCTYPE html>
        <html lang="">
          <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>BigEye</title>
            <style> body {padding: 0; margin: 0;} </style>
            <script src="libraries/p5.js" type="text/javascript"></script>
            <script src="libraries/p5.sound.js" type="text/javascript"></script>
            <script src="libraries/p5.dom.js" type="text/javascript"></script>
            <script src="bigeye.js" type="text/javascript"></script>
          </head>
          <body>
          </body>
        </html>
        
        

        Lay Theme Custom CSS & HTML:

        Custom CSS for Desktop Version:

        #sketch-holder {
          margin: 0;
          padding: 0;
          width: 100%;
        }
        
        #sketch-holder canvas {
          width: 100%;
          height: auto;
          margin: 0;
          padding: 0;
        }
        

        Custom <head> content:

        <script src="https://myurl/wp-content/assets/libraries/p5.js"></script>
        <script src="https://myurl/wp-content/assets/libraries/p5.dom.js"></script>
        <script src="https://myurl/wp-content/assets/libraries/p5.sound.js"></script>
        
        <script>
            if (jQuery(window).width() > 600) {
          jQuery.getScript( "https://myurl/wp-content/assets/bigeye.js", function( data, textStatus, jqxhr ) {
            console.log( data ); // Data returned
            console.log( textStatus ); // Success
            console.log( jqxhr.status ); // 200
            console.log( "Load was performed." );
          }); 
        }
        </script>
        
        <script>
        window.laytheme.on("newpageshown", function(layoutObj, type, obj){
          if(obj.slug == "home"){
            jQuery('#sketch-holder').show();
            } else {
             jQuery('#sketch-holder').hide();
             console.log( "Hide");
          }
        });
        </script>
        

        Custom HTML at top:

        <div id='sketch-holder'></div>
        

        Cheers,
        August :--)

        augustgaukstad.com

        1 Reply Last reply
        0
        • arminunruhA Offline
          arminunruhA Offline
          arminunruh
          Global Moderator
          wrote on last edited by
          #8

          good luck!

          1 Reply Last reply
          0
          • L Offline
            L Offline
            lena...weber
            wrote on last edited by
            #9
            This post is deleted!
            1 Reply Last reply
            0
            • L Offline
              L Offline
              lena...weber
              wrote on last edited by
              #10

              Hello everybody,
              I have also been following the tutorial @debutdebut
              My Libraries and sketch.js load fine but the .ttf font file (stored in assets also) called by sketch.js can't be found. (console says "Load was performed." )

              The sketch isn't displayed at all, even when I comment out everything in my sketch related to my specific font (i thought there would be a standard font displayed instead like in the p5.js editor)
              I also tried choosing a path of a font i had already installed as a Webfont in Laytheme, but the problem remained the same.
              All I see is "Loading..." at the bottom of my sketch
              I can't figure out the problem.
              Does somebody know what could be the issue here?
              Beginners-Greetings :)
              Lena

              debutdebutD 1 Reply Last reply
              0
              • mariusjopenM Offline
                mariusjopenM Offline
                mariusjopen
                Global Moderator
                wrote on last edited by
                #11

                Dear @lena-weber
                yes. I hope someone can help!

                Best!

                Marius

                www.mariusjopen.world

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  cgvdv_bk
                  wrote on last edited by
                  #12

                  Hey There,
                  i'm sorry if this is a stupid question – my Programming Skills are very basic...

                  With the code provided by the p5.js Web-Editor, I embedded a sketch via <iframe> on my Website http://homeoffice.kroenker.com

                  <iframe src="https://editor.p5js.org/cgvdv_bk/embed/-zDedzX57" style="position: fixed; width: 100%; height: 100%; border: none"></iframe>
                  

                  Naturally i can't place anything onto the <iframe> Element... But is there any "easy" possibility (especially in Laytheme) to nest the <iframe> element into the Background?

                  Best,
                  Bernd

                  1 Reply Last reply
                  0
                  • arminunruhA Offline
                    arminunruhA Offline
                    arminunruh
                    Global Moderator
                    wrote on last edited by
                    #13

                    yea you can put the iframe in lay options -> custom css & html -> custom html in footer
                    for example

                    and then make the background transparent so your background iframe is shown (put this in some css field)

                    #grid, .cover-region-desktop .cover-inner{ background!transparent!important; }
                    
                    C 1 Reply Last reply
                    1
                    • arminunruhA arminunruh

                      yea you can put the iframe in lay options -> custom css & html -> custom html in footer
                      for example

                      and then make the background transparent so your background iframe is shown (put this in some css field)

                      #grid, .cover-region-desktop .cover-inner{ background!transparent!important; }
                      
                      C Offline
                      C Offline
                      cgvdv_bk
                      wrote on last edited by
                      #14

                      @arminunruh Thanks, i'll give it a try!

                      1 Reply Last reply
                      0
                      • L lena...weber

                        Hello everybody,
                        I have also been following the tutorial @debutdebut
                        My Libraries and sketch.js load fine but the .ttf font file (stored in assets also) called by sketch.js can't be found. (console says "Load was performed." )

                        The sketch isn't displayed at all, even when I comment out everything in my sketch related to my specific font (i thought there would be a standard font displayed instead like in the p5.js editor)
                        I also tried choosing a path of a font i had already installed as a Webfont in Laytheme, but the problem remained the same.
                        All I see is "Loading..." at the bottom of my sketch
                        I can't figure out the problem.
                        Does somebody know what could be the issue here?
                        Beginners-Greetings :)
                        Lena

                        debutdebutD Offline
                        debutdebutD Offline
                        debutdebut
                        wrote on last edited by
                        #15

                        dear @lena-weber, from your description I suppose that the path to your font is wrong. I good place to start is by opening the developer console of your browser. Usually, p5js tells you there if something is wrong with your path.

                        Hope this helps! āœŒļø

                        1 Reply Last reply
                        0
                        • mariusjopenM Offline
                          mariusjopenM Offline
                          mariusjopen
                          Global Moderator
                          wrote on last edited by
                          #16

                          Dear @debutdebut
                          Thank you for helping!
                          We appreciate the time people take to make the LayTheme community stronger.
                          Best!
                          Marius

                          www.mariusjopen.world

                          1 Reply Last reply
                          0
                          • W Offline
                            W Offline
                            wrongstudio
                            wrote on last edited by
                            #17

                            i followed this but seems like if i come back i need to do a hard refresh or else nothing shows up.

                            W 1 Reply Last reply
                            0
                            • W wrongstudio

                              i followed this but seems like if i come back i need to do a hard refresh or else nothing shows up.

                              W Offline
                              W Offline
                              wrongstudio
                              wrote on last edited by
                              #18

                              @wrongstudio I just added:

                              jQuery.ajaxSetup({cache:true});

                              and that seemed to do it.

                              1 Reply Last reply
                              1
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              I also code custom websites or custom Lay features.
                              šŸ’æ Email me here: šŸ’æ
                              info@laytheme.com

                              Before you post:
                              1. When using a WordPress Cache plugin, disable it or clear your cache.
                              2. Update Lay Theme and all Lay Theme Addons
                              3. Disable all Plugins
                              4. Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"

                              This often solves issues you might run into

                              When you post:
                              1. Post a link to where the problem is
                              2. Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
                              3. If the problem is difficult to explain, post screenshots / link to a video to explain it
                              Online Users
                              Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com
                              laytheme.com
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Search