使用js更改背景图像不透明度而不影响前景图像

伊姆蒂亚兹·乔杜里

在动画中,我有一个用作滑块的背景图像。第一个图像淡出,另一个图像淡入。我正在使用 'opacity+=' 和 'opacity-=' 方式。

但问题是有一个前景图像,margin-top 为 -50%,这意味着它与滑块重叠。当背景滑块 div 的不透明度逐渐变化时,前景图像的不透明度会随着肯定不需要的变化而变化。我怎样才能避免这个问题。

预先感谢您的回答。

let current=1;

let inInt, outInt;
function slide(){
	let slider = document.getElementById("slider");
	let limit = 3;
	function fadeIn(){
		slider.style.opacity= Number(slider.style.opacity)+.001
		if(slider.style.opacity>1){
			clearInterval(inInt);
		}
	}
	function fadeOut(){
		slider.style.opacity = Number(slider.style.opacity)-.05;
		if(slider.style.opacity<0){
			clearInterval(outInt);
		}		
	}
	function change(){
		slider.style.opacity =1;
		outInt = setInterval(fadeOut, 100);
		
		setTimeout(()=>{
			clearInterval(outInt);
			outInt = "";
			current++;
			if(current>3){
				current=1;
			}
			
			for(x=1; x<limit; x++){
				document.getElementById("sli"+x).style.display= "none";
			}
			document.getElementById("sli"+current).style.display= "block";
			slider.style.opacity = 0;
			inInt= setInterval(fadeIn, 5);
		}, 3000);
	}
	
	let timer = setInterval(change, 10000);
	
}
slide();
@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}
#header{
	height:70vh;
	padding:0;
}
#slider{
	padding:0;
	height:70vh;
	overflow:hidden;
	z-index:-100;
}
#slider img{
	width:100%;
	display:inline-block;
}

#pic{
	margin-top:-12vh;
	
}
#pic img{
	height:30vh;
	border-radius:40%;
	margin-left:5%;
	box-shadow:0 2px 2px 0 rgba(0,0,0,0.16), 0 0 0 1px rgba(0,0,0,0.08);
	vertical-align:-8vh;
	background:#000;
	
}
#name{
	display:inline-block;
	font-size:2vw;
	margin-top:2vh;
	font-family: 'Aldrich';
	color:#628d94;
}
#nav{
	font-family: 'Aldrich';
	color:#628d94;
	display:inline-flex;
	font-size:2vw;
	margin-left:25%;
	justify-content:space-between;
}
.navItem{
	font-size:1.5vw;
	border-bottom:3px solid #a2a2a2;
	margin-left:30px;
}
.navItem:hover{
	border-bottom:5px solid #fff;
	color:#eee;
}
a{
	color:inherit;
	text-decoration:none;
}
<div id="header" class="col-12 col-s-12">
		<div id="slider" class="col-12 col-s-12">
			<img src="https://images.golos.io/DQmbSzfL8pRHneykhTuxCQCyAzC7gAD7knSyizP2swmc3zD/creative_facebook_timeline_covers_023.jpg" alt="Slider image 1" id="sli1" style="display:inline-block" />
			<img src="https://www.incimages.com/uploaded_files/image/970x450/getty_509107562_2000133320009280346_351827.jpg" alt="Slider image 2" id="sli2" />
			<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTrXTDeYeeCx_DCvAirWmdpBNkHoZPslXTNhJzo2KP6PcE6-Mrq" alt="Slider image 3" id="sli3" />
		</div>
		<div id="pic" >
			<img src="https://www.cobdoglaps.sa.edu.au/wp-content/uploads/2017/11/placeholder-profile-sq.jpg" alt="" />
				<div id="name">
					Abdullah Al Monsur
				</div>
				<div id="nav">
					<a href=""><div class="navItem">Details</div></a>
					<a href=""><div class="navItem">Extra-Curricular</div></a>
					<a href=""><div class="navItem">Contact</div></a>
				</div>
		</div>
	</div>

客人271314

在 CSS 中,您可以将选择器设置#pic positionrelative

let current = 1;

let inInt, outInt;

