使用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.