Javascript 使用CSS创建飞溅形状

Javascript 使用CSS创建飞溅形状,javascript,jquery,html,css,Javascript,Jquery,Html,Css,假设有一个圆形链接,当您将鼠标悬停时,它会变成这样,并带有一个漂亮的动画(粉红色形状): 我想到了很多事情,但我不知道该怎么办。我认为最好的方法可能是为每一滴使用一个元素和一个sprites背景图像,并使用jQuery或CSS转换来显示它们。但是,我不知道如何设置动画。这将是一种自然的方式,网页设计师将如何处理这样的事情。你认为最好的方法是什么 编辑(澄清) 虽然看起来是这样,但我并不是想纯粹通过使用CSS来实现这一点。我只是想知道如何以最好的方式做到这一点。事实上,我希望它能在尽可能多的浏览

假设有一个圆形链接,当您将鼠标悬停时,它会变成这样,并带有一个漂亮的动画(粉红色形状):

我想到了很多事情,但我不知道该怎么办。我认为最好的方法可能是为每一滴使用一个元素和一个sprites
背景图像
,并使用jQuery或CSS转换来显示它们。但是,我不知道如何设置动画。这将是一种自然的方式,网页设计师将如何处理这样的事情。你认为最好的方法是什么

编辑(澄清) 虽然看起来是这样,但我并不是想纯粹通过使用CSS来实现这一点。我只是想知道如何以最好的方式做到这一点。事实上,我希望它能在尽可能多的浏览器上运行

我问这个问题是因为我想看看一个有经验的web开发人员如何解决这个问题。我认为这个问题的一个有趣的事实是,在现代浏览器功能和旧浏览器之间取得合理平衡的情况下,应该使用哪种方法来实现最好的结果

编辑2: 有些人要求我提供一些我认为可以解决这个问题的方法。我尽量简短:

  • 使用多个元素。每一个放置一滴,并使用CSS设置动画。比如:

    HTML:

    4,5,6,。。。把上面的混合起来。例如,使用CSS创建圆形,并使用
    .gif
    画布
    进行放置。或者可以使用CSS创建圆和滴,以及jQuery或CSS转换来设置它们的动画


  • 我希望这符合你的标准,让这个问题保持开放。我不是来这里免费使用别人的知识而不尝试自己的。我只是想听听其他开发人员的意见。

    好吧,您可以将背景颜色设置为飞溅形状的图像,并将其更改为悬停时的.gif图像:

    div {
        background-image:url('circle.png');
    }
    div:hover {
        background-image:url('splatter.gif');
    }
    

    关于在那里放置gif的建议,你应该能够下载并让浏览器缓存它,不是吗?与将
    img
    标记链接到页面主体中一样,使用CSS将其隐藏,然后重新使用


    无论如何,我这样做是为了切换图像。

    他们可能会问“你为什么要这样做?”的重复。“因为我能”,阿利雷扎会回答::-)我想用CSS绘制蒙娜丽莎:我认为SVG是实现这一效果的更好选择。你基本上需要一个变形路径。我不是想用CSS来实现这一点。我只是想知道怎么做。事实上,我希望它能在尽可能多的浏览器上运行。也许应该重新打开?我认为这不是一个好主意,因为
    gif
    应该在用户悬停鼠标后下载。这意味着它暂时无法工作。
    div.splash {
        background-image:url('circle.png');
    }
    
    div.splash:hover {
        background-image:url('splatter.gif');
    }
    
    div {
        background-image:url('circle.png');
    }
    div:hover {
        background-image:url('splatter.gif');
    }