第六十八天 js轮播图

1.浮动与定位结合使用

浮动与相对定位

//1.两者均参与布局
//2.主浮动布局,相对布局辅助完成布局微调
//3.相对定位布局微调不同于盒模型布局微调,相对定位布局不影响盒子原有位置,就会影响兄弟盒子布局

浮动与绝对定位

// 1.只保留绝对定位布局
// 2.脱离文档流的盒子宽可以交于内部撑开

2.小米更新数据案例

默认活跃状态

1.将初始的li设置一个active类名(拥有该类名就拥有活跃状态表现的属性)】

更改活跃状态

let active_index = 0; // 活跃状态的索引
for(let I = 0; I < lis.length;i++){
    lis[I].onmouseover = function(){
        // 清除之前活跃的
        list[active_index].className = "";
        // 设置自身为活跃
        this.className = "active";
        // 更新活跃索引
        active_index = I;
    }
}

作用域(不同的js逻辑代码块)

// 不要去使用全局变量,不同的js逻辑代码块如果重复命名,要么报重名错误,要么数据
覆盖出现变量污染
// 每一个js逻辑代码块可以通过匿名函数的自调用完成局部作用域
(function){
    let a=10;
}()
(function)(){
    let a= 20;
})()

根据数据与页面结构,动态渲染数据

<ul class=‘main‘>
    <li>
        <a href="jacascript:void(0)">
            <h2>小米音响</>
            <img src="https://li.mifile.cn/a4/cf6660a3-d424-4248-889f-0eedle99a342" alt="">
            <p>这是小米音响,稍微解释一下</p>
        </a>
     </li>
    ...
</ul>
let data = [
        [
            {
                title: "热门1",
                img_url: "https://i1.mifile.cn/a4/xmad_15435448534832_SAPDq.jpg",
                info: "这是热门"
            },
            ...还有三个{}
        ],
        ...还有三个[]
    ];
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;
    }
}

3.小米轮播图分析

// 下一张
right_btn.onclick = function(){
    // 清除之前活跃的图片与tag
    img_lis[active_index].className = "";
    tag_lis[active_index].className = "";

    // 索引切换(更新活跃索引)
    // 安全性:最后一张的下一张应该his第一张
    if (active_index == 4) active_index = -1;
    active_index++;

    // 设置将要活跃的图片和tag
    img_lis[active_index].className = "active";
    tag_lis[active_index].className = "active";
};
// active_index 记录了当前活跃状态的索引,且所有逻辑共有
// 无限录播是考虑边界切换的问题

原文地址:https://www.cnblogs.com/gongcheng-/p/10246284.html

时间: 2024-08-28 17:54:51

第六十八天 js轮播图的相关文章

JS 轮播图(无缝连接的轮播图实现,含代码供参考)

需求:实现轮播图,图片无缝切换,自动播放. 实现效果: 思考一下:在图片列表后面多加一张图片,这张图片是第一张图片(为了确保无缝衔接).图片就是平铺放在一个pic里面的,每次移动就是改变的pic的left值. 来撸代码~~.所有的代码放在最后面,这里只讲一些重要的方法: 为防止懵逼:先贴出封装函数move()的代码供参考 function move(ele, attr, speed, target, callback){ //获取当前的位置 //从左往右进行移动 --- current<targ

HTML+CSS +JS 轮播图

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>轮播图</title> 6 <style> 7 #container{ 8 width: 450px; 9 height: 270px; 10 margin: 0 auto; 11 margin-top: 100px; 12 position: relative;

原生JS轮播图

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>轮播图</title> 6 </head> 7 <style> 8 *{ 9 margin:0px; 10 padding:0px; 11 } 12 13 li{ 14 list-style: none; /*取消li默认的前缀*/ 15 } 16 17

根据js轮播图原理写出合理的结构与样式、并实现js交互效果

在JS中,能用 . 的地方一般都可以用 [ ] 取代 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>

islider.js轮播图

本篇文章地址:https://www.cnblogs.com/Thehorse/p/11601032.html css #iSlider-effect-wrapper { height: 220px; width: 100%; margin: 0 auto; margin-top: 0.2rem; overflow: hidden; position: relative; } .iSlider-effect ul{ list-style: none; padding: 0; margin: 0;

JS轮播图

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{margin:0;padding:0;list-style:none;} a{text-decoration: none;color: #fff

自写:js轮播图 鼠标划过下方按钮,继续下一个

定时器关闭后再开启一般都会按照原来的路线继续走,不会因为你点了3而下个就会是4 $(".focus-rad>ul>li").hover( function(){ $(this).css({"background-color":"red","opacity": "0.5"}).siblings("li").css({"background-color":&q

原生js轮播图实现

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/css"> 7 * { 8 padding: 0; 9 margin: 0; 10 list-style: none; 11 bor

用原生js封装轮播图

原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不懂的可以直接私信我 slide.js /* * 轮播图 */ function Slide(elem, ms, d, ind){ this.el = elem; this.w = parseInt(getStyle(elem, "width")); this.h = parseInt(ge