本文实例为大家分享了移动端轮播图效果展示的具体代码,供大家参考,具体内容如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="reset.css" rel="external nofollow" >
<style>
html,body{
width:100%;
overflow-x:hidden;
}
html{
font-size:100px;
}
.banner{
position:relative;
height:3rem;
overflow:hidden;
}
.banner .wrapper{
position:absolute;
top:0;
left:-100%;
height:100%;
}
.banner .wrapper .slide{
float:left;
height:100%;
background:#eee;
}
.banner .wrapper .slide img{
display:none;
width:100%;
height:100%;
}
.tip{
position:absolute;
left:0;
bottom:.1rem;
width:100%;
height:.16rem;
text-align:center;
}
.tip li{
display:inline-block;
margin:0 .03rem;
width:.16rem;
height:.16rem;
background:rgba(0,0,0,0.2);
border-radius:50%;
vertical-align:top;
}
.tip li.bg{
background:#007aff;
}
</style>
</head>
<body>
<section class='banner'>
<div class='wrapper'>
<!--实现无缝滚动:把第一张放末尾 最后一张放开头-->
<div class='slide'><img data-src="img/banner5.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner1.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner2.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner3.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner4.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner5.jpg" alt=""></div>
<div class='slide'><img data-src="img/banner1.jpg" alt=""></div>
</div>
<ul class='tip'>
<li class='bg'></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</section>
<script charset='utf-8' src='zepto.min.js'></script>
<script charset='utf-8'>
//REM
~function(){
document.documentElement.style.fontSize = document.documentElement.clientWidth/640*100 + 'px';
}()
//页面中如果自己使用了TOUCH MOVE等原生事件,需要把浏览器的默认行为阻止掉
$(document).on('touchmove touchstart touchend',function(ev){
ev.preventDefault();
})
//BANNER
var bannerRender = (function(){
var winW = document.documentElement.clientWidth,
maxL = 0,
minL = 0;
var $banner = $('.banner'),
$wrapper = $banner.children('.wrapper'),
$slideList = $wrapper.children('.slide'),
$imgList = $wrapper.find('img');
var step = 1,
count = 0,
followTimer = null;
//public fn
function isSwipe(strX,strY,endX,endY){
return Math.abs(endX - strX)>30 || Math.abs(endY - strY) > 30)
}
function swipeDir(strX,strY,endX,endY){
return Math.abs(endX - strX)>=Math.abs(endY - strY)?(endX - strX>0?'right':'left'):(endY - strY>0?'down':'up');
}
//touch start
function dragStart(ev){
var point = ev.touches[0];
$wrapper.attr({
strL:parseFloat($wrapper.css('left')),
strX:point.clientX,
strY:point.clientY,
isMove:false,
dir:null,
changeX:null
})
}
//touch move
function dragIng(ev){
var point = ev.touches[0];
var endX = point.clientX,
endY = point.clientY,
strX = parseFloat($wrapper.attr('strX')),
strY = parseFloat($wrapper.attr('strY')),
strL = parseFloat($wrapper.attr('strL')),
changeX = endX - strX;
//计算出是否滑动以及滑动的方向:只有是左右滑动才进行处理
var isMove = isSwipe(strX,strY,endX,endY),
dir = swipeDir(strX,strY,endX,endY);
if(isMove && /(left|right)/i.test(dir)){
$wrapper.attr({
isMove:true,
dir:dir,
changeX:changeX
});
var curL = strL+changeX;
curL = curL>maxL?maxL:(curL<minL?minL:curL);
$wrapper[0].style.webkitTransitionDuration = '0s';
$wrapper.css('left',curL);
}
}
//touch end
function dragEnd(){
var isMove = $wrapper.attr('isMove'),
dir = $wrapper.attr('dir'),
changeX = parseFloat($wrapper.attr('changeX'));
if(isMove && /(left|right)/i.test(dir)){
if(Math.abs(changeX)>=winW/2){
if(dir==='left'){
step++;
}else{
step--;
}
}
}
$wrapper[0].style.webkitTransitionDuration = '.2s';
$wrapper.css('left',-step*winW);
lazyImg();
//动画运动过程中,我们监听一个定时器:动画运动完成判断当前是否运动到边界,如果运动到达了边界,我们让其立马回到自己的真实位置
window.clearTimeout(followTimer)
followTimer = window.setTimeout(function(){
if(step===0){
$wrapper[0].style.webkitTransitionDuration = '0s';
$wrapper.css('left',-(count-2)*winW);
step = count-2;
lazyImg();
}
if(step===count-1){
$wrapper[0].style.webkitTransitionDuration = '0s';
$wrapper.css('left',-winW);
step = 1;
lazyImg();
}
window.clearTimeout(followTimer)
},200)
}
//图片延迟加载,让当前的活动块及相邻的两个活动块进行加载
function lazyImg(){
var $cur = $slideList.eq(step),
$tar = $cur.add($cur.prev()).add($cur.next());
$tar.each(function(index,item){
var $img = $(item).children('img');
if($img.attr('isLoad')==='true'){
//ATTR存储或者获取的属性值都是一个字符串,如果当前的图片已经加载过了,我们就不需要重新的加载了
return;
}
var oImg = new Image;
oImg.src = $img.attr('data-src');
oImg.onload = function(){
$img.attr({
src:this.src,
isLoad:true
}).css('display','block')
oImg = null;
}
})
}
return{
init:function(){
//init css style
count = $slideList.length;
minL = -($slideList.length-1)*winW;
$wrapper.css('width',$slideList.length*winW);
$slideList.css('width',winW);
//lazy img
lazyImg();
$banner.on('touchstart',dragStart).on('touchmove',dragIng).on('touchend',dragEnd)
}
}
})()
bannerRender.init();
</script>
</body>
</html>
边界判断逻辑可参照下图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 移动端
# 轮播图
# js实现移动端轮播图滑动切换
# javascript实现移动端轮播图
# 原生js实现移动端Touch轮播图的方法步骤
# js实现移动端轮播图
# JS实现点击拉拽轮播图pc端移动端适配
# js原生实现移动端手指滑动轮播图效果的示例
# 利用纯js + transition动画实现移动端web轮播图详解
# 支持移动端原生js轮播图
# JS仿京东移动端手指拨动切换轮播图效果
# 基于javascript实现移动端轮播图效果
# 加载
# 自己的
# 都是
# 过了
# 就不
# 大家分享
# 第一张
# 让其
# 具体内容
# 大家多多
# 计算出
# 过程中
# 使用了
# tip
# eee
# img
# display
# align
# center
# background
相关文章:
如何快速搭建高效简练网站?
建站之星安装路径如何正确选择及配置?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
ppt制作免费网站有哪些,ppt模板免费下载网站?
如何通过主机屋免费建站教程十分钟搭建网站?
如何通过建站之星自助学习解决操作问题?
如何配置IIS站点权限与局域网访问?
建站之星后台管理:高效配置与模板优化提升用户体验
制作网站公司那家好,网络公司是做什么的?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
建站之星如何一键生成手机站?
贸易公司网站制作流程,出口贸易网站设计怎么做?
如何快速启动建站代理加盟业务?
深入理解Android中的xmlns:tools属性
音乐网站服务器如何优化API响应速度?
C#如何序列化对象为XML XmlSerializer用法
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何高效搭建专业期货交易平台网站?
如何快速生成专业多端适配建站电话?
如何用PHP快速搭建高效网站?分步指南
制作网站的基本流程,设计网站的软件是什么?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
招贴海报怎么做,什么是海报招贴?
如何在香港免费服务器上快速搭建网站?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
如何配置FTP站点权限与安全设置?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
建站之星×万网:智能建站系统+自助建站平台一键生成
建站之星如何实现五合一智能建站与营销推广?
想学网站制作怎么学,建立一个网站要花费多少?
如何确保FTP站点访问权限与数据传输安全?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
建站之星如何修改网站生成路径?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星后台密码如何安全设置与找回?
内网网站制作软件,内网的网站如何发布到外网?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
企业微网站怎么做,公司网站和公众号有什么区别?
,制作一个手机app网站要多少钱?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
做企业网站制作流程,企业网站制作基本流程有哪些?
建站之星如何快速生成多端适配网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。