实例介绍
【实例简介】JS编写的企业网站实战项目
【实例截图】
【核心代码】
.
└── 好例子网_index.html
0 directories, 1 file
window.onload = function () {
// 轮播图切换var cricle = document.querySelector(".cricle");
var banner_img = document.querySelector(".banner_img");
var allLi = banner_img.children;
var banner_wrap = document.querySelector(".banner_wrap ");
var bannerWidth = banner_wrap.offsetWidth;
var right_btn = document.querySelector(".right_btn");
var left_btn = document.querySelector(".left_btn");
var num = 0;
// console.log(bannerWidth);
changeCricle();
function changeCricle() {
//小圆圈的切换 自动获取小li的个数,并添加li在小cricle中 动态生成li
for (var i = 0; i < allLi.length - 1; i ) {
var li = document.createElement("li");
index = i;
cricle.appendChild(li);
cricle.children[0].classList.add("current");
li.setAttribute("index", index);
// 移出小白点、排他思想
li.addEventListener("click",function (e) {
for (var i = 0; i < cricle.children.length; i ){
cricle.children[i].classList.remove("current");
}
this.classList.add("current");
//点击小圆点切换图片 ,移动距离小圆圈的序号×.banner_wrap 的大小
// console.log( this.getAttribute("index"));
var movex = this.getAttribute("index") * bannerWidth;
// console.log(movex);
animate(banner_img, -movex)
})
}
}
// console.log(criclelength);
// 封装一个动画函数
function animate( obj,target,callback) {
clearInterval(obj.timer);
obj.timer = setInterval(function (params) {
var step = (target - obj.offsetLeft) / 10;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
if (obj.offsetLeft == target) {
clearInterval(obj.timer);
callback && callback();
} else {
obj.style.left = obj.offsetLeft step "px";
}
},15)
}
// 点击右侧按钮实现无缝切换
right_btn.addEventListener("click",function () {
if (num == allLi.length - 1) {
banner_img.style.left = 0 "px";
num = 0;
} else {
num ;
animate(banner_img, -num * bannerWidth);
for (var i = 0; i < cricle.children.length; i ){
cricle.children[i].classList.remove("current");
}
if (num == 4) {
cricle.children[0].classList.add("current");
} else {
cricle.children[num].classList.add("current");
}
}
// console.log(banner_img.style.left);
})
// 左侧
left_btn.addEventListener("click",function () {
if (num == 0) {
// console.log(allLi[allLi.length - 2].offsetLeft);
banner_img.style.left = -allLi[allLi.length - 2].offsetLeft "px";
num = 4;
//num==4
} else {
num--;
animate(banner_img, -num * bannerWidth);
for (var i = 0; i < cricle.children.length; i ) {
cricle.children[i].classList.remove("current");
}
if (num == 3) {
cricle.children[3].classList.add("current");
} else {
cricle.children[num].classList.add("current");
}
}
})
// 鼠标移动到。content_one上切换图片
var content_one_img = document.getElementsByClassName("content_one_img");
for (var i = 0; i < content_one_img.length; i ){
content_one_img[i].addEventListener("mouseover", function () {
var newsrc = this.getAttribute("src");
var num = parseInt(newsrc.slice(-5, -4));
this.setAttribute("src","img/design" (num 1) ".png")
})
content_one_img[i].addEventListener("mouseout", function () {
var newsrc = this.getAttribute("src");
var num = parseInt(newsrc.slice(-5, -4));
if (num == 0) {
num = parseInt(newsrc.slice(-6, -4));
console.log(num);
this.setAttribute("src", "img/design" (num - 1) ".png")
} else {
this.setAttribute("src", "img/design" (num - 1) ".png")
}
})
}
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论