前端 - 那些你不知道的炫酷导航交互效果_个人文章 - SegmentFault 思否
基于上次发布的 那些你不知道的炫酷按钮交互效果 反馈比较好,后续将继续收集那些炫酷的交互效果,希望可以给你的项目添砖加瓦,更上一层楼。那些你不知道的炫酷交互效果系列:那些你不知道的炫酷按钮交互效果那些
顺晟科技
2022-09-13 13:11:19
283
效果截图:

HTML代码:
<div id="container">
<img src="images/photo01.jpg" alt="">
<img src="images/photo02.jpg" alt="">
<img src="images/photo03.jpg" alt="">
<img src="images/photo04.jpg" alt="">
</div>
CSS样式:
*{
margin: 0; padding: 0;
}
#container{
margin: 30px auto; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; height: 420px; overflow: hidden;
font-size: 0; position: relative;
}
#container img{
display: block;width: 420px; height: 420px; position: absolute; left: 0; top: 0; border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
-webkit-transition: all 1s;
-moz-transition: all 1s;
-ms-transition: all 1s;
-o-transition: all 1s;
}
JS代码:
window.onload=function(){
//获取图片容器
var oBox=document.getElementById(\'container\');
//获取图片
var aImgs=document.getElementsByTagName(\'img\');
//获取单张图片宽度
var oImgWidth=aImgs[0].offsetWidth;
//定义显露宽度
var oInitWidth=160;
//设置图片容器宽度
oBox.style.width=oImgWidth + oInitWidth*(aImgs.length-1)+\'px\';
//初始化图片位置
function initImgPos(){
for(var i = 1; i < aImgs.length; i++){ //由于第一张图片不需要设置,i从1开始
aImgs[i].style.left=oImgWidth + oInitWidth*(i-1) + \'px\';
}
}
//初始化执行一次
initImgPos()
//定义鼠标滑过每个图片应移动的距离
var translate=oImgWidth - oInitWidth;
//鼠标滑动效果
for (var i = 0; i < aImgs.length; i++) {
// 使用立即执行函数,获得不同i的值
(function(i){
aImgs[i].onmouseover=function(){
// 复位
initImgPos();
//重新计算位置
for(var j = 1; j <= i; j++){
aImgs[j].style.left=parseInt(aImgs[j].style.left,10) - translate + \'px\';
}
}
})(i)
}
}
笔记来源:慕课网:DOM探索之基础详解篇
31
2022-10
22
2022-10
19
2022-10
19
2022-10
19
2022-10
19
2022-10