jquery - 鼠标悬停时原型(prototype)将黑白褪色为彩色

标签 jquery image prototypejs image-manipulation

我想要一个最初是黑白的图像,但是当我将鼠标悬停在它上面时,它会淡入彩色图像。

我找到了如何使用 jQuery 来做到这一点,但我不太擅长原型(prototype),而且我不知道如何转换代码以使用原型(prototype)库。有人可以帮我吗?

这是 jQuery 函数:

<script type='text/javascript'>
$(document).ready(function(){
$("img.a").hover(
function() {
$(this).stop().animate({"opacity": "0"}, "slow");
},
function() {
$(this).stop().animate({"opacity": "1"}, "slow");
});

});
</script>

这是 CSS:

<style>
div.fadehover { position: relative; }
img.a { position: absolute; left: 0; top: 0; z-index: 10; }
img.b { position: absolute; left: 0; top: 0; }
</style>

这是正文代码:

<div class="fadehover">
<img src="cbavota-bw.jpg" alt="" class="a" />
<img src="cbavota.jpg" alt="" class="b" />
</div>

感谢您花时间帮助一个人! :D

最佳答案

试试这个:

document.observe( 'dom:loaded', function()
{
    $$( 'img.a' ).first().observe( 'mouseover', function() { new Effect.Opacity( this, { duration: 1.5, from: 1, to: 0, queue: 'end' } ); } )
        .observe( 'mouseout', function() { new Effect.Opacity( this, { duration: 1.5, from: 0, to: 1, queue: 'end' } ); } );
} );

一些值得注意的事情:

Prototype 中的效果或动画是通过名为 Scriptaculous 的附加库完成的。

一旦 DOM 准备好,document.observe 就会执行代码。

每个效果运行多长时间的参数通过持续时间属性进行处理。

效果被添加到全局队列的末尾,因此如果有人将鼠标悬停然后快速移出,则会发生淡入彩色,然后淡出回黑白。需要额外的代码才能使其中止淡入彩色并从那里淡入黑色。

关于jquery - 鼠标悬停时原型(prototype)将黑白褪色为彩色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100452/

相关文章:

javascript - removeClass 不删除移动设备上的动画类?

java - 合并 SWT 图像

javascript - 调整图像大小以完美适合容器

php - 我如何在 CakePHP 中定义脚本?

javascript - 使用 Prototype 事件观察器防止用户在文本区域中写入超过 N 个字符

javascript - 使用 jQuery 单击按钮后切换列表项

javascript - 文本选择事件结束?

javascript - jQuery 插件 listnav 无法正常使用功能

image - 我可以将图像作为文件而不是数据存储在 Firebase 上吗 :url?

javascript - 在prototypejs中扩展命名空间