• Javascript知识【轮播图和定时弹广告案例&JS样式修改】


    目录

    1,案例:轮播图

    2,JS样式修改【重点】

    2.1:className

    2.2:style

    3,案例:定时弹广告


    1,案例:轮播图

     需要编写程序,完成自动切换图片功能.。

    每2秒切换一次图片。

    1. 分析:

    关键点:

    1. 页面加载完成时:window.οnlοad=function(){};
    2. 循环定时器:setInterval(function(){},2000);
    3. src属性切换: 图片对象.src=""

    步骤:

    1. 页面加载完成时,设置一个2秒重复循环定时器
    2. 定时器中,每隔2秒,修改图片的src

    修改src顺序:1--->2--->3--->1.....

    1. 代码实现:
    2. <script>
         var num = 2;
         window.onload=function () {
            setInterval(function () {
               //1、获取图片对象
               var lbt = document.getElementById("lbt");
               //2、修改图片的src
               lbt.src="img/"+(num++)+".jpg";
               //对Num维护,只能是1---》2---》3----》1....
               if(num==4){
                  num=1;
               }
            },2000);
         };
      script>


      <tr>
         <td>
            <img id="lbt" src="img/1.jpg" width="100%"/>
         td>
      tr>

    2,JS样式修改【重点】

    html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
        <style>
            .skyblue{
                width: 100px;
                height: 100px;
                background-color: skyblue;
            }
            .pink{
                width: 100px;
                height: 100px;
                background-color: pink;
            }
        style>
    head>
    <body>
        <div class="skyblue">div>
        <input type="button" value="点我修改样式"/>
    body>
    html>

    2.1:className

    获取/修改  class属性

    html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
        <style>
            .skyblue{
                width: 100px;
                height: 100px;
                background-color: skyblue;
            }
            .pink{
                width: 100px;
                height: 100px;
                background-color: pink;
            }
        style>
        <script>
            function run() {
                var d1 = document.getElementById("d1");
                d1.className = "pink";
            }
        script>
    head>
    <body>
        <div id="d1" class="skyblue">div>
        <input type="button" value="点我修改样式" onclick="run()"/>
    body>
    html>

    若需要元素进行class值的切换,可以使用   元素.className=""; 

    2.2:style

    修改 style中的CSS代码

    html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
        <style>
            .skyblue{
                width: 100px;
                height: 100px;
                background-color: skyblue;
            }
        style>
        <script>
            function run() {
                var d1 = document.getElementById("d1");
                d1.style = "background-color: pink;";//行内样式:


            }
        script>
    head>
    <body>
        <div id="d1" class="skyblue">div>
        <input type="button" value="点我修改样式" onclick="run()"/>
    body>
    html>

    若仅需要修改部分css样式:

    元素.style="css代码"; // 相当于为元素添加了行内样式

     

    3,案例:定时弹广告

     

    1. 分析:

    关键点:

    1、涉及到样式切换(class属性值切换)

    元素.className=""

    2、一次性定时器

    setTimeout(代码,2000);

    3、页面加载完成时,启动定时器

    window.onload = function(){

    };

    步骤:

    1. 页面加载完成时,启动定时器
    2. 该定时器在页面加载完成后两秒,将图片展示出来
    3. 图片展示完成后,还需要启动“关闭图片用的”定时器
    4. “关闭图片用的”定时器 启动后,将图片隐藏起来

     

    1. 代码实现:
    2. <script>
         //1、页面加载完成时,启动定时器
         window.onload = function () {
            //2、该定时器在页面加载完成后两秒,将图片展示出来
            setTimeout(function () {
               //2.1、获取图片对象
               var img = document.getElementById("ad");
               //2.2、修改图片对象的className 为showImg
               img.className = "showImg";
               //3、图片展示完成后,还需要启动“关闭图片用的”定时器
               setTimeout(function () {
                  //4、“关闭图片用的”定时器 启动后,将图片隐藏起来
                  img.className = "hiddenImg";
               },2000);
            },2000);
         };
      script>

     BUG说明:

    两个定时器是同时启动的,可能在展示的瞬间关闭。可能先进行关闭,在进行展示,导致无法收回 

     

  • 相关阅读:
    女生学java开发难吗?女生适合学java吗?
    我的力扣刷题顺序(参考代码回忆录)
    Spring源码(十二)reflush方法下的消息资源按和监视器初始化
    vmware16安装macOS
    【web】TCP/UDP协议详解(字节二面:TCP三次握手、四次挥手)
    MySQL(3)
    Maven打包SpringBoot遇到的坑
    高性能网络框架Netty介绍以及io模型
    Maven 的其它插件
    【程序员日记】---从业务编排到低代码
  • 原文地址:https://blog.csdn.net/m0_64550837/article/details/126198453