function slide() {
  let slider = document.getElementById("slider");
  let limit = 3;

  function fadeIn() {
    slider.style.opacity = Number(slider.style.opacity) + .001
    if (slider.style.opacity > 1) {
      clearInterval(inInt);
    }
  }

  function fadeOut() {
    slider.style.opacity = Number(slider.style.opacity) - .05;
    if (slider.style.opacity < 0) {
      clearInterval(outInt);
    }
  }

  function change() {
    slider.style.opacity = 1;
    outInt = setInterval(fadeOut, 100);

    setTimeout(() => {
      clearInterval(outInt);
      outInt = "";
      current++;
      if (current > 3) {
        current = 1;
      }

      for (x = 1; x < limit; x++) {
        document.getElementById("sli" + x).style.display = "none";
      }
      document.getElementById("sli" + current).style.display = "block";
      slider.style.opacity = 0;
      inInt = setInterval(fadeIn, 5);
    }, 3000);
  }

  let timer = setInterval(change, 10000);

}
slide();
@media only screen and (min-width: 768px) {
  /* For desktop: */
  .col-1 {
    width: 8.33%;
  }
  .col-2 {
    width: 16.66%;
  }
  .col-3 {
    width: 25%;
  }
  .col-4 {
    width: 33.33%;
  }
  .col-5 {
    width: 41.66%;
  }
  .col-6 {
    width: 50%;
  }
  .col-7 {
    width: 58.33%;
  }
  .col-8 {
    width: 66.66%;
  }
  .col-9 {
    width: 75%;
  }
  .col-10 {
    width: 83.33%;
  }
  .col-11 {
    width: 91.66%;
  }
  .col-12 {
    width: 100%;
  }
}

#header {
  height: 70vh;
  padding: 0;
}

#slider {
  padding: 0;
  height: 70vh;
  overflow: hidden;
  z-index: -100;
}

#slider img {
  width: 100%;
  display: inline-block;
}

#pic {
  margin-top: -12vh;
  position:relative;
}

#pic img {
  height: 30vh;
  border-radius: 40%;
  margin-left: 5%;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08);
  vertical-align: -8vh;
  background: #000;
}

#name {
  display: inline-block;
  font-size: 2vw;
  margin-top: 2vh;
  font-family: 'Aldrich';
  color: #628d94;
}

#nav {
  font-family: 'Aldrich';
  color: #628d94;
  display: inline-flex;
  font-size: 2vw;
  margin-left: 25%;
  justify-content: space-between;
}

.navItem {
  font-size: 1.5vw;
  border-bottom: 3px solid #a2a2a2;
  margin-left: 30px;
}

.navItem:hover {
  border-bottom: 5px solid #fff;
  color: #eee;
}

a {
  color: inherit;
  text-decoration: none;
}
<div id="header" class="col-12 col-s-12">
  <div id="slider" class="col-12 col-s-12">
    <img src="https://images.golos.io/DQmbSzfL8pRHneykhTuxCQCyAzC7gAD7knSyizP2swmc3zD/creative_facebook_timeline_covers_023.jpg" alt="Slider image 1" id="sli1" style="display:inline-block" />
    <img src="https://www.incimages.com/uploaded_files/image/970x450/getty_509107562_2000133320009280346_351827.jpg" alt="Slider image 2" id="sli2" />
    <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTrXTDeYeeCx_DCvAirWmdpBNkHoZPslXTNhJzo2KP6PcE6-Mrq" alt="Slider image 3" id="sli3" />
  </div>
  <div id="pic">
    <img src="https://www.cobdoglaps.sa.edu.au/wp-content/uploads/2017/11/placeholder-profile-sq.jpg" alt="" />
    <div id="name">
      Abdullah Al Monsur
    </div>
    <div id="nav">
      <a href="">
        <div class="navItem">Details</div>
      </a>
      <a href="">
        <div class="navItem">Extra-Curricular</div>
      </a>
      <a href="">
        <div class="navItem">Contact</div>
      </a>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在背景图像上使用不透明度而不影响文本?

来自分类Dev

如何在不影响背景颜色的情况下更改背景图像的不透明度?

来自分类Dev

