天猫轮播图

天猫轮播图

??在做网页的时候,轮播图很常见,今天我们就做一种轮播图,通过轮播图来熟悉JavaScript的操作。
样式如下所示:

执行代码如下所示:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            .box{
                width: 800px;
                height: 300px;
                position: relative;
                overflow: hidden;
                margin: 100px auto;
            }
            .box .slider{
                width: 100%;
                height: 100%;
            }
            .box .slider ul{
                width: 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;
                width: 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{
                width: 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排他思想完成点击导航项的样式

原文地址:https://www.cnblogs.com/hxz0618/p/12098474.html

时间: 2024-11-09 05:39:23

天猫轮播图的相关文章

jQuery----无缝轮播图

1.效果 2.html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" type="text/css" href="css/iconfont.css"> <link rel="stylesh

Android自己定义控件之轮播图控件

背景 近期要做一个轮播图的效果.网上看了几篇文章.基本上都能找到实现,效果还挺不错,可是在写的时候感觉每次都要单独去又一次在Activity里写一堆代码.于是自己封装了一下.这里仅仅是做了下封装成一个控件,不必每次反复写代码了. 效果图 实现分析 轮播图的功能就是实现左右滑动的广告.图片信息展示,那我们就用ViewPager来实现,由于考虑到用户体验,我们还须要在以下加一个指示器来标示滑动到了第几张轮播图.指示器我们能够用一个线性布局来依据要展示的轮播图设置显示的View,我们要做这种一个控件没

CSS-用伪类制作小箭头(轮播图的左右切换btn)

先上学习地址:http://www.htmleaf.com/Demo/201610234136.html 作者对轮播图左右按钮的处理方法一改往常,不是简单地用btn.prev+btn.next的图片代替,而是用纯css制作. 第一个是left按钮,即prev: .vmc-arrow-left:after { content: "\e079"; } 第二个是right按钮的,也就是next下一张的按钮: .vmc-arrow-right:after { content: "\e

Jquery 实现轮播图

jq 轮播图 function banner_show(){ var left_btn = $("#banner_tag_left"); //获取左侧单击按钮 var right_btn = $("#banner_tag_right"); //获取右侧点击按钮 var Owidth = $("#banner ul li").width(); //获取单个图片宽度 var Oindex = $("#banner ul li");

js实现轮播图效果(附源码)--原生js的应用

1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="Author" content="奇客艺术"> <meta name="keyword" content="关键字"> <meta name=

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

swiper结合ajax的轮播图

Swiper 是什么:是纯JavaScript打造的滑动特效插件,能够实现触屏焦点图.触屏tab切换.触屏多图切换等常用效果. 开源.免费.稳定.应用广泛. 这就是swiper简单的介绍,由于是结合ajax使用,所以要先定义json文件 json: 定义好json文件后,在HTML页面中简单布局,如下图: *swiper-container代表swiper的容器 <div class="swiper-container"> *swiper-wrapper 代表触控的对象 &

基于js的自适应、多样式轮播图插件(兼容IE8+、FF、chrome等主流浏览器)

插件github地址:https://github.com/pomelott/slider-plug_in 使用方式: slider plug-in 左右滑动的自适应.多样式全能插件.多次调用时只需传入最外层盒子ID即可. 1.根据html中的Dom结构引入图片. 2.引入css和js文件 3.调用pomeloSlider.doslide(obj) sliderwidth:轮播图宽度,单位为像素,默认自适应全屏. outer:最外层盒子ID,默认为"outer" time:轮播的时间间

关于轮播图,我知道的不多。

关于轮播图,我确实是知道的不多,想来想去就只是那么的多,. 不过我还是打算将自己知道的写出来,首先轮播图的布局,我先来上一张照片 简单的布局,视窗中我能见到的只有一张照片和左右两个按钮还有下面两个按钮,视窗的大小就是单张图片的大小,几个按钮用position定位的方式将其定位到想要的位置了,那么四副图片的直接父元素的宽度是多少呢,那就是四副图片的宽度相加的总和,一定的让图片display:block;这样才能去掉图片默认距离,. 在给图片float:left,在让最外层的盒子超出部分隐藏就可以了