Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用HTML/CSS/JavaScript控制图像不透明度_Javascript_Jquery_Html_Css - Fatal编程技术网

使用HTML/CSS/JavaScript控制图像不透明度

使用HTML/CSS/JavaScript控制图像不透明度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,有人能告诉我这个密码吗 基本上,我有两张相同的图片,一张是在白天拍摄的,另一张是在晚上拍摄的,我想要它,在亮的那张是原始图片的地方,当页面向下滚动时,它开始混合到较暗的图片中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="ht

有人能告诉我这个密码吗

基本上,我有两张相同的图片,一张是在白天拍摄的,另一张是在晚上拍摄的,我想要它,在亮的那张是原始图片的地方,当页面向下滚动时,它开始混合到较暗的图片中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>BG Test</title>

    <script>
    var start = 100 // how far the user has to scroll down before it start fading
    var end = 1200 // the number of pixels the user has to scroll down before the opacity is 0.

    $(document).scroll(function(){
        if(scrollTop>start){
            $('images/MainLight.png').css({'body':(end-scrollTop)/(end-start)});
        }
    });
    </script>
    </head>

    <style type="text/css">
    body{
        background:url(images/MainLight.png) no-repeat center center fixed;
        opacity:100;
        width:100%;
        z-index:-1;

    }

    bgimg{
        background:url(images/MainDark.png) no-repeat center center fixed;
        opacity:100;
        width:100%;
        z-index:0;
    }

    </style>

    <div class="body" >

       Top!
       <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br                                 /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />        <br /><br /><br /><br /><br /><br /><br /><br />
       Middle!
       <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />        <br /><br /><br /><br /><br /><br /><br /><br />
               <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br         /><br /><br /><br /><br /><br /><br /><br /><br /><br />
       Bottom!

    </div>

    <body>
    </body>
    </html>

BG试验
var start=100//用户在开始衰落前必须向下滚动多远
var end=1200//在不透明度为0之前,用户必须向下滚动的像素数。
$(文档)。滚动(函数(){
如果(滚动顶部>开始){
$('images/MainLight.png').css({'body':(end-scrollTop)/(end-start)});
}
});
身体{
背景:url(images/MainLight.png)无重复中心固定;
不透明度:100;
宽度:100%;
z指数:-1;
}
bgimg{
背景:url(images/MainDark.png)无重复中心固定;
不透明度:100;
宽度:100%;
z指数:0;
}
顶部
















































中间的















































屁股!

非常感谢。问题是不透明度从1变为0。只需将css更改为以下内容:

body{
    background:url(images/MainLight.png) no-repeat center center fixed;
    opacity:1;
    width:100%;
    z-index:-1;

}

bgimg{
    background:url(images/MainDark.png) no-repeat center center fixed;
    opacity:1;
    width:100%;
    z-index:0;
}

试着用小提琴演奏:

我正在复制小提琴js:

var fadeStart=100//100px或更小的滚动将等于1不透明度 ,fadeUntil=200//200px或更大的滚动将等于0不透明度 ,褪色=$(“#褪色”) ;

$(窗口).bind('scroll',function(){
var offset=$(文档).scrollTop()
,不透明度=0
;

如果(偏移量正常,我为此使用了
-webkit mask
。试试这个

.child-2 {
    -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.45, #000), color-stop(0.55, transparent));
    -webkit-mask-size:220%;
    -webkit-mask-position-y:0%;
}

var child2=$('.child-2'),
lastScrollTop=0;
$(窗口)。滚动(功能(事件){
var st=$(this.scrollTop(),
pos=parseInt(child2.css(“-webkit-mask-position-y”)。替换('%,'');
如果(st>lastScrollTop){
pos+=3;
}否则{
pos-=3;
}
lastScrollTop=st;
如果(!(pos100)){
child2.css(“-webkit-mask-position-y”,pos+“%”);
}
});//其余的代码都在处理中。

它仍然有缺陷,但这只是一个粗略的想法。

也许这有助于我对jQuery不是很熟悉,所以我不确定如何进一步帮助您。
.child-2 {
    -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.45, #000), color-stop(0.55, transparent));
    -webkit-mask-size:220%;
    -webkit-mask-position-y:0%;
}
var child2 = $('.child-2'),
    lastScrollTop = 0;
$(window).scroll(function (event) {
    var st = $(this).scrollTop(),
        pos = parseInt(child2.css("-webkit-mask-position-y").replace('%', ''));
    if (st > lastScrollTop) {
        pos += 3;
    } else {
        pos -= 3;
    }
    lastScrollTop = st;
    if (!(pos<0) || !(pos>100)) {
        child2.css("-webkit-mask-position-y", pos + "%");
    }
});//Rest of the code is in the fiddle.