前端模拟手机屏幕图片渐隐渐现效果实现

  在网站上,我们经常会看到这样的效果,有一个IphoneX的手机屏幕,然后屏幕上会像真的一样,会出现各种动画效果,譬如图片的渐隐渐现。今天我们就尝试做一个这样的效果。

  HTML页面结构大概是这样子的:

  <main class="mobileBox">
    <div class="imgBox">
      <img src="./images/bg1.jpg" class="imgItem"  srcset="">
      <img src="./images/bg2.jpg" class="imgItem"  srcset="">
      <img src="./images/bg3.jpg" class="imgItem"  srcset="">
      <img src="./images/bg4.jpg" class="imgItem"  srcset="">
      <img src="./images/bg5.jpg" class="imgItem"  srcset="">
    </div>
  </main>

  其实很简单,就是外边一个box,我们把她的背景设置为手机的图片,里边的imgBox,用来存放图片,图片用absote定位,这样几张图片就重合在一起,然后我们通过改变图片的opaticy和z-index,就可以实现预期效果。

  CSS代码长这样

.mobileBox {
  width: 454px;
  height: 618px;
  background-image: url(../images/mobile.png);
  background-size: 454px 618px;
  background-position: 0 0;
  position: relative;
}
.imgBox {
  padding: 99px 0 0 151px;
  position: relative;
}
.imgItem {
  position: absolute;
  visibility: hidden;
  opacity: 0;
}

.show,
.opacityTrans {
  opacity: 1;
  visibility: visible;
}
.opacityTrans {
  -webkit-transition: opacity 1.5s ease-in;
  transition: opacity 1.5s ease-in;
  z-index: 2;
}

  我们就是通过改变图片元素的类名来实现效果切换的。同一时刻,有且只有一张图片的类是.show ,有且只有一张图片的类是.opacityTrans .

  JS代码长这样。

  

window.onload = function() {
  var imgItems = document.querySelectorAll(".imgItem");
  var index = 0;
  var tem = 1;//我们定义两个变量,来控制show和opacityTrans类的交替,开始时,第一张显示,第二张慢慢出现。
  imgItems[index].classList.add("show");
  imgItems[tem].classList.add("opacityTrans");//定时器代码
  setInterval(function() {

    imgItems[index].classList.remove("show");
    imgItems[tem].classList.remove("opacityTrans");
    index++;
    tem++;//当达到最后一张时,边界条件设置:回到第一张。总体就是从第0张到第imgItems.length - 1张,循环,所以我们用两个变量,使逻辑更清晰。
    if(tem === 5){
      tem = 0;
    };
    if(index === 5){
      index = 0;
    }
    imgItems[index].classList.add("show");
    imgItems[tem].classList.add("opacityTrans");
  }, 2000);
};

  怎么样,很简单吧。

原文地址:https://www.cnblogs.com/goodearth/p/8684526.html

时间: 2024-07-30 17:03:52

前端模拟手机屏幕图片渐隐渐现效果实现的相关文章

在Unity5中使用C#脚本实现UI的下滑、变色、渐隐渐现效果

一.首先,我们先创建一个Text    依次选择Component→UI→Text创建一个Text,创建完成后如下: 二.创建完成后,在Project面板点击Create→C# Script,本例命名为InAndFade 三.编写代码之前,为了确保能够调用到Text类,所以要先手动引入命名空间 using UnityEngine.UI; 四.完整代码如下 1 public class InAndFade : MonoBehaviour 2 { 3 //渐隐渐现 4 public bool Sho

css3 hover平滑过渡效果,鼠标经过元素,背景渐隐渐现效果

下面实例,演示,鼠标经过时,改变div宽度,平滑改变,带动画 div { width:100px; height:100px; background:blue; transition:width 2s; -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ } div:hover { wid

UGUI 实现界面 渐隐渐现 FadeIn/Out 效果

孙广东  2015.7.10 其实熟悉NGUI的人,应该知道  实现渐隐渐现 FadeIn/Out 效果是很方便的,因为父对象 的 改变会自动影响到子对象. 比如 UIWidget.UIPanel等组件都有 Alpha属性,在Inspector面板上可以直接设置拖拽的改变看看.  确实如此. 但是到UGUI呢,没有这么方便.  需要熟悉一下 组件的内部和继承关系了! UI中每个能够显示控件都会有一个CanvasRender对象,CanvasRender有什么作用呢? 官方的解释:The Canv

QT窗口渐现效果,窗口震动效果,鼠标移动窗口

//窗口渐现效果void MainWindow::closeWindowAnimation() //关闭窗口效果 { QPropertyAnimation *animation = new QPropertyAnimation(this,"windowOpacity"); animation->setDuration(500); animation->setStartValue(1); animation->setEndValue(0); animation->

实现渐隐渐现页面跳转

有时我们可能想要从一个页面跳转到另一个页面的过渡变得柔和些,也即是,点击链接后,当前页面渐隐,而后跳转渐显新页面的效果.可以使用jquery轻易实现. 效果: 页面1: <!DOCTYPE HTML><html lang="en-US"><head>    <meta charset="UTF-8">    <title>页面1</title>    <script type="

js学习总结----轮播图之渐隐渐现版

具体代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin:0; padding:0; font-size:14px; -webkit-user-select:none; } ul,li{ list-style } im

基于JQuery的渐隐渐现轮播

/* <div id="ads"> <div> <ul> <li><a href="#" target="_blank"><img src="/Content/images/home_ads1.jpg" /></a></li> <li><a href="#" target="_blan

手机屏幕录制软件分享

经常遇到亲朋好友手机操作遇到问题不会解决,就问我,于是找了下现在流行的一些手机屏幕录制软件,现分享我比较看好的两款. 这款软件可以录制手机屏幕也可以将手机屏幕投影到浏览器中: http://yunpan.cn/cf72HcGRGfImS (提取码:0432) 这款软件需要安装谷歌框架服务,下载链接:http://yunpan.cn/cf72PpyAJgukm (提取码:b516) 录制手机屏幕效果不错: http://yunpan.cn/cf72rE57EScCf (提取码:968a)

【分享】JS图片滑动渐显渐隐插件-附使用方法。

前阵子总监要说做一个邀请函 效果 点击这里 鼠标拖拽进行浏览 它用的是Adobe edge软件生成的,代码量过大,冗余太多. 再加上我也没学过这个软件怎么使用,增加学习成本影响项目进度. 于是就自己写了个简单的.鼠标移动到右下角窗口滚动看效果→DEMO 不过是单体的 没有使用多个图片分频运动 ,当然如果项目需要的话,改起来也不费劲,比上面的要简单许多. 使用方法在下方: #bg{ position:fixed; width: 100%; height: 200%; background: url