BlackAndWhite 把图片转成黑白效果 jQuery 插件

发布于 2019-12-01 13:29:42 字数 4637 浏览 1815 评论 0

BlackAndWhite 是一款图片类的插件,这款插件可以很容易地将任何彩色图片转换成B&W灰度图片,当鼠标移动到图片上时,图片可慢慢恢复原有的色彩。该插件可用于图片展示或相册等。

使用方法

引入文件

你需要同时引入jQuery文件和BlackAndWhite插件文件,jQuery文件必须放置到前面。

<script src="js/jquery.min.js"></script>
<script src="js/jQuery.BlackAndWhite.js"></script>

HTML代码

<ul id="wrapper">
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Chrysanthemum.jpg" alt="">
        </a>
    </li>
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Desert.jpg" alt="">
        </a>
    </li>
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Koala.jpg" alt="">
        </a>
    </li>
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Lighthouse.jpg" alt="">
        </a>
    </li>
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Penguins.jpg" alt="">
        </a>
    </li>
    <li>
        <a class="bwWrapper" href="###">
            <img  src="images/Tulips.jpg" alt="">
        </a>
    </li>
</ul>

注意有一个类名 class=”bwWrapper”,这个必须有,因为下面的 CSS 需要用到。当然改成别的也可以,但必须与 CSS 样式对应。

CSS样式

.bwWrapper {
    position: relative;
    display: block;
}

初始化插件

$('.bwWrapper').BlackAndWhite({
    hoverEffect : true, // default true
    // set the path to BnWWorker.js for a superfast implementation
    webworkerPath : false,
    // to invert the hover effect
    invertHoverEffect: false,
    // this option works only on the modern browsers ( on IE lower than 9 it remains always 1)
    intensity:1,
    speed: { //this property could also be just speed: value for both fadeIn and fadeOut
        fadeIn: 200, // 200ms for fadeIn animations
        fadeOut: 800 // 800ms for fadeOut animations
    },
    onImageReady:function(img) {
        // this callback gets executed anytime an image is converted
    }
});

注意:BlackAndWhite 必须使用 window 的 load 事件,而不是 $(document).ready() 事件,因为 BlackAndWhite 是应用于图片上,所以必须等图片加载完成。

可选参数

参数说明
hoverEffecthover 效果,默认为 false,即鼠标移动到图片上不会变为彩色的,仍然为灰色的;如果为 true,则反之
webworkerPath文件路径,BlackAndWhite 需要用到一个 BnWWorker.js 文件,这个文件才是真正处理图片的脚本,这个参数就是指定 BnWWorker.js 文件的路径。默认为 false,即与 BlackAndWhite 在文件夹下
responsive响应
invertHoverEffect颠倒 hover 效果,即 hoverEffect 的效果相反
speed图片变换速度,包括淡入和淡出两个速度

轻量级的解决方案

如果你正在寻找一个轻量级的解决方案,您可以使用以下 CSS 代替,但它不是 100% 跨浏览器:

img {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    /* Firefox 10+, Firefox on Android */
    filter: gray; /* IE6-9 */
    -webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
    transition: 0.3s ease-in;
}

img:hover {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
    -webkit-filter: grayscale(0%);
}

相关链接

Github 地址:https://github.com/GianlucaGuarini/jQuery.BlackAndWhite

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

4401 文章
128 评论
84972 人气
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。