zoukankan      html  css  js  c++  java
  • 布局和js的轮播图

    一.   浮动与定位

    浮动:float: left | right

    定位:position:relative | absolute | fixed

    1.浮动与相对定位结合使用

    /*盒子采用的是浮动布局为主, 相对定位可以辅助其子级绝对定位布局, 也可以在浮动布局基础上微调 */

    采用相对定位布局, 在浮动布局基础上微调, 不影响兄弟盒子的布局

    采用盒模型布局, 在浮动布局基础上微调, 影响兄弟盒子的布局

    2.浮动与绝对定位结合使用

    盒子采用绝对定位布局, 浮动布局失效

    为什么: 因为两者都是脱离文档流, 绝对定位为完全脱离文档流

    脱离文档流: 盒子的宽度可以由内容撑开

    二.   Js  更改活跃状态

    let active_index = 0;  // 活跃状态的索引

    for (let i = 0; i < lis.length; i++) {

        lis[i].onmouseover = function () {

            // 清除之前活跃的

            lis[active_index].className = "";

            // 设置自身为活跃

            this.className = "active";

            // 更新活跃索引

            active_index = i;

        }

    作用域的问题:

    // 不要去使用全局变量, 不同的js逻辑代码块如果重复命名, 要么报重命名错误, 要么数据覆盖出现变量污染

    // 每一个js逻辑代码块可以通过匿名函数的自调用完成局部作用域

    (function(){

        let a = 10;

    })()

    (function(){

        let a = 20;

    })() 

    页面的结构问题(结构的搭建很重要)

    let main_lis = document.querySelectorAll('.main li');

    // 分析数据结构与页面结构,将指定数据渲染到指定位置

    function updateData(index) {

        let dataArr = data[index];

        for (let i = 0; i < dataArr.length; i++) {

            let h2 = main_lis[i].querySelector('h2');

            h2.innerText = dataArr[i].title;

            let img = main_lis[i].querySelector('img');

            img.setAttribute('src', dataArr[i].img_url);

            let p = main_lis[i].querySelector('p');

            p.innerText = dataArr[i].info;

        }

    }

    三.   轮播图

    // 下一张

    right_btn.onclick = function () {

        // 清除之前活跃的图片和tag

        img_lis[active_index].className = "";

        tag_lis[active_index].className = "";

        // 索引切换(更新活跃索引)

        // 安全性: 最后一张的下一张应该是第一张

        if (active_index == 4) active_index = -1;

        active_index++;

        // 设置将要活跃的图片和tag

        img_lis[active_index].className = "active";

        tag_lis[active_index].className = "active";

    };

    // active_index 记录了当前活跃状态的索引, 且所有逻辑共有

    // 无限录播时考虑索引边界切换的问题

       

        

  • 相关阅读:
    .htaccess中的apache rewrite规则写法详解(未完)
    Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)(未完)
    Linux的单用户模式
    linux proc目录和常用操作
    struts2 中的 addActionError 、addFieldError、addActionMessage的方法
    OGNL和类型转换
    ognl概念和原理详解
    java垃圾回收器
    java堆和栈的区别
    js的call()通俗解释
  • 原文地址:https://www.cnblogs.com/zhouhai007/p/10170625.html
Copyright © 2011-2022 走看看