WEB手机端 上下切换效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <title>slider</title>
<style>
*{
    padding:0;
    margin:0;
}
html ,
body ,
#slider {
    height:100%;
    overflow: hidden;
}
.s-list{
    height:400%;
    -webkit-transition:.3s;
    -webkit-transform:translate3d(0px,0px,0px);
}
.s-list>li{
    height:25%;
}
.s-list>li:nth-child(1){background:#00be9c;}
.s-list>li:nth-child(2){background:#50d78a;}
.s-list>li:nth-child(3){background:#2c97df;}
.s-list>li:nth-child(4){background:#9c56b8;}
</style>
</head>
<body>

<section id="slider">
    <ul class="s-list">
        <li>第一屏</li>
        <li>第二屏</li>
        <li>第三屏</li>
        <li>第四屏</li>
    </ul>
</section>

<script>

    function slider( id ){
        //获取所要的 DOM 元素
        var oSlider = document.getElementById(‘slider‘);
        var oUl = oSlider.getElementsByTagName(‘ul‘)[0];
        var aLi = oUl.getElementsByTagName(‘li‘);
        var winHeight = document.body.clientHeight;
        var startY , offsetY , num = 0 , addNum = 0 ;

        //开始
        var sliderStart = function( event ){
            this.startY = event.touches[0].pageY;
        }

        //移动
        var sliderMove = function( event ){
            //单手操作才执行
            if ( event.targetTouches.length == 1 ) {
                event.preventDefault();                    
                //获取移动的距离
                this.offsetY = event.targetTouches[0].pageY - this.startY ;

                var addNum = this.offsetY + parseInt(window.getComputedStyle( oUl  , null)[‘-webkit-transform‘].replace(/[a-z()]/g , ‘‘).split(‘,‘)[5]);

                oUl.style[‘-webkit-transform‘] = ‘translate3d(0px,‘+ addNum +‘px,0px)‘;
            }
        }

        //结束
        var sliderEnd = function(){

            //负数为往上,正数为往下
            if ( this.offsetY > 0 ) {
                // console.log(‘向上‘);
                if ( num > 0 ) {
                    num--;
                }else{
                    nun = 0;
                }
            }else if ( this.offsetY < 0 ) {
                // console.log(‘向下‘);
                if ( num < aLi.length - 1 ) {
                    num++;
                }else{
                    num = aLi.length -1;
                }
            }

            //真实的切换
            oUl.style[‘-webkit-transform‘] = ‘translate3d(0px,‘+ -num*winHeight +‘px,0px)‘;

            //让累加数值为当前页面切换到的数值
            addNum = -num*winHeight;
        }

        //让最顶层的 DIV 处理事件,然而 ul 根据,最顶层的 DIV 操作来移动
        oSlider.addEventListener(‘touchstart‘ , sliderStart);
        oSlider.addEventListener(‘touchmove‘ , sliderMove);
        oSlider.addEventListener(‘touchend‘ , sliderEnd);
    }

    slider(‘slider‘);

</script>
</body>
</html>
时间: 2024-10-15 11:16:10

WEB手机端 上下切换效果的相关文章

WEB手机端界面绝对定位分辨率扩大导致错乱问题和块级元素旋转角度CSS

首先头部添加 意识是等比例缩放 做的时候发现了一些问题: 之前设置body背景图片为no-repeat 宽度100% 定于父级容器为position:relative: 然后定义你做要的div position: absolute: 但是发现web手机端分辨率变大,定位根据图片所在的位置错乱了. 比如iPhone5的分辨率为320*568 三星是s4的分辨率为340*640 如果不想定位错乱 , 可以设置背景图片 background-size:宽度和高度:不超过分辨率的宽度即可, 比如苹果 的

Tp5 判断电脑手机端 自动切换

//判断是否是手机function is_mobile(){ $user_agent = $_SERVER['HTTP_USER_AGENT'];    $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong",        "airness","alcatel"

移动web中的幻灯片切换效果

百度或者谷歌下类似的插件有很多,原理都差不多,关键适合自己的项目,如果移动端要引入jquery这么大的插件,只能呵呵了.... 下面是工作中针对webkit内核的浏览器写的,html很简单: <section id="banner" class="banner z-c" > <ul class="z-c-w"> <li class="z-c-i"></li> </ul>

手机端3d旋转木马效果+保存图片到本地

<!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1"> <meta n

手机端的轮播效果

手机端轮播效果,貌似以后能用得上吧 首先是结构html <section class="page pageshow"> <section id="tabPic"> <ul id="picList"> <li href="javascript:;"><img src="image/1.jpg" ></li> <li href=&qu

用jQuery.touchSwipe插件实现手机端场景滑动切换效果

使用jQuery的touchSwipe插件监听触摸滑动事件,结合css3实现手机端场景滑动切换效果.最好在手机端测试代码,也可以在PC端用鼠标点击模拟滑动. 1.html代码: <div class="container"> <div class="page page0 page_current"> <h1>你好,我是0号屏幕,第一屏,鼠标单击向下/向上拖动</h1> </div> <div clas

jQuery手机端触摸卡片切换效果

效果:http://hovertree.com/code/run/jquery/a1gr3gm9.html 可以用手机查看效果. 代码如下: 1 <!doctype html> 2 <html lang="zh"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=ed

手机端图片滑动切换效果

最近公司要求开发wap版本页面,碰到了个图片滑动切换效果,折腾了半天,自己封装了一个比较通用的小控件,在此分享一下. 大概功能:可以自定义是否自动切换,支持单手滑动图片进行切换,支持左右滑动切换.循环切换等等,具体可以拿demo代码自己本地试试,注意只支持手机端哦 大概思路:通过touchstart.touchmove.touchend 三个事件加上css3的3d变化效果配合,实现滑动切换图片, 开发是基于Zepto框架,当然也支持其他任何一款手机端框架,只需将代码中的美元符号$换为指定框架操作

web端和手机端测试有什么不同

面试中经常被问到web端测试和手机端测试有什么相同点和区别呢?现在总结一下这个问题,如有不对敬请指正 web端和手机端测试有什么区别 1.相同点 不管是web测试还是手机App测试,都离不开测试的相关知识,测试用例设计方法和测试原理基本是相通的. 2.不同点 相对于web测试,手机APP测试,除了要考虑软件的功能.性能.系统稳定性测试外,还要考虑手机本身所具有的特性.具体表现在以下几个方面: ①中断测试 a.电话中断:来电接听.来电挂断.呼叫挂断/接听 b.短信中断:接收短信.查看短信.复制短信