原生javascript移動端滑動banner效果
更新時間:2017年03月10日 08:38:02 作者:Coding_vesion
這篇文章主要為大家詳細(xì)介紹了原生javascript移動端滑動banner效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了移動端滑動banner效果的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta content="telephone=yes" name="format-detection" />
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta name="x5-fullscreen" content="true">
<meta name="apple-touch-fullscreen" content="yes">
<title>Document</title>
<style>
*{margin:0;padding:0;}
.box{
height:200px;
width:100%;
overflow: hidden;
}
.movebox{
height:200px;
width:9000px;
padding:0;
position:relative;
left:0;
}
.movebox li{
height:200px;
float:left;
list-style:none;
font-size:30px;
color:#fff;
}
</style>
<script>
window.onload = function(){
var moveX, //手指滑動距離
endX, //手指停止滑動時X軸坐標(biāo)
cout = 0, //滑動計數(shù)器
moveDir; //滑動方向
var movebox = document.querySelector(".movebox"); //滑動對象
var Li = movebox.querySelectorAll("li"); //滑動對象item
var width = parseInt(window.getComputedStyle(movebox.parentNode).width); //滑動對象item的寬度
movebox.style.width = (width*4) + "px"; //設(shè)置滑動盒子width
for(var i = 0; i < Li.length; i++){
Li[i].style.width = width + "px"; //設(shè)置滑動item的width,適應(yīng)屏幕寬度
}
//觸摸開始
function boxTouchStart(e){
var touch = e.touches[0]; //獲取觸摸對象
startX = touch.pageX; //獲取觸摸坐標(biāo)
endX = parseInt(movebox.style.webkitTransform.replace("translateX(", "")); //獲取每次觸摸時滑動對象X軸的偏移值
}
function boxTouchMove(e){
var touch = e.touches[0];
moveX = touch.pageX - startX; //手指水平方向移動的距離
if(cout == 0 && moveX > 0){ //剛開始第一次向左滑動時
return false;
}
if(cout == 3 && moveX < 0){ //滑動到最后繼續(xù)向右滑動時
return false;
}
movebox.style.webkitTransform = "translateX(" + (endX + moveX) + "px)"; //手指滑動時滑動對象隨之滑動
}
function boxTouchEnd(e){
moveDir = moveX < 0 ? true : false; //滑動方向大于0表示向左滑動,小于0表示向右滑動
//手指向左滑動
if(moveDir){
if(cout<3){
movebox.style.webkitTransform = "translateX(" + (endX-width) + "px)";
cout++;
}
//手指向右滑動
}else{
//滑動到初始狀態(tài)時返回false
if(cout == 0){
return false;
}else{
movebox.style.webkitTransform = "translateX(" + (endX+width) + "px)";
cout--;
}
}
}
//滑動對象事件綁定
movebox.addEventListener("touchstart", boxTouchStart, false);
movebox.addEventListener("touchmove", boxTouchMove, false);
movebox.addEventListener("touchend", boxTouchEnd, false);
}
</script>
</head>
<body style="position:absolute;width:100%;overflow:hidden;">
<div class="box">
<ul class="movebox" style="transition-duration:0.2s;transform: translateX(-0px);">
<li style="background:red;">1</li>
<li style="background:yellow">2</li>
<li style="background:blue">3</li>
<li style="background:green">4</li>
</ul>
</div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- js實(shí)現(xiàn)移動端tab切換時下劃線滑動效果
- Swiper.js實(shí)現(xiàn)移動端元素左右滑動
- js原生實(shí)現(xiàn)移動端手指滑動輪播圖效果的示例
- JS實(shí)現(xiàn)移動端整屏滑動的實(shí)例代碼
- js實(shí)現(xiàn)移動端導(dǎo)航點(diǎn)擊自動滑動效果
- 基于JS實(shí)現(xiàn)移動端向左滑動出現(xiàn)刪除按鈕功能
- 基于slideout.js實(shí)現(xiàn)移動端側(cè)邊欄滑動特效
- 淺談移動端之js touch事件 手勢滑動事件
- JavaScript實(shí)現(xiàn)移動端滑動選擇日期功能
- JS實(shí)現(xiàn)移動端上下滑動一次一屏
相關(guān)文章
詳解如何在微信小程序開發(fā)中正確的使用vant ui組件
這篇文章主要介紹了詳解如何在微信小程序開發(fā)中正確的使用vant ui組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法,涉及javascript數(shù)組遍歷與排序的相關(guān)技巧,需要的朋友可以參考下2015-06-06
使用pdf-lib.js實(shí)現(xiàn)拼接兩個pdf文件并添加水印
這篇文章主要為大家詳細(xì)介紹了如何使用pdf-lib.js實(shí)現(xiàn)拼接兩個pdf文件并添加水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-11-11
原生js封裝二級城市下拉列表的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄鷍s封裝二級城市下拉列表的實(shí)現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06

