zoukankan      html  css  js  c++  java
  • JS之左右焦点图

    需求:鼠标放上去显示按钮,鼠标移开隐藏按钮;

            点击左边按钮图片向右移动,点击右边按钮图片向左移动

    步骤:1.获取数据源和相关元素

             2.绑定事件

                   鼠标放上去显示,鼠标移开隐藏

            3.书写驱动程序

                 点击左侧按钮图片向右移动,利用计数器模拟index值

                 点击右侧按钮图片向左移动,利用计数器模拟index值

    代码示例:

               

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
        <title>滑动焦点图</title>
        <style type="text/css">
        *{
            padding: 0;
            margin:0;
        }
        .box{
             490px;
            height: 170px;
            padding: 2px;
            border:1px solid #ccc;
            margin:200px auto;
        }
        .inner ul{
            list-style:none;
             500%;
            position: absolute;
            left: 0px;
        }
        .inner{
             490px;
            height: 170px;
            overflow: hidden;
            position: relative;
        }
        li{
            float: left;
        }
        .square {
            display: none;
        }
    
        .square span{
         40px;
        height: 40px;
        background: #000;
        color: #fff;
        cursor: pointer;
        position: absolute;
        top: 40%;
        font: 900 35px/40px "黑体";
        font-weight: bold;
        text-align: center;
        opacity: 0.3;
    }
        .square .right{
            right: 5px;
            left: auto;
        }
        </style>
    </head>
    <body>
    <div class="box" id="box">
    <div class="inner" id="inner">
        <ul id="ul">
        <li><img src="../images/01.jpg"></li>
        <li><img src="../images/02.jpg"></li>
        <li><img src="../images/03.jpg"></li>
        <li><img src="../images/04.jpg"></li>
        <li><img src="../images/05.jpg"></li>
        </ul>
    <div class="square" id="square">
    <span class="left"><</span>
    <span class="right">></span>
    </div><!-- square结束 -->
    </div><!-- inner结束 -->
    </div><!-- box结束 -->
    <script type="text/javascript">
    //获取数据源和相关元素
    var box = document.getElementById("box");
    var ul = document.getElementById("ul");
    var inner = document.getElementById("inner");
    var imgWidth = inner.offsetWidth;
    var boxLeftRight = box.children[0].children[1];
    var btnArr = boxLeftRight.children;
    //第一步,先显示和隐藏左右盒子
    box.onmouseover = function(){
        boxLeftRight.style.display = "block";
    }
    box.onmouseout = function(){
        boxLeftRight.style.display = "none";
    }
    //点击右侧按钮向左移动图片,并用计数器模拟index值
    var index = 0;
    btnArr[1].onclick = function(){
        index++;
        //要限制index值最大不能超过ul.children.length-1,最小不能小于0
        if (index>ul.children.length-1) {
            index = ul.children.length-1;
        }
        animate(ul,-index*imgWidth);
    
    }
    //点击左侧按钮向右移动图片,并用计数器模拟index值
    btnArr[0].onclick = function(){
        index--;
        if (index<0) {index=0;}
        animate(ul,-index*imgWidth);
    
    }
    //动画效果函数(元素,目标值)
    function animate(ele,target){
    //用定时器先清定时器 clearInterval(ele.timer);
    //移动的步长
    var speed = target>ele.offsetLeft?10:-10;
    //设置定时器 ele.timer
    =setInterval(function(){ var val = target - ele.offsetLeft; ele.style.left = ele.offsetLeft+speed+"px";
    //如果要停止盒子,就要清除定时器
    if(Math.abs(val)<=Math.abs(speed)){ ele.style.left = target+"px"; clearInterval(ele.timer); } },10); } </script> </body> </html>

            

  • 相关阅读:
    Java基础知识学习10-常用的API-01
    Java基础知识学习09-final、static关键字、匿名对象、内部类、修饰符、代码块
    Java基础知识学习08-构造方法
    前端网页学习01
    Java基础知识学习07-抽象类、接口、多态
    Java基础知识学习06-封装、继承
    Java基础知识学习05-类与对象
    Java基础知识学习04-自定义类、ArrayList集合
    Java基础知识学习03-数组
    1.9 向线程传递参数
  • 原文地址:https://www.cnblogs.com/creazybeauty/p/8116435.html
Copyright © 2011-2022 走看看