自定义滑动轮播

简单的滑动轮播没有下标和自动切换功能
因为项目用的是jq所以就把方法直接挂载到jq上了
废话不多说直接上code
html部分:

<div id="teachList">
				<div class="_swiper">
					<div class="_swiper_item">
						<img  class="teachImage" src="http://www.maladeg.com/img/bg_shouquan.png"/>
					</div>
					<div class="_swiper_item">
						<img  class="teachImage" src="http://www.maladeg.com/img/indexBg.png"/>
					</div>
					<div class="_swiper_item">
						<img  class="teachImage" src="http://www.maladeg.com/img/bg_shouquan.png"/>
					</div>
					<div class="_swiper_item">
						<img  class="teachImage" src="http://www.maladeg.com/img/indexBg.png"/>
					</div>
				</div>
			</div>
#works{
	width: 100%;
	overflow: hidden;
	margin-bottom: 20px;
}
._swiper{
	display: flex;
	transform:translate(0px);
	transition: all 0.5s ease;
}
._swiper_item{
	position: relative;
}
._swiper_item img{
	width:150px;
	height:80px;
}

简单封装 js部分:

$.extend({
    touchs: function (id) {
    let dom = $("#"+id);
    let countNum = dom.children("._swiper").children("._swiper_item").length-1;
    let itemWidth = dom.find("._swiper_item").outerWidth(true);
    let Width = Math.floor(itemWidth*countNum);
    let startX=0,
        moveEndX=0,
        cssTrx = 0;
    $(dom).on("touchstart",function (e) {
        startX = e.originalEvent.changedTouches[0].pageX;//手指X轴起始位置
    })
    $(dom).on("touchend",function (e) {
        moveEndX = e.originalEvent.changedTouches[0].pageX;//手指X轴离开位置
        if (moveEndX - startX > -50 ) { //X大于0表示左滑,大于100的原因是为了让页面不会那么敏感
            //左滑操作
            cssTrx = itemWidth + Number(dom.find("._swiper").css("transform").split(',')[4]);
            if( Width >= cssTrx  && cssTrx < 0 ){
                dom.find("._swiper").css({
                    transform: `translateX(${cssTrx}px)`
                })
            }else{
                dom.find("._swiper").css({
                    transform: `translateX(0px)`
                })
            }
        }
        else if ( moveEndX - startX < 50 ) {//X小于0表示右滑,小于-100的原因同左滑
            //右滑操作
            cssTrx =  Number(dom.find("._swiper").css("transform").split(',')[4]) + -itemWidth;
            if(  Width >= Math.abs(cssTrx)){
                dom.find("._swiper").css({
                    transform: `translateX(${cssTrx}px)`
                })
            }else{
                dom.find("._swiper").css({
                    transform: `translateX(0px)`
                })
            }
        }
    })
}
});

页面使用方法:
在html中通过script标签引入上边的js文件

$.touchs("works");//直接写id就好不用加#号

**划重点,class="_swiper";class="_swiper_item" 标签的类名修改后请修改对应的js内容
**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值