美文网首页
京东移动端初体验

京东移动端初体验

作者: lily1314 | 来源:发表于2016-12-03 10:07 被阅读0次

    header栏的一个特效

    思路

    • 在滚动事件中 写逻辑 修改 通栏的透明度

    • 需要设置滚动的范围 滚动的距离 跟轮播图的高度一致即可

      1. 获取变量 通栏 轮播图的高度

      2. 为window绑定事件 onscroll

      3. 在事件中,获取 滚动的距离 / 轮播图的高度 获取 比例值
        当比例值 超过1时 就没有必要设置了
        if (比例值>1) {
        比例值=1;
        }

    function header(){
        // 获取 通栏dom元素
        var headerDom = document.querySelector('header');
    
        // 获取 轮播图的高度 jq中 才是 height()
        var bannerHeight = document.querySelector('.jd_banner').offsetHeight;
    
        // 定义 最大的 透明度
        var maxNum = 0.9;
    
        // 定义 最大的比例值
        var maxPercent = 1.0;
    
        // 绑定事件
        window.onscroll = function(){
            // 获取 滚动的距离
            // console.log(document.body.scrollTop);
    
            // 计算比例
            var percent = document.body.scrollTop/bannerHeight; 
    
            console.log(percent);
    
            // 修改 计算出来的比例值
            if (percent>maxPercent) {
                percent = maxPercent;
            }
    
            // 这里设置即可
            headerDom.style.backgroundColor = 'rgba(201,21,35,'+percent*maxNum+')';
        }
    }
    

    倒计时特效

    • 定义变量 记录总时间

    • 使用interval 进行倒计时到interval设置的 函数中 进行倒计时操作
      总时间--; 3600s
      秒 转化为 时 分 秒
      设置到dom元素中

      1.定义变量 总时间 获取 需要修改的span

      2.开启定时器

      3.定时器的内部逻辑
      时间--;
      格式化秒 为 时分秒
      设置给对应的 dom元素

    function countTime(){
        // 总时间 秒
        var totalNum = 5*60*60;
        // var totalNum = 3;
    
        // 获取 修改的span
        var timeSpans = document.querySelectorAll('.downTime span');
    
        // 封装 设置事件的 函数
        var setTime = function(){
            // 格式化为 时分秒  3690
            var hour = Math.floor(totalNum / 3600);
    
            var minute = Math.floor(totalNum % 3600 / 60);
    
            var second = totalNum % 60;
    
            // 设置给 对应的span
            // 设置时 假设 有11小时
            timeSpans[0].innerHTML = Math.floor(hour / 10); //获取 十位
            timeSpans[1].innerHTML = hour % 10; //获取 个位
    
            // 设置 分 56分钟
            timeSpans[3].innerHTML = Math.floor(minute / 10);//获取 十位
            timeSpans[4].innerHTML = minute % 10; //获取 个位
    
            // 设置 秒 45分钟
            timeSpans[6].innerHTML = Math.floor(second / 10);//获取 十位
            timeSpans[7].innerHTML = second % 10; //获取 个位
        }
    
        // 设置 默认显示的时间
        setTime();
    
    
        // 开启倒计时
        var timeID = setInterval(function(){
    
            // 如果 时间变为0 那么 关闭定时器 同时提示用户
            if (totalNum<=0) {
                // 关闭定时器
                clearInterval(timeID);
    
                // 提示一下
                alert('你来晚啦 ,哈哈哈哈哈 没有优惠了');
                // 统一的弹框 建议 自定义dom元素 display:block
    
                // 跳出执行
                return true;
            }
    
            // 递减时间 秒
            totalNum--;
    
            // 调用 抽取的 设置事件函数
            setTime();
    
        },1000);
    }
    
    

    晚上要好好学习,天天向上

    今天学习了轮播图,倒计时,通栏的特效

    function banner(){
       //思路:
       //会用到一个计时器,每回走一张下面的索引也要跟着走
       //定义 变量记录 是哪一张轮播图
    
        //定时器 interval 间隔调用
        //  索引++;
        //  修改 轮播图的位置               
        //  口口口口口口口口口口口
        //先定义一下第一张的索引值,因为总共十张图片,然后最左面有一张,所以当前这张的索引值为一
        var index=1;
        //获取屏幕的宽度
        var width=document.body.offsetWidth;
        //获取到ul这个对象
        var ulObj=document.querySelector('.banner_imgs');
        //获取到那些li标签
        //var lis=document.querySelectorAll('.banner_imgs li');
         //下面的索引的部分,同步一下
              //获取下面索引部分的ul
        var ulIndex=document.querySelector('.banner_index');
        var liIndex=document.querySelectorAll('.banner_index li');
        //定时器
        var setId=setInterval(function(){
              //让一秒走一张图片
              //让它的index的值改一下
              index++;
              //如果index大于9的时候
              if(index>=9){
                index=1;
              }
    
              ulObj.style.transform='translateX(-'+width*index+'px)';
             for(var i=0;i<liIndex.length;i++){
                //把所有的那个索引的背景颜色都去掉
                var classlist=liIndex[i].classList;
                classlist.remove('current');
             }
             liIndex[index-1].classList.add('current');
    
        },2000);
    
        
    }
    

    插入图片

    005xcCKCjw1f4yomjo6vkj30qo0zg7aq.jpg

    相关文章

      网友评论

          本文标题:京东移动端初体验

          本文链接:https://www.haomeiwen.com/subject/irpuuttx.html