【问题标题】:How to "connect" PHP "network" to an .svg image如何将 PHP“网络”“连接”到 .svg 图像
【发布时间】:2015-11-15 21:58:05
【问题描述】:

基本上,有一个img 和一个.svg 图像的src。我正在尝试做的是慢慢地(0.2s 轻松)将它的颜色从黑色变为白色。
因为它不是内联的<svg>,所以我不能简单地在 CSS 中更改fill 的颜色。

我尝试将img src 更改为该图像的白色副本,但这样我就没有过渡了。

我可以使用交叉淡入淡出技术,但我想保持简单,不要使用position: absolute

所以,我想出了一个解决方案。我在 jQuery 的 hover() 函数中更改了 PHP 变量的颜色,然后在 .svg 图像本身中更改了 echo 该变量:fill=<?php echo "'$color'" ?>

代码如下:
JavaScript/jQuery(mainjs.php):

<?php
    $color = "";
?>

<script type="text/javascript">
$(function() {


    $("#svg_img").hover(
        function() {
            <?php $color = "#221e1f"; ?>
        },
        function() {
            <?php $color = "white"; ?>
        }
    );
});
</script>

和 HTML(如果需要):

<img id="svg_img" src="images/um.svg" style="height: 7vh; vertical-align: middle;" alt="Home" />

那我该怎么做呢?如果不可能——或者你知道更好的方法——那么,如果没有交叉淡入淡出技术,我将如何实现我的目标?

【问题讨论】:

  • 您需要了解服务器端代码和客户端代码的区别。你不能那样做。
  • svg 有多大?把它内联而不是放在一个img标签中,然后你可以直接用JS操作它

标签: javascript php html css svg


【解决方案1】:

在悬停时,您必须更新填充属性。您不需要悬停的 PHP 代码。

提示: 你在这里做的事情真的不是一个好主意。请找出 ajax 和 MVC 是什么。您不能在 JavaScript 中编写 PHP。

【讨论】:

  • 如果我这张图片是一个内联的&lt;svg&gt;,那会起作用,但因为它只是一个&lt;img&gt;,所以它不起作用。我试过了。也就是说,你现在确实给了我一个绝妙的主意。至于 ajax 和 MVC,我可能稍后再看,但我必须尽快完成我正在做的事情,所以我现在没有时间学习新东西。
  • 然后为两种颜色创建两个不同的 svg 并在悬停中将 src 属性从一种更改为另一种。 if (src == 'x') { src == 'y' } ... 或者在页面中放置两个 img 并在hover hide() 和 show() 中放置它们。
  • 你有没有看我说的?放置 2 张图像是淡入淡出。并且更改 src 不适用于 CSS 过渡。当然,我已经使用了那种麻烦的淡入淡出技术,所以不需要努力。至少,我了解到我所要求的是不可能的。
  • 更改 src 会起作用。我没有使用 css,所以我无法在这里提供帮助,但我确信有办法做到这一点......也许这有帮助 stackoverflow.com/questions/11416136/…
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多