zoukankan      html  css  js  c++  java
  • 天猫轮播图

    天猫轮播图

      在做网页的时候,轮播图很常见,今天我们就做一种轮播图,通过轮播图来熟悉JavaScript的操作。
    样式如下所示:
    在这里插入图片描述
    执行代码如下所示:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <style type="text/css">
    			*{
    				margin: 0;
    				padding: 0;
    			}
    			.box{
    				 800px;
    				height: 300px;
    				position: relative;
    				overflow: hidden;
    				margin: 100px auto;
    			}
    			.box .slider{
    				 100%;
    				height: 100%;
    			}
    			.box .slider ul{
    				 1000%;
    				list-style: none;
    				position: absolute;
    				top: 0;
    				left: 0;
    			}
    			.box .slider img{
    				vertical-align: top;
    			}
    			.box .slider ul li{
    				float: left;
    			}
    			.box .scroll_nav{
    				list-style: none;
    				position: absolute;
    				right: 20px;
    				bottom: 10px;
    			}
    			.box .scroll_nav li{
    				float: left;
    				 20px;
    				height: 20px;
    				background-color: #000;
    				color: #fff;
    				text-align: center;
    				font-size: 12px;
    				font-family: "微软雅黑";
    				line-height: 20px;
    				cursor: pointer;
    				border-radius: 50%;
    				margin-right: 5px;
    			}
    			.box .scroll_nav li.current{
    				background-color: #356acb;
    			}
    			.box .arr{
    				 40px;
    				height: 50px;
    				font-size: 35px;
    				font-family: "黑体";
    				line-height: 50px;
    				background-color: rgba(0,0,0,0.3); /*这种方式能让背景透明而文本不收影响*/
    				color: #fff;
    				text-align: center;
    				position: absolute;
    				top: 125px;
    				font-weight: bold;
    				display: none; 
    				cursor: pointer;
    				/* opacity: 0.1; opacity属性会让盒子半透明,与此同时它也会让黑子内部的文本半透明*/
    			}
    			.box .arr_prev{
    				left: 5px;
    			}
    			.box .arr_next{
    				right: 5px;
    			}
            </style>
            
        </head>
        <body>
        	<div class="box" id="scroll">
        		<div class="slider" id="sl">
        			<ul id="sl_ul">
        				<li><img src="imgs/1.jpg" alt=""></li>
        				<li><img src="imgs/2.jpg" alt=""></li>
        				<li><img src="imgs/3.jpg" alt=""></li>
        				<li><img src="imgs/4.jpg" alt=""></li>
        				<li><img src="imgs/5.jpg" alt=""></li>
        			</ul>
        		</div>
        		<ul class="scroll_nav" id="sc_nav">
        			
        		</ul>
        		<span class="arr arr_prev" id="prev">></span>
    
        		<span class="arr arr_next" id="next">></span>
        	</div>
        </body>
    </html>
    

    javascript代码部分如下所示:

    function $(id){
                    return document.getElementById(id);
                }
                //1、实现左右箭头的显示与隐藏
                sName = '';window.onload = function(){
                    $('scroll').onmouseover = function(){
                        var arrs = $('scroll').getElementsByClassName('arr');
                        for (var i = 0; i < arrs.length; i++) {
                            arrs[i].style.display = 'block';
                        }
                    }
                    $('scroll').onmouseout = function(){
                        var arrs = $('scroll').getElementsByClassName('arr');
                        for (var i = 0; i < arrs.length; i++) {
                            arrs[i].style.display = 'none';
                        }
                    }
                    //2、实现轮播导航条
                    //2.2动态生成导航条内容
                    var imgCount = $('sl_ul').getElementsByTagName('li').length;
                    //2.2
                    for (var i = 0; i < imgCount; i++) {
                        var li = document.createElement('li');
                        li.innerHTML = i+1;
                        if(i == 0){
                            li.className = "current";
                        }
                        li.setAttribute('index',i);
                    
                        li.onclick = function(){
                            var lis = $('sc_nav').getElementsByTagName('li');
                            for (var i = 0; i < lis.length; i++) {
                                lis[i].clas
                            }
                    
                            this.className = 'current';
                            var index = parseInt(this.getAttribute('index'));
                            target = index * -800;
                        }
                        $('sc_nav').appendChild(li);
                    }
                    // 
                    var leader = 0;
                    var target = 0;
                    setInterval(function(){
                        leader = leader + (target-leader)/10;
                        $('sl_ul').style.left = leader + 'px';
                    }, 10)
                    // 实现左右箭头点击
                    $('next').onclick = function(){
                        if(target > -3200){
                            target -= 800;
                        }else{
                            target = 0;
                        }
                        setCurrent();
                    }
                    $('prev').onclick = function(){
                        if(target<0){
                            target += 800;
                        }
                        setCurrent();
    
                    }
                    // 导航度对选中的LI,与左右箭头切换图片后,相照应
                    function setCurrent(){
                        var index = Math.abs(target/800);
                        var lis = $('sc_nav').getElementsByTagName('li');
                        for (var i = 0; i < lis.length; i++) {
                            lis[i].className = '';
                        }
                        lis[index].className = 'current';
                    }
                }
                // 2.3.1点击导航项,做动画效果
                    // 2.3排他思想完成点击导航项的样式
    
    
  • 相关阅读:
    【Python应用:基于PyQt5文本识别】调用百度AI对一张或多张图片、文件夹中的图片和屏幕区域截图进行识别(PDF转Word 小意思)
    【Ubuntu搭建Django编程环境】:创建python虚拟开发环境和配置pip国内镜像源
    23种设计模式上篇
    荷兰国旗问题
    文件复制多份
    mybatis批量更新
    数组小和
    常见排序算法
    福尔摩斯的约会
    小明上学
  • 原文地址:https://www.cnblogs.com/hxz0618/p/12098474.html
Copyright © 2011-2022 走看看