分析一下function initSlidey() { var slideyProgress = document.querySelector(".slidey-progress"); var slideyContent = document.querySelectorAll("#slidey-content>li"); var slideyList = document.querySelectorAll(".slidey-list li"); var slideyIndex = 0; var interval = null; for (let i = 0; i < slideyList.length; i++) { // 取页面中【div#slidey-content】的电影信息 var src = slideyContent[i].querySelector("img").src; var title = slideyContent[i].querySelector(".title").innerHTML; var description = slideyContent[i].querySelector(".description").innerHTML; slideyList[i].querySelector(".slidey-list-img>div").style.backgroundImage = "url(" + src + ")"; slideyList[i].querySelector(".slidey-list-title").innerHTML = title; slideyList[i].querySelector(".slidey-list-description").innerHTML = description; // 为幻灯片列表添加点击事件 slideyList[i].addEventListener("click", function (event) { slideyIndex = i; loopSlidey(); //更改 document.querySelector(".slidey-main").style.backgroundImage = this.querySelector(".slidey-list-img>div").style.backgroundImage; document.querySelector(".slidey-overlay-title").innerHTML = this.querySelector(".slidey-list-title").innerHTML; document.querySelector(".slidey-overlay-description").innerHTML = this.querySelector(".slidey-list-description").innerHTML; //对点击的li加类active,原有类active的移除 if (!hasClass(this, "active")) { addClass(this, "active"); for (let sl of slideyList) { if (this === sl) { continue; } if (hasClass(sl, 'active')) { removeClass(sl, 'active'); break; } } } stopPropagation(event); }, false); } // 点击幻灯片前一个的点击事件 document.querySelector(".slidey-ctrls-pre").addEventListener("click", function () { if (slideyIndex <= 0) { slideyIndex = slideyList.length; } slideyList[--slideyIndex].click(); }, false); // 点击幻灯片后一个的点击事件 document.querySelector(".slidey-ctrls-next").addEventListener("click", function () { if (slideyIndex >= slideyList.length - 1) { slideyIndex = -1; } slideyList[++slideyIndex].click(); }, false); //幻灯片循环播放 function loopSlidey() { clearInterval(interval); // 进度条当前的宽度 let cw = 0; // 进度条宽度 let progressBarWidth = 910; // 进度条持续时间,单位ms let progressActiveTime = 5000; // setInterval的timeout参数,循环间隔时间 let timeSpace = 5; // step = width / (second * 250), 250为interval的timeout为1时的值。 let step = progressBarWidth / (progressActiveTime / timeSpace); interval = setInterval(function () { if ((cw += step) < progressBarWidth) { slideyProgress.style.width = cw + "px"; } else { if (slideyIndex >= slideyList.length - 1) { slideyIndex = -1; } slideyList[++slideyIndex].click(); } }, timeSpace); } // 点击第一个初始化 slideyList[0].click(); }
时间: 2023-05-20 20:03:16 浏览: 49
分析一下这段代码:
这段代码定义了一个名为 initSlidey 的函数。在函数内部,使用了两个变量 slideyProgress 和 slideyContent。
slideyProgress 是通过 document.querySelector(".slidey-progress") 获取到的一个 DOM 元素,它代表了一个进度条。
slideyContent 是通过 document.querySelectorAll(".slidey-content") 获取到的一组 DOM 元素,它们代表了轮播图中的每一张图片。
接下来的代码中,使用了一个 for 循环遍历 slideyContent 数组,为每张图片添加了一个事件监听器。当图片被点击时,会调用一个名为 slidey 的函数,该函数会将当前图片的索引作为参数传入。
最后,函数返回了一个对象,该对象包含了一些公共方法,可以用来控制轮播图的播放。
相关问题
如何将numvalue2拿到函数外部来访问 var minus = document.querySelector(".numm #minus"); minus.onclick = function(){ alert("期待好事发生"); var numvalue2=document.getElementById("numm-value").value; numvalue2 = parseInt(numvalue2); numvalue2=numvalue2-1; if (numvalue2<0){ numvalue2=0; } document.getElementById("numm-value").value = numvalue2; var numpr = document.getElementById("numpri"); numpr.innerHTML=(34.99*numvalue2); } var minus = document.querySelector(".numm #plus"); minus.onclick = function(){ var numvalue2=document.getElementById("numm-value").value; numvalue2 = parseInt(numvalue2); numvalue2=numvalue2+1; if (numvalue2<0){ numvalue2=0; } document.getElementById("numm-value").value = numvalue2; var numpr = document.getElementById("numpri"); numpr.innerHTML=(34.99*numvalue2); }
可以将 `numvalue2` 定义在函数外部,并使用全局变量的方式来访问。例如:
```
var numvalue2 = 0;
var minus = document.querySelector(".numm #minus");
minus.onclick = function(){
alert("期待好事发生");
numvalue2 = parseInt(document.getElementById("numm-value").value);
numvalue2 = numvalue2 - 1;
if (numvalue2 < 0) {
numvalue2 = 0;
}
document.getElementById("numm-value").value = numvalue2;
var numpr = document.getElementById("numpri");
numpr.innerHTML = (34.99 * numvalue2);
}
var plus = document.querySelector(".numm #plus");
plus.onclick = function(){
numvalue2 = parseInt(document.getElementById("numm-value").value);
numvalue2 = numvalue2 + 1;
if (numvalue2 < 0) {
numvalue2 = 0;
}
document.getElementById("numm-value").value = numvalue2;
var numpr = document.getElementById("numpri");
numpr.innerHTML = (34.99 * numvalue2);
}
```
这样定义之后,就可以在函数外部访问 `numvalue2` 的值了。
如何将此 段代码中的numvalue4拿出来用,并且在函数中numvalue4随着点击按钮变化,函数外的numvalu4也跟着变化var minus = document.querySelector(".nummbe #minus"); minus.onclick = function(){ var numvalue4=document.getElementById("nummbe-value").value; numvalue4 = parseInt(numvalue4); numvalue4=numvalue4-1; if (numvalue4<0){ numvalue4=0; } document.getElementById("nummbe-value").value = numvalue4; var numpr = document.getElementById("numprice"); numpr.innerHTML=(34.99*numvalue4); } var minus = document.querySelector(".nummbe #plus"); minus.onclick = function(){ var numvalue4=document.getElementById("nummbe-value").value; numvalue4 = parseInt(numvalue4); numvalue4=numvalue4+1; document.getElementById("nummbe-value").value = numvalue4; var numpr = document.getElementById("numprice"); numpr.innerHTML=(34.99*numvalue4); }
可以将numvalue4定义为全局变量,这样就可以在函数内外都使用了。代码如下:
```
var numvalue4 = 0; // 定义全局变量
var minus = document.querySelector(".nummbe #minus");
minus.onclick = function(){
numvalue4 = parseInt(document.getElementById("nummbe-value").value);
numvalue4=numvalue4-1;
if (numvalue4<0){
numvalue4=0;
}
document.getElementById("nummbe-value").value = numvalue4;
var numpr = document.getElementById("numprice");
numpr.innerHTML=(34.99*numvalue4);
}
var plus = document.querySelector(".nummbe #plus"); // 修复变量名错误
plus.onclick = function(){
numvalue4 = parseInt(document.getElementById("nummbe-value").value);
numvalue4=numvalue4+1;
document.getElementById("nummbe-value").value = numvalue4;
var numpr = document.getElementById("numprice");
numpr.innerHTML=(34.99*numvalue4);
}
```
这样就可以在函数内部使用numvalue4,并且当点击按钮时,numvalue4会随之变化。同时,函数外的numvalue4也会跟着变化,因为它是全局变量。