为了账号安全,请及时绑定邮箱和手机立即绑定

我的为什么不一样

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title>    <style>        * {            padding: 0;            margin: 0;        }        body {            padding: 50px 0;            background-color: #FFF;            font-size: 14px;            font-family: 'Avenir Next';            color: #555;            /*字体抗锯齿*/            -webkit-font-smoothing: antialiased;        }        .slider .main .main-i,        .slider .ctrl,        .slider .main,        .slider {            width: 100%;            height: 400px;            position: relative;        }        /* 幻灯片区域样式 */        .slider .main {            overflow: hidden;        }        .slider .main .main-i img {            width: 100%;            position: absolute;            left: 0;            top: 50%;            z-index: 1;        }        .slider .main .main-i .caption {            position: absolute;            right: 50%;            top: 30%;            z-index: 9;        }        .slider .main .main-i .caption h2 {            font-size: 40px;            line-height: 50px;            color: #B5B5B5;            text-align: right;        }        .slider .main .main-i .caption h3 {            font-size: 70px;            line-height: 70px;            color: #000000;            text-align: right;            font-family: 'Open Sans Condensed';        }        /* 控制按钮区域样式 */        .slider .ctrl {            width: 100%;            height: 13px;            line-height: 13px;            text-align: center;            position: absolute;            left: 0;            bottom: -13px;        }        .slider .ctrl .ctrl-i {            display: inline-block;            width: 150px;            height: 13px;            background-color: #666;            box-shadow: 0 1px 1px rgba(0, 0, 0, .3);            position: relative;            margin-left: 1px;        }        .slider .ctrl .ctrl-i img {            width: 100%;            position: absolute;            left: 0;            bottom: 50px;            z-index: 1;            opacity: 0;            /* 动画 */            -webkit-transition: all .2s;        }        /* hover 到控制按钮的样式 */        .slider .ctrl .ctrl-i:hover {            background-color: #f0f0f0;        }        .slider .ctrl .ctrl-i:hover img {            bottom: 13px;            /* 倒影效果 */            -webkit-box-reflect: below 0px -webkit-gradient(linear,                    left top,                    left bottom,                    from(transparent),                    color-stop(50%, transparent),                    to(rgba(255, 255, 255, .3)));            opacity: 1;        }        /* active 当前展现的状态 */        .slider .ctrl .ctrl-i_active:hover,        .slider .ctrl .ctrl-i_active {            background-color: #000;        }        .slider .ctrl .ctrl-i_active:hover img {            opacity: 0;        }        /* 幻灯片切换的样式 */        .slider .main .main-i {            opacity: 0;            position: absolute;            right: 50%;            top: 0;            -webkit-transition: all .5s;        }        .slider .main .main-i h2 {            margin-right: 45px;        }        .slider .main .main-i h3 {            margin-right: -45px;        }        .slider .main .main-i h2,        .slider .main .main-i h3 {            opacity: 0;            -webkit-transition: all 1s .8s;        }        .slider .main .main-i_active {            opacity: 1;            right: 0;        }        .slider .main .main-i_active h2,        .slider .main .main-i_active h3 {            margin-right: 0;            opacity: 1;        }        .slider .main .main-i .caption {            margin-right: 13%;        }    </style></head><body>    <div class="slider">        <!-- 0.修改 VIEW->Template(关键字替换) -->        <div class="main" id="template_main">            <div class="main-i" id="main_{{index}}">                <div class="caption">                    <h2>{{h2}}</h2>                    <h3>{{h3}}</h3>                </div>                <img src="image/{{index}}.jpg" class="picture" />            </div>        </div>        <div class="ctrl" id="template_ctrl">            <a class="ctrl-i" id="ctrl_{{index}}" href="javascript:switchSlider({{index}});">                <img src="image/{{index}}.jpg" />            </a>        </div>    </div></body><script>    // 1.数据定义    var data = [{            img: '1',            h2: 'Creative',            h3: 'DUET'        },        {            img: 2,            h2: 'Friendly',            h3: 'DEVIL'        },        {            img: 3,            h2: 'Tranquilent',            h3: 'COMPATRIOT'        },        {            img: 4,            h2: 'Insecure',            h3: 'HUSSLER'        },        {            img: 5,            h2: 'Loving',            h3: 'REBEL'        },        {            img: 6,            h2: 'Passionate',            h3: 'SEEKER'        },        {            img: 7,            h2: 'Crazy',            h3: 'FRIEND'        }    ];    // 2.通用函数    var g = function (id) {        if (id.substr(0, 1) == '.') {            return document.getElementsByClassName(id.substr(1));        }        return document.getElementById(id);    }    // 3.添加幻灯片的操作(所有幻灯片&对应的按钮)    function addSliders() {        // 3.1获取模板        // 3.1.1清除开始和结尾空白字符 --幻灯片        var tpl_main = g('template_main').innerHTML            .replace(/^\s*/, '')            .replace(/\s*$/, '');        // 3.1.2清除开始和结尾空白字符 --幻灯片控制按钮        var tpl_ctrl = g('template_ctrl').innerHTML            .replace(/^\s*/, '')            .replace(/\s*$/, '');        // 3.2定义最终输出的HTML的变量        var out_main = [];        var out_ctrl = [];        // 3.3遍历所有数据,构建最终输出的HTML        // 3.3.1把幻灯片中的img,h2,h3替换成{{index}},{{h2}},{{h3}}中的内容        for (i in data) {            var _html_main = tpl_main                .replace(/{{index}}/g, data[i].img)                .replace(/{{h2}}/g, data[i].h2)                .replace(/{{h3}}/g, data[i].h3);            // 3.3.2把幻灯片控制按钮中的img替换成{{index}}中的内容            var _html_ctrl = tpl_ctrl                .replace(/{{index}}/g, data[i].img);            out_main.push(_html_main);            out_ctrl.push(_html_ctrl);        }        // 3.4 把HTML回写到对应的DOM里面        g('template_main').innerHTML = out_main.join('');        g('template_ctrl').innerHTML = out_ctrl.join('');    }    // 5.幻灯片切换    function switchSlider(n) {        // 5.1获得要展现的幻灯片&控制按钮DOM        var main = g('main_' + n);        var ctrl = g('ctrl_' + n);        // 5.2获得所有的幻灯片以及控制按钮        var clear_main = g('.main-i');        var clear_ctrl = g('.ctrl-i');        // 5.3清除他们的active样式        for (i = 0; i < clear_ctrl.length; i++) {            clear_main[i].className = clear_main[i].className                .replace('main-i_active', '');            clear_ctrl[i].className = clear_ctrl[i].className                .replace('main-i_active', '');        }        // 5.4为当前控制按钮和幻灯片附加样式        main.className += 'main-i_active';        ctrl.className += 'ctrl-i_active';    }    // 6. 动态调整图片的margin-top以使其垂直居中    function movePictures() {        var pictures = g('.picture');        for (i = 0; i < pictures.length; i++) {            pictures[i].style.marginTop = (-1 * pictures[i].clientHeight / 2) + 'px'        }    }    // 4.定义何时处理幻灯片输出    window.onload = function () {        addSliders();        switchSlider(2);        setTimeout(function () {            movePictures();        }, 100)    }</script></html>


正在回答

举报

0/150
提交
取消

我的为什么不一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信