jquery动态更改svg image xlink:href

前端之家收集整理的这篇文章主要介绍了jquery动态更改svg image xlink:href前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用不是填充颜色的图像动态地更改多边形的填充.为此,我找到了一种将填充更改为图像的方法,但是我无法将xlink:href URL动态更改为随机URL.
有什么想法吗?谢谢你的帮助!
  1. <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="320px" height="480px" viewBox="0 0 320 480" enable-background="new 0 0 320 480" xml:space="preserve" xmlns:xml="http://www.w3.org/XML/1998/namespace">
  2. <pattern patternUnits="userSpaceOnUse" id="pat1" x="10" y="10"
  3. width="425" height="319">
  4. <image id="background" width="100%" height="100%"
  5. xlink:href="http://www.w3.org/1999/xlink" />
  6. </pattern>
  7. <g id="Layer_1">
  8. <polygon class="background" fill="url(#pat1)" points="265.188,329.922 160.198,358 55.208,329.922 55.208,120.868 265.188,120.868 "/>
  9.  
  10. </g>
  11. <g id="Layer_2">
  12. <g id="brand_mark_1_">
  13. <g>
  14. <rect x="265.188" y="120.868" fill="#FFFFFF" width="23.812" height="44.378"/>
  15. <g>
  16. <path fill="#020304" d="M275.372,149.035c0,0.949,0.77,1.72,1.721,1.72c0.949,1.72-0.771,1.72-1.72 c0-0.023-0.003-0.044-0.004-0.066v-16.261c0.004-0.043,0.007-0.088,0.007-0.134c0-0.95-0.77-1.72-1.719-1.72 c-0.942,0-1.707,0.757-1.72,1.695h-0.005v16.461h0.001C275.374,149.017,275.372,149.025,149.035z"/>
  17. <circle fill="#F5170D" cx="277.093" cy="153.541" r="1.72"/>
  18. </g>
  19. </g>
  20. </g>
  21. </g>
  22. </svg>
  23.  
  24.  
  25. $(document).ready(function() {
  26. var randomColor = Math.floor(Math.random()*16777215).toString(16),randomNumber = Math.floor((Math.random()*855)+48),backg = $('#background');
  27. $("body").css("background-color",randomColor);
  28. backg.attr("http://www.w3.org/1999/xlink","xlink:href","url(http://blob.apliiq.com/sitestorage/fabric/" + randomNumber + ".png)");
  29. $('a#cta').attr("href","/designyourown/?fabricID=" + randomNumber );
  30. });

解决方法

如果您纠正了backg.attr功能属性,则可以正常工作.
  1. $(document).ready(function () {
  2. var randomColor = Math.floor(Math.random() * 16777215).toString(16),randomNumber = Math.floor((Math.random() * 855) + 48),backg = $('#background');
  3. $("body").css("background-color",'#' + randomColor);
  4. backg.attr("xlink:href","http://blob.apliiq.com/sitestorage/fabric/" + randomNumber + ".png");
  5. $('a#cta').attr("href","/designyourown/?fabricID=" + randomNumber);
  6. });

JSFiddle链接http://jsfiddle.net/arpitworld/jhetx/

猜你在找的jQuery相关文章