webkit 内核手机,slider 上下滑动弹性切换效果(不采用任何插件)

<!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;

                //当前的页数值与滑动距离数字累加,从而产生弹性效果
                addNum += this.offsetY;

                //判断正数还是负数来进行弹性的方向
                if ( this.offsetY > 0 ){
                    addNum = -num * winHeight + winHeight/4;
                }else{
                    addNum = -num * winHeight - winHeight/4;
                }

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

        //结束
        var sliderEnd = function(){

            //负数为往上,正数为往下
            if ( this.offsetY > winHeight / 5 ) {
                // console.log(‘向上‘);
                if ( num > 0 ) {
                    num--;
                }else{
                    nun = 0;
                }
            }else if ( this.offsetY < -winHeight / 5 ) {
                // 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-14 00:37:51

webkit 内核手机,slider 上下滑动弹性切换效果(不采用任何插件)的相关文章

视差响应动画滑动图片切换效果

这是一款非常强大的内容切换插件,它基于jQuery,它充分响应,支持移动设备,支持手机触摸,键盘翻页:它内置幻灯.视频播放计时器,它拥有各种模式:自定义,自动响应,全屏:它有多种动画效果.3d效果...总之你想到的效果它都做到了,它的名字叫Slider Revolution. HTML Slider Revolution是一款基于jQuery的插件,使用它时需要先载入jQuery库文件,以及Slider Revolution依赖的css和js文件. <script src="js/jque

jquery带三种切换效果的焦点图插件-luara.js插件

1.简介 luara.js 焦点图插件,用于设置焦点幻灯片的插件,实例中列出了三种最常用的效果,渐隐.上滑.左滑,可以设置切换的时间间隔. 2.插件调用代码段 <script> $(function(){ <!--调用Luara示例--> $(".example1").luara({ width:"500", height:"334", interval:5000, selected:"seleted"

webkit内核浏览器 手机端 滚动顿卡 处理方法 修改

今天遇到一个问题.因为之前也遇到过,解决了,但是一下子想不起来如何解决 所以,今天就把这个记录一下. 问题是这样: body下的一个容器 section 高度为100%  宽度为100% 即该 父类是和屏幕同宽同高的.但是 section 下的 子标签的 高度超过父标签 此时在手机端的滚动  有可能会滚动顿卡.这其实因为设备是没有启用弹性滚动,或者不支持弹性滚动. 测试一下 1 <!DOCTYPE html> 2 <html lang="en"> 3 <h

八大Webkit内核浏览器

列举出时下最流行的Webkit内核浏览器,所以我们并不会做出评测和对比.PS:本文列举的浏览器有一部分为IE+Webkit双核浏览器,如果您对其他IE内核浏览器很感兴趣<抛弃数据!用体验和感觉告诉你什么才是最好用的浏览器!>一文可能会对你有所帮助.尖端技术的Webkit内核WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用).同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称

手机端图片滑动切换效果

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

从零开始学习H5应用(1)——V1.0版,简单页面滑动切换效果

可曾看见过那些在微信上转疯了的H5神作?好生羡慕啊,那么从今天开始,我将从零开始学习制作H5应用,看看那么漂亮的页面是怎么样一步一步形成的. 准备 在学习制作H5应用之前,必须具备以下基础前提: HTML,CSS,JS基本编写与制作能力 了解了H5中的各种新特性 有一定的逻辑思维能力,可以将复杂任务通过分析简化为若干原子事件来处理 看得懂汉语,以及教程中出现的前端术语. 任务 这是本系列的第一篇,任务非常简单, 制作一个具有3张页面,每次只显示其中一张页面,当手指向上滑动设备屏幕时当前页面消失下

一款常用的漂亮的JS图片滑动切换效果

<HTML> <HEAD> <TITLE>一款常用的漂亮的JS图片滑动切换效果丨石家庄展柜制作|</TITLE> <style> BODY { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PAD

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

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

探索WebKit内核(一)------ 菜鸟起步

为什么搞WebKit 如今研究WebKit的人越来越多,俺不能免俗,也增加当中.WebKit的火爆也是得益于浏览器和WebOS的混战,随着Palm WebOS, Chrome OS, Firefox OS和Ubuntu Mobile相继公布,WebOS逐渐成为Android和IOS之外的第三世界,而WebKit也随之从浏览器内核晋升为Mobile OS的内核,除了IE和Firefox之外,市面上叫得上名字的都是基于WebKit发展起来,Chrome, Safari, Opera, 360....