在手机浏览器中,先window.scroll滚动到一定的位置,再用手滑动页面,页面会回顶部 5C

在手机浏览器中,先window.scroll滚动到一定的位置,再用手滑动页面,页面会回顶部,从顶部跟随手指移动

if(!!sessionStorage.getItem("scrollTop")){
window.scrollBy(0,sessionStorage.getItem("scrollTop"));
}

             childBox.addEventListener('touchstart', function (e) {

            lastY = startY = e.touches[0].clientY; //觸摸點相對瀏覽器的位置
            //console.log("currY" + currY)

            //起始時間和位置
            lastMoveStart = lastY;
            lastMoveTime = Date.now();
            stopInertiaMove = true;
        });
        childBox.addEventListener('touchmove', function (e) {

            e.preventDefault(); //防止打開連接
            moveY = e.touches[0].clientY;
            distanceY = moveY - startY;



            Com.removeTransition();
            if (distanceY <= 0) {

                Com.setTranslateY(currY + distanceY);

                //超過30時,顯示滑動信息
                if ((currY + distanceY) >= maxSwipe - 30) {
                    LeXinIntance.find(".LexinSlideDown").show();

                } else if ((currY + distanceY) <= minSwipe + 30) {
                    LeXinIntance.find(".LexinSlideUp").show();
                }

                if (!IsPc) {
                    var pare_h = LeXinIntance.height();
                    var wrap_h = $("body").height() - 50;
                    var CanScrollHeight = wrap_h - pare_h;
                    //matrix(1, 0, 0, 1, 0, -11) //獲取已經異動的高度



                    scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
                    //console.log("scrollTop" + scrollTop + "," + CanScrollHeight);
                    if (Number(scrollTop) >= (Math.abs(CanScrollHeight) - 30)) {

                        //LeXinIntance.find(".LexinSlideUp>span:nth-of-type(2)").text("laoding next page")
                        LeXinIntance.find(".LexinSlideUp").show();

                    } else if (scrollTop > 10) {
                        LeXinIntance.find(".LexinSlideDown").show();
                        //LeXinIntance.find(".LexinSlideDown>span:nth-of-type(2)").text("laoding prepage")

                    } else {

                        //LeXinIntance.find(".LexinSlideDown>span:nth-of-type(2)").text("Click or slide down Load prepage");
                        //LeXinIntance.find(".LexinSlideUp>span:nth-of-type(2)").text("Click or slide up Load next page");
                    }
                }
            }
            ismove = true;

            /**
             * 缓动代码
             */
            var nowTime = Date.now(); //滑動當前時間
            stopInertiaMove = true; //表示滑動過
            //滑動時間超過0.3秒重置起始時間和位置
            if (nowTime - lastMoveTime > 300) {
                lastMoveTime = nowTime;
                lastMoveStart = moveY;
            }

        });
        childBox.addEventListener('touchend', function (e) {
            //console.log("ismove" + ismove)
            if (ismove) {
                /*记录当前的定位   上一次当前的定位 + 这一次改变的定位*/
                currY = currY + distanceY;

                if (!IsPc) {

                    var pare_h = LeXinIntance.height();
                    var wrap_h = $("body").height() - 50;
                    var CanScrollHeight = wrap_h - pare_h;
                    scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
                    if (Number(scrollTop) >= (Math.abs(CanScrollHeight) - 30)) {
                        LeXinIntance.find(".LexinSlideUp").hide();
                        //LeXinIntance.find(".LexinSlideUp>span:nth-of-type(2)").text("Click or slide up Load next page");                        
                        //var comLi = LeXinIntance.find(".on").find("*").length;
                        SliderupLoad();
                        //if (comLi == LeXinIntance.find(".on").find("*").length) {                                                           
                        //    LeXinIntance.find(".LexinSlideUp>span:nth-of-type(2)").text("is bottom");
                    }

                    else {
                        //慣性滾動
                        var nowY = e.changedTouches[0].clientY;
                        var nowTime = Date.now();

                        var v = (nowY - lastMoveStart) / (nowTime - lastMoveTime); //最后一段时间手指划动速度
                        stopInertiaMove = false; //停止滑動                           
                        (function (v, startTime) {
                            var dir = v > 0 ? -1 : 1; //加速度方向 向下滑動v>0加速度dir<0,向上滑v<0加速度dir>0
                            var deceleration = dir * 0.002; //每次速度減少量
                            var duration = v / deceleration; // 速度消减至0所需时间
                            var dist = v * duration / 2; //最终移动多少 0~V的平均速度 移動duration長時間的距離
                            //console.log("v" + v);
                            //console.log("inertiaMove" + dir + "," + deceleration + "," + duration + "," + dist + "," + currY + "," + startTime);
                            Com.removeTransition(); //取消動畫效果,採用setTimeout取代
                            function inertiaMove() {
                                if (stopInertiaMove)
                                    return;
                                var nT = Date.now();
                                var t = nT - startTime;
                                var nowV = v + t * deceleration;
                                // 速度方向变化表示速度达到0了
                                if (v * nowV <= 0) {
                                    return;
                                }
                                var mY = (v + nowV) / 2 * t;
                                //console.log("t" + t + "," + currY + "," + CanScrollHeight + "," +v + "," + nowV + "," +mY);
                                //console.log("mY" + mY);
                                if (currY <= 0) {
                                    if (currY + mY > 0 && dir == -1) {
                                        //已到頂
                                        //console.log("已到頂");
                                        currY = 0;
                                        Com.setTranslateY(currY);

                                        return;
                                    } else if (currY + mY < CanScrollHeight && dir == 1) {
                                        //已到底 -200<-135
                                        //console.log("已到底" + CanScrollHeight);
                                        currY = CanScrollHeight;
                                        //Com.addTransition();
                                        Com.setTranslateY(CanScrollHeight);
                                        return;
                                    } else {
                                        currY = currY + mY;
                                        Com.setTranslateY(currY);
                                        setTimeout(inertiaMove, 10);
                                    }
                                }
                            }
                            inertiaMove();
                        })(v, nowTime);
                    }
                }

                /*重置所有的参数  不重置currY */
                startY = 0;
                moveY = 0;
                distanceY = 0;
                ismove = false;
            }

        });           


                    setTranslateY: function (y) {

            window.scrollTo(0, Math.abs(y));

        }