背景图像不透明度问题

来自分类Dev

背景图像不透明度问题

来自分类Dev

根据页面宽度更改背景图像的不透明度

来自分类Dev

如何更改正文标签背景图像的不透明度

来自分类Dev

如何使用CSS为div的背景图像设置不透明度或降低亮度

来自分类Dev

使用插件将所有背景图像的不透明度设置为0

来自分类Dev

使用伪元素:: before在Div中显示低不透明度背景图像

来自分类Dev

如何使用CSS设置背景图像的不透明度?

来自分类Dev

尝试使用 css 为背景图像添加不透明度

来自分类Dev

使用imagick更改图像的不透明度

来自分类Dev

使用imagick更改图像的不透明度

来自分类Dev

多个CSS 3背景图像-在顶部图像中添加不透明度

来自分类Dev

不透明度较低的背景,且不影响内容(且不使用伪元素)

来自分类Dev

不透明度较低的背景,且不影响内容(且不使用伪元素)

来自分类Dev

CSS不透明度影响兄弟图像的不透明度

来自分类Dev

背景图像的不透明度和灰度滤镜。使它黑白透明

来自分类Dev

背景图像的不透明度和灰度滤镜。使它黑白透明

来自分类Dev

使用鼠标指针下的JS或CSS更改图像不透明度?

来自分类Dev

带有小 JS 脚本的背景图像不透明度不适用于 iOS

来自分类常见问题

是否可以在xaringan幻灯片中调整背景图像的不透明度?

来自分类Dev

将Alpha /不透明度应用于背景图像

来自分类Dev

带旋转,重复和不透明度的CSS背景图像

来自分类Dev

是否可以在xaringan幻灯片中调整背景图像的不透明度?

来自分类Dev

我们是否可以设置面板背景图像的不透明度?

来自分类Dev

如何快速编辑背景图像不透明度

来自分类Dev

CSS3 不透明度属性到背景图像之一

来自分类Dev

添加新 div 时背景图像不透明度增加

Related 相关文章

  1. 1

    如何在背景图像上使用不透明度而不影响文本?

  2. 2

    如何在不影响背景颜色的情况下更改背景图像的不透明度?

  3. 3

    背景图像不透明度问题

  4. 4

    背景图像不透明度问题

  5. 5

    根据页面宽度更改背景图像的不透明度

  6. 6

    如何更改正文标签背景图像的不透明度

  7. 7

    如何使用CSS为div的背景图像设置不透明度或降低亮度

  8. 8

    使用插件将所有背景图像的不透明度设置为0

  9. 9

    使用伪元素:: before在Div中显示低不透明度背景图像

  10. 10

    如何使用CSS设置背景图像的不透明度?

  11. 11

    尝试使用 css 为背景图像添加不透明度

  12. 12

    使用imagick更改图像的不透明度

  13. 13

    使用imagick更改图像的不透明度

  14. 14

    多个CSS 3背景图像-在顶部图像中添加不透明度

  15. 15

    不透明度较低的背景,且不影响内容(且不使用伪元素)

  16. 16

    不透明度较低的背景,且不影响内容(且不使用伪元素)

  17. 17

    CSS不透明度影响兄弟图像的不透明度

  18. 18

    背景图像的不透明度和灰度滤镜。使它黑白透明

  19. 19

    背景图像的不透明度和灰度滤镜。使它黑白透明

  20. 20

    使用鼠标指针下的JS或CSS更改图像不透明度?

  21. 21

    带有小 JS 脚本的背景图像不透明度不适用于 iOS

  22. 22

    是否可以在xaringan幻灯片中调整背景图像的不透明度?

  23. 23

    将Alpha /不透明度应用于背景图像

  24. 24

    带旋转,重复和不透明度的CSS背景图像

  25. 25

    是否可以在xaringan幻灯片中调整背景图像的不透明度?

  26. 26

    我们是否可以设置面板背景图像的不透明度?

  27. 27

    如何快速编辑背景图像不透明度

  28. 28

    CSS3 不透明度属性到背景图像之一

  29. 29

    添加新 div 时背景图像不透明度增加

热门标签

归档