Search code examples
javascriptjquerycsssvgsvg-animate

Run different patterns on hover


I am trying to generate a random pattern every time I hover over div(svg).

Codepen

This is my code so far:

var items = ["#pattern-rect", "#pattern-circle", "#pattern-triangle","#pattern-star"];
$("div").hover(function(){
  $("g").css({"visibility": "visible"});
  var item = Math.floor(Math.random()*items.length);
  $("g").css({"fill": "url(items[item])"});
  }, function(){
  $("g").css({"visibility": "hidden"});
  });
$("g").css({"visibility": "hidden"});



  $("g").css({"fill": "url(items[item])"}); This line is not working.

Solution

  • $("g").css({"fill": "url(items[item])"});
    

    would need to be something like:

    $("g").css({"fill": "url(" + items[item] + ")"});