5个回答

手指按下的事件,应该作了相应处理吧, 你还是仔细看一看代码吧,没贴出来不好回答呢。

xxm0720
xxm0720 你是说touchstart的事件应该做处理
一年多之前 回复

把代码贴出来看看,分析分析。

是不是滑动模块那里的参数有问题呢

滑动参数是否出现问题

滑动参数有没有出现问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
滚动到顶部 html
javascript 的一个插件 scrollup 滚动到顶 $(function() { $.scrollUp({ scrollText: "Top", }); }); 321 321 3213 321 321
ScrollView滚动到顶部
相信各位都遇到过这种情况,那就是当ScrollView里面嵌套的控件存在listview 或者recyclerview时,会出现开局没有在顶部的情况。 原因分析: 1.在Activity计算窗口的高度时,是在listview没有填充数据时候就完成的,由于ScrollView嵌套listview时没有指定高度,所以ScrollView就会按照layout中定义的默认高度计算。 2.因为list...
tablebview滚动到顶部
网上都是这一类代码[tableview setContentOffset:CGPointMake(0,0) animated:NO]; 应该是我有加了navigationItem,这个方法会遮住第一个item,后来找到了这个方法 let section = self.query.numberOfSections() if(section > 0 ){ let row
滚动到顶部
//滚动到顶部 $('#scrTop').click(function(){     $('html,body').animate({'scrollTop':0},500); }); //显示隐藏top按钮 $(window).scroll(function(){     if($(window).scrollTop()>300){         $('#scrTop').fade
平滑滚动到顶部
添加类名 top // 平滑滚动到顶部 var scrollTopSmooth = function (position) { if (!window.requestAnimationFrame) { window.requestAnimationFrame = function (cb) { return s...
scrollview滚动到顶部
scrollview里面嵌套了一个listview,通过一个方法设置了listview的高度,界面显示是中间的listview位置 ,想显示出来的时候就是在最上面 mHandler.postDelayed(new Runnable() { @Override public void run() { mScrollView.scrollTo(0, 0); } }, 300);
JQuery 页面如何快速滚动到顶部?
JQuery 网页如何快速的滚动到顶部?现如今,页面元素不断丰富,就导致页面的纵深比较广,那么用户一旦阅读网页到了底部,就会产生一个快速滚动到顶部的需求,当然了,很多网页都这样实现了。
js 点击滚动到顶部
$('.backtotop').click(function(){ $('html, body').animate({scrollTop:0}, 'slow'); });
iOS 滚动到顶部~demo
     联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄                         QQ群:807236138  群称: iOS 技术交流学习群   一、概念    1.此方法很简单,有操作视图和方法,动画效果参考   2. 图片下面有   3.GIF 图请看简书:  http://www.jianshu.com/p/9b48b91c3dd6...
vue平滑滚动到顶部
vue平滑过渡到顶部
滚动到顶部的实现方法
简单实现了优雅的滚动到顶部。
ionic/angular 滚动到顶部
ionic/angular 滚动到顶部 $ionicScrollDelegate 封装指令go-top
ScrollView滚动到底部和顶部
ScrollView是Android提供的垂直滑动的组件,HorizontalScrollView与之对应是水平滑动的组件,内部只能包含一个根布局,否则会报错。 ScrollView中提供了fullScroll来滚动到的位置,有如下4个常用位置: ScrollView.FOCUS_DOWN;//底部 ScrollView.FOCUS_UP;//顶部 ScrollView.FOCUS_LEF
内容滚动到顶部,固定在顶部
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;无标题文档&amp;lt;/title&amp;gt; &amp;lt;style&amp;gt; body{ margin: 0px;
网页滚动到顶部,和 滚动到底部,分别怎么写?
rn网页滚动到顶部,和 滚动到底部,分别怎么写?rnrnrn支持FF IE7 IE 7 IE 8rnrnrnrnrn scroll(0, 10000); ??
iOS-OC-让tableview滚动到顶部 滚动到底部
[self.tableview setContentOffset:CGPointMake(0,0) animated:NO];
js 滚动到一定位置导航定位在页面最顶部
js 滚动到一定位置导航定位在页面最顶部 &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;js 滚动导航定位&amp;lt;/title&amp;gt; &amp;lt;
ios 内层滚动到顶部或者底部无法滑动问题
/** * 处理一像素 */ scrollFix() { // 滚动容器dom const elem = this._container if (!elem) { return } // 兼容第一次滑动 elem.scrollTop += 1 // 绑定事件 elem.addEventListener('sc
为什么在MVC用模板页嵌套的网页 弹出层时页面 ,页面会滚动到最上部?
为什么在MVC用模板页嵌套的网页 弹出层时页面 ,页面会滚动到最上部?rn我自己也得JS脚本弹出层和jQUERYui的弹出层都存在这个问题。请问如何解决?页面在滚动条的下部时,弹出层过程中页面会回到最上部。这样用户体验不好。
collectionView 滚动到制定位置
滚动到制定位置 self.collectionView.layoutIfNeeded()//这个必须先执行,否则没效果self.collectionView.scrollToItem(at: indexPath, at:.left, animated: true)
collectionview 滚动到指定的位置
答:调用此方法可滚动到组头 -(void) scrollToSectionHeader:(int)section { NSIndexPath *indexPath = [NSIndexPathindexPathForRow:0 inSection:section]; UICollectionViewLayoutAttributes *attribs = [self.c...
如何让滚动条滚动到距离顶部44px位置?
不能盖住头部nn```n n n 取消n 插入n 板式模块nn```nn
判断UITableView是否滚动到顶部
问题描述:使用`scrollToRowAtIndexPath:`将UITableView 滚动到顶部。然后对`scrollViewDidEndScrollingAnimation:`内的动画进行操作。在滚动之后,应该执行一项动作。rnrn出现的问题是:不滚动时(比如在调用方法之前tableView已经在顶部了),在 `scrollViewDidEndScrollingAnimation:`内的动作就不被调用。rnrn如何判断UITableView是否已经位于顶部了?
js滚动到指定位置导航栏固定顶部
window.onscroll=function(){ var topScroll =document.documentElement.scrollTop;//滚动的距离,距离顶部的距离 console.log(topScroll); var bignav = document.getElementById(&quot;bign...
listview缓慢滚动到顶部的问题
listview快速滚动到顶部(没有缓冲过程): listView.setSelection(0); public void setSelection (int position) 设置当前选中项,为了支持可访问的子类重写此方法,必须首先调用父类的方法。 参数 position 索引,被选中的数据项(从0开始) listview缓慢滚动到顶部: listView.sm
ScrollView滚动到指定view顶部
ScrollView滚动到顶部 binding.svTest.smoothScrollTo(0, 0); ScrollView滚动到指定View顶部 binding.svTest.smoothScrollTo(0, binding.aimView.getTop()); 前提:由于getTop是相对于父控件而言,获取到的是相对于父控件的距离,示意图如下 ...
html之置顶菜单-滚动到顶部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>置顶菜单</title> <script type="text/javascript" src="./jquery-3.2.1.min.js"></script> <script type="text/javascript">
iOS-UITableView 滚动到底部和顶部的方法
滚动到底部(分段tableview时,优先选择第二种方法) 1. - (void)scrollsToBottomAnimated:(BOOL)animated {     [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.dataArr.count-1inSection:0]  
Android设置ScrollView滚动到底部和顶部
转载请备注原文地址: http://www.niwoxuexi.com/blog/android/article/221.html 我们在开发的过程中,经常会遇到ScrollView滚动到底部和顶部的情况,下面是一种简单的设置方法 1,设置ScrollView滚动到顶部 //设置ScrollView滚动到顶部 scrollView.fullScroll(ScrollView.FOCU
如何让CoordinatorLayout内容滚动到顶部?
我们在使用
TableView,点击状态栏滚动到顶部
TableView,点击状态栏滚动到顶部背景 iPhone上的应用,基本上都有个特点,只要有表格,那么用户点击状态栏,应该就会自动滚动到顶部,在下拉就可以获取最新数据了。 为什么能滚动? 既然能滚动,说明它是个scrollView(当然,tableView也是scrollView,废话了) 什么情况下,默认就会滚动? 控制器上只有一个scrollView,原因: // When the user t
固定div,滚动到顶部固定
这个例子是把div固定在设定的地方,不跟着滚动条滚动!
ListView滚动到顶部和底部的判断
FR: 徐海涛(Hunk Xu)
导航栏滚动到顶部后固定
导航栏滚动到页面顶部后,固定,并处于所有的页面元素上方,浮动显示。
分享仿csdn滚动到顶部
[code=javascript] rn rn rn rn rn rn rn rn rn rn rn rn [/code]
jquery滚动到顶部底部.zip
jquery滚动到顶部底部是一款简单的滚动到顶部底部控制jQuery插件。是一个很实用的功能,他能帮助新手和高级开发者们创造美好的用户体验。 jquery滚动到顶部底部仅向上效果:                           点击查看演示: jquery滚动到顶部底部向上向下效果: jquery滚动到顶部底部仅向下效果:
纯js 滚动到顶部函数分享
一个简单的js 滚动到页面顶部的函数,纯js,不依赖于Jqeury。也不是直接用a标签锚点,同时速度是可控的。
安卓scrollview动画滚动到顶部
此代码实现安卓ScrollView动画滚动到顶部,开发者可以自己定义自己想要的算法,代码比较简单,一分谢谢了
基于JQ的平滑滚动到顶部插件
基于JQ的平滑滚动到顶部插件
滚动到顶部自动加载数据的listview封装
AutoLoadMoreListViewpackage com.example.niehongtao.listviewdemo;import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.AbsListView; import and
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview