javascript重点的焦点图

       焦点图,思路我感觉,JS在网页中的运用,只要有清晰的思维就可以。第一步需要做什么,第二步不要做什么。在我们做一些消过毒时候,运用了那些JS的知识,需要用到的事件是什么,执行的步骤,是什么。 

     这个效果的目的是让我们的鼠标放上去的时候背后的图片跟着滑动,按钮的颜色跟着变化。我们首先分析,按钮的颜色变化需要用到排他思想使用排他思想先遍历所有的元素,对于获取的元素执行onmouseover事件,然后在每执行每个元素的时候,遍历  所有的li清除样式,只是保留自己的样式。然后对于所有的元素。

    JS中实现效果的流程,一、获取元素,思考一下获取元素的方法,要记得通过父元素、子元素获取想要的元素的方法。二、操作元素。元素就是整个网页中的节点,这些节点的特点是,有的有样式,有的有事件。三、具体分析对于元素样式的操作有哪些方法。有行内样式.style 外部样式   四,事件的操作 这是JS中难点,事件三步骤:获取元素、绑定事件、事件执行的过程。

最难的是过程,过程最重要的是解决问题的思路,顺序。写小说有起承转合的顺序。做程序也一样。

for(var i=0;i<lis.length;i++){

lis[i].index = i;  // 每个li 的索引号,索引号有什么作用。
lis[i].onmouseover = function() {
            for(var j=0;j<lis.length;j++)
            {
                lis[j].className = "";
            }
            this.className = "current";
            target = -this.index * 490; // 目标位置 就是用当前的索引号乘以  一个盒子的宽度
        }
}

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{margin: 0; padding: 0;}
        ul,ol{list-style:none;}
        img {
            display: block;  /* 清除图片底册 3像素缝隙*/
        }
        .slider {
            width: 490px;
            height: 170px;
            border:1px solid #ccc;
            margin: 100px auto;
            padding:5px;
            position: relative;
        }
        .inner {
            width: 100%;
            height: 100%;
            background-color: pink;
            position: relative;
            /*overflow: hidden*/
        }
        .inner ul {
            width: 1000%;
            position: absolute;
            top: 0;
            left: 0;
        }
        .inner ul li {
            float: left;
        }
        .slider ol {
            position: absolute;
            left: 50%;
            margin-left: -80px;
            bottom: 10px;


        }
        .slider ol li{
            float: left;
            width: 18px;
            height: 18px;
            background-color: #fff;
            margin-right: 10px;
            text-align: center;
            line-height: 18px;
            cursor: pointer;
        }
        .slider ol li.current {
            background-color: orange;
        }
    </style>
</head>
<body>
<div class="slider" id="jd">
    <div class="inner">
        <ul>
            <li><a href="#"><img src="images/01.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/02.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/03.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/04.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/05.jpg" alt=""/></a></li>
        </ul>
    </div>
    <ol id="ol">
        <li class="current">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>
</body>
</html>
<script>
var jd=document.getElementById("jd");
var ul=jd.children[0].children[0];
var ullis=jd.children[0].children[0];
var target=0,leader=0;
var ol=jd.children[1];
var lis=ol.children;
for(var i=0;i<lis.length;i++){
lis[i].index = i;  // 每个li 的索引号
lis[i].onmouseover = function() {
            for(var j=0;j<lis.length;j++)
            {
                lis[j].className = "";
            }
            this.className = "current";
            target = -this.index * 490; // 目标位置 就是用当前的索引号乘以 一个盒子的宽度
        }


}


setInterval(function() {
        leader = leader + (target - leader ) / 10;
        ul.style.left = leader + "px";
    },30);




</script>

猜你喜欢

转载自blog.csdn.net/qq_41882787/article/details/80040632