小米官网给我的感觉是大气、干净。很多特效的加入让人觉得耳目一新,big满满。 看到他们首页的轮播图实现挺有意思,于是自己模仿着写了一个。
大致的感觉出来了,贴个图先:
通过前端神器chrom的F12观察小米官网的html代码,不难看到他们使用5个div包裹图片并使用了定位通过z-index来控制div层级,通过控制每个div的opacity属性和display属性进行元素的显示、隐藏。
截图如下(红框内的opacity属性):
好的,实现的手段知道了,那么页面布局先搞出来。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Mking_js_</title> <script type="text/javascript" src="/UploadFiles/2021-04-02/moveopacity_1.js">结构已经有了下面就是添加js让它动起来。
页面中的js:
window.onload = function(){ var oLeft = document.getElementById("left"); var oRight = document.getElementById("right"); var oWarp = document.getElementById("imgWarp"); var aImg = oWarp.getElementsByTagName("img"); var aEm = document.getElementsByTagName("em"); var i = 5; btn = true; oLeft.onclick = function(){ clearInterval(autoTimer); if(btn){ btn=false; fnAutoLeft(); } }; function fnAutoLeft(){ var a = i % 5; i-=1; var b = i % 5; startOpacMove(aImg[a],0,aImg[b],100); setStyle(b); } oRight.onclick = function(){ if(btn){ //单位时间内只能触发一次元素的显示隐藏 clearInterval(autoTimer); btn=false; fnAutoRight(); } }; var count =0; function fnAutoRight(){ var a = i % 5; i+=1; var b = i % 5; startOpacMove(aImg[a],0,aImg[b],100); setStyle(b); if(i==10){ i=5; for(var j = 0;j<aImg.length;j++){ if(j==0){ aImg[0].style.cssText ="opacity: 1; z-index: 5; display: block;"; } else{ aImg[j].style.cssText ="opacity: 0; z-index: 0; display: none;"; } } } } var autoTimer = setInterval(fnAutoRight,5000); function setStyle(a){ for(var i=0;i<aEm.length;i++){ aEm[i].className=""; } aEm[a].className="active"; } }运动的js:
function startOpacMove(obj1,tag1,obj2,tag2) { var iCur1 = 0; var iCur2 = 0; var iTimer = null; var iSpeed1 = -2; var iSpeed2 = 2; clearInterval(iTimer); iTimer = setInterval(function(){ var iBtn = true; iCur1 = css(obj1,'opacity')*100; iCur2 = css(obj2,'opacity')*100; iCur1 = Math.floor(iCur1); iCur2 = Math.floor(iCur2); if(iCur1 != tag1 && iCur2 != tag2){ iBtn = false; obj1.style.opacity = (iCur1+iSpeed1)/100; // console.log("隐藏元素时候的透明度值:"+(iCur1+iSpeed1)/100); obj1.style.filter = 'alpha(opacity='+(iCur1+iSpeed1)+')'; obj1.style.zIndex = 0; obj2.style.opacity = (iCur2+iSpeed2)/100; obj2.style.filter = 'alpha(opacity='+(iCur2+iSpeed2)+')'; obj2.style.zIndex = 5; obj2.style.display ="block"; } if(iBtn){ clearInterval(iTimer); obj1.style.display ="none"; obj1.style.opacity =0; obj2.style.opacity =1; btn = true; } },10); } function css(obj,attr){ if(obj.currentStyle){ //当前浏览器下存在currentStyle属性 return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[attr]; } }看下js代码是如何让图画动起来的
思考一个问题:画面是如何向左向右切换的,完成这一步的必要条件是什么。假设当前显示的第一张图,向右切换时隐藏第一张图显示第二张图,那么需要做的就是让索引为0的图片隐藏,索引为1的图片显示,再次点击向右按钮索引为1的图片隐藏索引为2的图片显示,后面的情况依次类推,需要获取的索引为0,1,2,3,4。最后注意下右侧的边界问题就OK了。
好的,贴代码:
var i = 5; function fnAutoRight(){ var a = i % 5; i+=1; var b = i % 5; }用变量 i 对5取余,得到的值是0-4的数,刚好是我们想要的结果,对应的a、b也刚好是想要隐藏、显示的图片的索引。再调用写好的运动js、下方显示当前图片位置函数,那么向右这一块就OK了。
图片向左移动,向下我们需要隐藏显示的图片索引是什么,假设当前是第一张图片点击向左的时候,隐藏的图片索引为0,显示的图片索引为4,再次点击隐藏的索引为4显示的为3。显而易见,我们需要的索引为0、4、3、2、1。
代码如下:
var i=5; function fnAutoLeft(){ var a = i % 5; i-=1; var b = i % 5; }同样是i=5,然后对5取余,得到的a为当前需要隐藏的图片索引,让i减一之后再对5取余得到的是需要显示的图片索引。这样向左的问题也就解决了。
在最后部分,写个setInterval定时播放的函数,然后设置一个间隔调用的时间,就完成了自动播放的功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
js,图片轮播
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 刘德华《劲歌集》24K金碟港版[WAV+CUE][1.2G]
- Faker五冠王什么意思 世界赛五冠王Faker选手介绍
- faker塞拉斯s14决赛什么出装 faker塞拉斯s14决赛出装介绍
- LOLtoc9魔法口令在哪可以找到 2024云顶之弈toc观赛魔法口令兑换码
- 黑鸭子2008《影视经典·珍藏版》试音碟[WAV+CUE]
- 碧娜《温柔吻语2》[WAV+CUE]
- Stravinsky-Symphonies,Volume1-OrquestaSinfonicadeGalicia,DimaSlobodeniouk(2024)[24-
- 外媒评Switch2:向下兼容是关键 但挑战依然存在
- 任天堂提醒:宠物的尿或唾液或会让NS故障 把它放好!
- 《博德3》再创新高 Steam掌机总游玩时长近2000年
- 张玮伽《想你的夜DSD》东升 [WAV+CUE][1G]
- 姚璎格《 粤 24KGOLD》正版低速原抓[WAV+CUE][1G]
- 杨千嬅《如果大家都拥有海》寰亚 [WAV+CUE][998M]
- 孟庭苇.1994-1990-1994钻石精选集2CD(2022环球XRCD限量版)【上华】【WAV+CUE】
- 群星.1998-华纳好情歌精选17首【华纳】【WAV+CUE】