制作幻灯片图像黑色和白色

时间:2014-10-16 10:44:40

标签: jquery css carousel caroufredsel

我使用的是http://coolcarousels.frebsite.nl/c/2/

的幻灯片

html代码就像这样

<div id="wrapper1">
            <div id="carousel">
                <img src="images/slider1.jpg" alt="building1" width="990" height="620" />
                <img src="images/slider2.jpg" alt="building2" width="990" height="620" />
                <img src="images/slider3.jpg" alt="building3" width="990" height="620" />
                <img src="images/slider4.jpg" alt="building4" width="990" height="620" />

            </div>
            <a href="#" id="prev" title="Show previous"> </a>
            <a href="#" id="next" title="Show next"> </a>
            <div id="pager"></div>
        </div>  

CSS就像这样

 <style type="text/css">



            #wrapper1 {
                background-color: #fff;
                width: 100%;
                height: 620px;
                margin-top: -225px;
                overflow: hidden;
                position: absolute;
                top: 50%;
                left: 0;
            }
            #carousel img {
                display: block;
                float: left;
            }

            #prev, #next {
                background-color: rgba(255, 255, 255, 0.7);
                display: block;
                height: 620px;
                width: 50%;
                top: 0;
                position: absolute;


            }

            #prev:hover, #next:hover {
                background-color: #fff;
                background-color: rgba(255, 255, 255, 0.8);

            }
            #prev {
                left: -495px;
            }
            #next {
                right: -495px;
            }

        </style>

和脚本

<script type="text/javascript">
            $(function() {
                $('#carousel').carouFredSel({
                    width: '100%',
                    items: {
                        visible: 3,
                        start: -1
                    },
                    scroll: {
                        items: 1,
                        duration: 1000,
                        timeoutDuration: 3000
                    },
                    prev: '#prev',
                    next: '#next',
                    pagination: {
                        container: '#pager',
                        deviation: 1
                    }
                });
            });
        </script>

工作正常。但是我想让部分前一个和下一个图像都是黑白的,当它上面的鼠标应该正常时。

像这样的东西

http://www.viyahome.com/

我不知道该怎么做。

我应用了灰度100%,但它不起作用。

请建议我怎么做

2 个答案:

答案 0 :(得分:0)

您必须使用灰度。我不确定,但您可以通过在css代码中进行以下更改来尝试。

#prev, #next {

                display: block;
                height: 620px;
                width: 50%;
                top: 0;
                position: absolute;
// add this

                filter: grayscale(100%);
                -webkit-filter: grayscale(100%);  /* For Webkit browsers */
               filter: gray;  /* For IE 6 - 9 */
              -webkit-transition: all .6s ease;  /* Transition for Webkit browsers */

            }

            #prev:hover, #next:hover {
               /* background-color: #fff;
                background-color: rgba(255, 255, 255, 0.8);*/
                filter: grayscale(0%);
                -webkit-filter: grayscale(0%);
                filter: none;
            }

检查它是否有效。

答案 1 :(得分:0)

尝试此操作,请执行以下更改。 在脚本中添加以下功能

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

    $("#carousel").bind("DOMSubtreeModified", function() { 
        $("#carousel").children().css("-webkit-filter","");
        $($("#carousel").children()[0]).css("-webkit-filter","grayscale(100%)");
        $($("#carousel").children()[2]).css("-webkit-filter","grayscale(100%)");
    });

    $("#prev").mouseenter(function(){
        $($("#carousel").children()[0]).css("-webkit-filter","");
    });

    $("#next").mouseenter(function(){
        $($("#carousel").children()[2]).css("-webkit-filter","");
    });


    $("#prev").mouseleave(function(){
        $($("#carousel").children()[0]).css("-webkit-filter","grayscale(100%)");
    });

    $("#next").mouseleave(function(){
        $($("#carousel").children()[2]).css("-webkit-filter","grayscale(100%)");
    });

});

仅更改这些css更改

 <style type="text/css">
    #prev, #next {
        /*background-color: rgba(255, 255, 255, 0.7);*/
        display: block;
        height: 450px;
        width: 50%;
        top: 0;
        position: absolute;
    }
    #prev:hover, #next:hover {
        /*background-color: #fff;
        background-color: rgba(255, 255, 255, 0.8);*/
    }
</script>

这适用于Google Chrome。为了适用于其他浏览器,请将以下内容添加到所有必要的地方

-moz-filter: grayscale(100%);
filter: grayscale(100%);

说明:您尝试将灰度滤镜添加到prev和next元素。但我们必须考虑如何将这些样式更改应用于图像。所以我在这里所做的就是监听DOM树的变化,并为左右图像动态添加css规则。

相关问题