ES6焦点图(已实现)

html:
<div id=focus>
	ul>li*n
</div>
ECMScript 6  构造器:当然你可以预先编译在浏览器环境运行
class Focus{
	constructor(obj,time){
		const li = document.querySelectorAll("#focus ul li");
		this.len = li.length;
        {
            let btn = "<div class='btn'>";
            let btn_r = "</div>";
            let button = ()=>{
                for(let i=0;i<this.len;i++){
                    btn+='<span></span>'
                }
                return btn+btn_r
            }
            obj.innerHTML+=button(this.len,btn)//创建按钮
        }
        this.focusTime = time;
        this.index = 0;
        this.aotuPLay(obj,this.index);
		let span = document.querySelectorAll(".btn span")
		for(let i=0;i<span.length;i++){
            span[i].addEventListener("mouseover",()=>{
                this.showPic(i,obj);
                clearInterval(this.timer);//清除定时器
                this.timer = null;//销毁内存
            })
            span[i].addEventListener("mouseleave",()=>this.aotuPLay(obj))
        }
	}
	showPic(i,obj){
        let nowLeft = -i * obj.clientWidth+'px'; //根据index值计算ul元素的left值'
        obj.getElementsByTagName("ul")[0].style.marginLeft = nowLeft;
        this.index=i;
    }
    aotuPLay(obj){
        this.timer = setInterval(
            ()=>{
                this.showPic(this.index,obj);
                ++this.index;
                this.index>=this.len?this.index=0:this.index;
            },this.focusTime
        )
    }
}
window.onload = function(){
 const focus = new Focus(document.querySelector("#focus"),4000); //容器 ,轮播时间
}
//至此焦点图得到实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值